由于基于时间点,在恢复之前,可能需要设置一下环境变量,让rman备份集中的时间显示得更清楚
set NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
set NLS_DATE_FORMAT=YYYYMMDD-HH24:MI:SS
如果是异机恢复,或需要变更初始化参数文件,需要确保参数中路径的描述正确且路径有效,如后台dump目录等。
如果需要恢复controlfile,restore controlfile时不要指定时间,直接恢复即可。
例如:
RMAN> run
2> {
3> allocate channel d1 type disk;
4> restore controlfile to 'E:\oracle\oradata\CONTROL01.CTL';
5> release channel d1;}
恢复数据文件,restore时,只需要恢复system表空间、sysaux表空间、undo表空间,以及想要恢复的用户表空间的相关数据文件。
如果需要rename数据文件名称,使用set newname for datafile命令异机switch datafile命令。
恢复到某个时间点使用set until time '时间',其中时间格式需要满足前面设置的NLS_DATE_FORMAT环境变量格式。
recover时跳过其他不需要恢复的表空间。注意,如果有些表空间名称包含关键字,如"TEST",那么需要用引号引起,否则会报错。
RMAN> run
2> {
3> allocate channel d1 type disk;
4> allocate channel d2 type disk;
5> allocate channel d3 type disk;
6> set newname for datafile 1 to 'E:\oracle\oradata\SYSTEM01.DBF';
7> set newname for datafile 2 to 'E:\oracle\oradata\UNDOTBS01.DBF';
8> set newname for datafile 3 to 'E:\oracle\oradata\SYSAUX01.DBF';
9> set newname for datafile 9 to 'E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORA10G\EAGLE01.DBF';
10> set until time '20100827-11:54:54';
11> restore datafile 1,2,3,9;
12> switch datafile 1;
13> switch datafile 2;
14> switch datafile 3;
15> switch datafile 9;
16> recover database skip forever tablespace USERS,LDY,"TEST";
17> release channel d1;
18> release channel d2;
19> release channel d3;
20> }
恢复完之后,需要检查一下redo log和tempfile的名称,是否为有效路径,如果不是,需要rename:
alter database rename file 'E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORA10G\REDO01.LOG' to 'E:\oracle\oradata\REDO01.LOG';
alter database rename file 'E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORA10G\REDO02.LOG' to 'E:\oracle\oradata\REDO02.LOG';
alter database rename file 'E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORA10G\REDO03.LOG' to 'E:\oracle\oradata\REDO03.LOG';
alter database rename file 'E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORA10G\TEMP01.DBF' to 'E:\ORACLE\ORADATA\TEMP01.DBF';
rename之后,就可以用resetlogs方式open了。
alter database open resetlogs;
需要注意2点问题:
1.如果数据库版本和ORACLE软件版本不一致,可能会报错:
ERROR at line 1:
ORA-01092: ORACLE instance terminated. Disconnection forced
alert log中有如下信息:
ORA-00704: bootstrap process failure
ORA-39700: database must be opened with UPGRADE option
这时需要对数据库进行升级或降级。
阅读(2089) | 评论(0) | 转发(0) |