●创建与rac主机相同的目录
如/backup/rmanbak/level0/20120209010001/4
都是在压缩包所在的目录下tar -cvf oracle0208.tar oracle tar -xvf oracle0113.tar
●传输rac上的备份集到单机上
节点2上的备份包含数据文件及归档的备份集
scp dblv0_731_1_774752412 root@10.0.2.16:/backup/rmanbak/level0/20120209010001/4
scp dblv0_732_1_774752412 root@10.0.2.16:/backup/rmanbak/level0/20120209010001/4
scp dblv0_733_1_774755639 root@10.0.2.16:/backup/rmanbak/level0/20120209010001/4 过程如下:文件大致需要传输6分钟
节点1上传输控制文件的备份在(注意不是节点2上的控制文件的备份)
测试机上接收到的备份集
注意更改这些文件的属性chown -R oracle:dba *
●
*.user_dump_dest='/app/oracle/admin/orcl/udump'
测试机上启动实例orcl,并开始恢复数据文件
修改profile 改正ORACLE_SID=orcl; export ORACLE_SID
使ORACLE_SID=orcl进入到该orcl的实例,以pfile启动的
进入到rman中
注意应该是
restore controlfile from '/backup/rmanbak/level0/20120209010001/4/controlfile_c-1129995432-20120209-01';
使其进入mount状态
查看数据文件
一些命令的查看设置export NLS_DATE_FORMAT='yyyy-mm-dd hh24:mi:ss'
list backup summary;
RMAN> list backup of archivelog all summary;
RMAN> list backup of archivelog all; 注意只有516和518备份集中有2月9日备份的归档
注意恢复的时候可以用RMAN> restore database preview summary;这个命令的速度很快!
Restore过程,为了加快速度,所以使用了4个通道。本次开始的时间是11:37分。耗时约2小时run{
allocate channel c1 device type disk;
allocate channel c2 device type disk;
allocate channel c3 device type disk;
allocate channel c4 device type disk;
set newname for datafile 1 to '/oradata/orcl/system01.dbf';
set newname for datafile 2 to '/oradata/orcl/user02.dbf';
set newname for datafile 3 to '/oradata/orcl/sysaux01.dbf';
set newname for datafile 4 to '/oradata/orcl/users01.dbf';
set newname for datafile 5 to '/oradata/orcl/geostk_detail01.dbf'; set newname for datafile 6 to '/oradata/orcl/geo200801.dbf';
set newname for datafile 7 to '/oradata/orcl/databxstkmdtl02.dbf'; set newname for datafile 8 to '/oradata/orcl/geo2008index03.dbf'; set newname for datafile 9 to '/oradata/orcl/geo200805.dbf';
set newname for datafile 10 to '/oradata/orcl/databxsp01.dbf';
set newname for datafile 11 to '/oradata/orcl/databxbatch01.dbf'; set newname for datafile 12 to '/oradata/orcl/databxrob01.dbf';
set newname for datafile 13 to '/oradata/orcl/databxstkdtl01.dbf'; set newname for datafile 14 to '/oradata/orcl/databxaccdtl01.dbf'; set newname for datafile 15 to '/oradata/orcl/databxstkmdtl01.dbf'; set newname for datafile 16 to '/oradata/orcl/bxbb01.dbf';
set newname for datafile 17 to '/oradata/orcl/bxbb02.dbf';
set newname for datafile 18 to '/oradata/orcl/geo200802.dbf';
set newname for datafile 19 to '/oradata/orcl/geo200803.dbf';
set newname for datafile 20 to '/oradata/orcl/geo2008index01.dbf'; set newname for datafile 21 to '/oradata/orcl/geo2008index02.dbf'; set newname for datafile 22 to '/oradata/orcl/undotbs02.dbf';
set newname for datafile 24 to '/oradata/orcl/geo200804.dbf';
set newname for datafile 25 to '/oradata/orcl/benetz_todo01.dbf'; set newname for datafile 29 to '/oradata/orcl/undotbs1.dbf';
set newname for datafile 30 to '/oradata/orcl/undotbs2.dbf'; restore database;
switch datafile all;
release channel c1;
release channel c2;
release channel c3;
release channel c4;}
关于归档
在list backup of archivelog all ;中可以看到
BS Key 518中有2月9日备份的归档---- 这是1机的归档备份
1 1430 93027986917 2012-02-09 01:24:13 93028096781 2012-02-09 02:48:24
1 1431 93028096781 2012-02-09 02:48:24 93028097147 2012-02-09 02:48:48
BS Key 516中有2月9日备份的归档----这是2机的归档备份
2 744 9302809678
3 2012-02-09 02:47:01 93028097108 2012-02-09 02:47:23
根据上面的可以看到(1,1431,93028097147);(2,744,93028097108)所以选择2恢复RMAN> run{
set until sequence 745 thread 2;
recover database;
}
在SQL> select THREAD#,SEQUENCE#,NEXT_CHANGE#,name from v$archived_log 中查到
为了完全恢复,则不使用上面的until了。
看节点1下的归档
为了最大限度的恢复scp 1_143*.dbf root@10.0.2.16:/archive/orcl
scp 1_144*.dbf root@10.0.2.16:/archive/orcl将2.9日备份时间后的所有归档都考过了
恢复完后,我建议先备份恢复出来的数据文件夹
然后用sqlplus 的recover 进行恢复
此时不能打开的!
alter database rename file '+DG_DATA/orcl/onlinelog/redo06.log'to '/oradata/chunjierac/redo06.log'; alter database rename file '+DG_DATA/orcl/onlinelog/redo07.log'to '/oradata/chunjierac/redo07.log'; alter database rename file '+DG_DATA/orcl/onlinelog/redo01.log'to '/oradata/chunjierac/redo01.log'; alter database rename file '+DG_DATA/orcl/onlinelog/redo02.log'to '/oradata/chunjierac/redo02.log'; alter database rename file '+DG_DATA/orcl/onlinelog/redo03.log'to '/oradata/chunjierac/redo03.log'; alter database rename file '+DG_DATA/orcl/onlinelog/redo04.log'to '/oradata/chunjierac/redo04.log'; alter database rename file '+DG_DATA/orcl/onlinelog/redo05.log'to '/oradata/chunjierac/redo05.log'; alter database rename file '+DG_DATA/orcl/onlinelog/redo8.log' to '/oradata/chunjierac/redo8.log'; alter database rename file '+DG_DATA/orcl/onlinelog/redo9.log' to '/oradata/chunjierac/redo9.log'; alter database rename file '+DG_DATA/orcl/onlinelog/redo10.log'to '/oradata/chunjierac/redo10.log'; alter database rename file '+DG_DATA/orcl/onlinelog/redo11.log'to '/oradata/chunjierac/redo11.log'; alter database rename file '+DG_DATA/orcl/onlinelog/redo12.log'to '/oradata/chunjierac/redo12.log'; alter database rename file '+DG_DATA/orcl/onlinelog/redo13.log'to '/oradata/chunjierac/redo13.log'; alter database rename file '+DG_DATA/orcl/onlinelog/redo14.log'to '/oradata/chunjierac/redo14.log'; 查看下
SELECT a.group#, a.member, b.bytes FROM v$logfile a, v$log b WHERE a.group# = b.group#;
后续操作
SQL> select THREAD#, STATUS, ENABLED from v$thread;
SQL> alter database disable thread 2;
SQL> select group# from v$log where THREAD#=2;
使用SQL> alter database drop logfile group **** 或者SQL> alter database clear unarchived logfile group 9;
SQL> select group#,member from v$logfile;
对undo 的处理:它的redo比较特别,一般的都是UNDOTBS2 和UNDOTBS1
SQL> drop tablespace UNDOTBS2 including contents and datafiles;
SQL>select tablespace_name from dba_tablespaces where contents='UNDO';
对temp的处理:
SQL> select name from v$tempfile;
NAME
--------------------------------------------------------------------------------
+DG_DATA/orcl/tempfile/temp02.dbf
SQL> select tablespace_name from dba_tablespaces where contents='TEMPORARY'; TABLESPACE_NAME
------------------------------
TEMP
SQL> create temporary tablespace TEMP1 tempfile '/oradata/****/temp01.dbf' size 100M autoextend off;
Tablespace created.
SQL> alter database default temporary tablespace TEMP1;
Database altered.
SQL> drop tablespace TEMP including contents and datafiles;
Tablespace dropped.
SQL> select name from v$tempfile;
NAME
--------------------------------------------------------------------------------
/oradata/chunjierac/temp01.dbf
监听配置
orcl =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = dg02)(PORT = 1521)) (CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)