Oracle Rman跨resetlogs版本恢复
2012-07-09 18:00
260 查看
RMAN> startup nomount;
RMAN> sql 'alter session set nls_date_format=''yyyy-mm-dd hh24:mi:ss''";
--因为rman默认以环境变量来读取时间格式,与sqlplus的固定格式不同,所以,此处要设定时间格式变量。
RMAN> restore controlfile from autobackup until time '2009-03-10 18:15:00';
注意,仍然需要适当的还原控制文件。
RMAN> alter database mount;
RMAN> restore database;
RMAN> sql "alter session set nls_date_format=''yyyy-mm-dd hh24:mi:ss''";
RMAN> recover database until time '2009-03-10 18:15:00';
此时,出现以下错误:
RMAN-03002: recover 命令 (在 03/10/2009 19:21:19 上) 失败
RMAN-20207: UNTIL TIME 或 RECOVERY WINDOW 在 RESETLOGS 时间之前
20207错误:默认的认为until time或RECOVERY WINDOW的时间不能早于resetlogs的时间. 既然resetlogs了,就不认识之前的归档日志信息了。把之前的归档日志排除在可供恢复的选择之外了。这只是默认的行为,可能处于节省系统资源的考虑,毕竟resetlogs之前的数据再利用可能很小。
其解决可按以下方法处理:
1.找到数据库的当前incarnation号:
RMAN> list incarnation of database "test";
数据库原型列表
DB 关键字 Inc 关键字 DB 名 DB ID STATUS 重置 SCN 重置时间
------- ------- -------- ---------------- --- ---------- ----------
1 1 TEST 1978860036 PARENT 1 30-8月 -05
2 2 TEST 1978860036 PARENT 534907 05-3月 -09
3 3 TEST 1978860036 PARENT 762990 10-3月 -09
4 4 TEST 1978860036 PARENT 764885 10-3月 -09
5 5 TEST 1978860036 PARENT 765443 10-3月 -09
6 6 TEST 1978860036 PARENT 767488 10-3月 -09
7 7 TEST 1978860036 PARENT 771807 10-3月 -09
8 8 TEST 1978860036 PARENT 774320 10-3月 -09
9 9 TEST 1978860036 PARENT 779541 10-3月 -09
10 10 TEST 1978860036 PARENT 782000 10-3月 -09
11 11 TEST 1978860036 PARENT 783792 10-3月 -09
12 12 TEST 1978860036 CURRENT 801599 10-3月 -09 --此行原型(incarnation)号状态为current,即当前
所以,数据库的前一个(resetlogs之前)原型号为11.
我们重新启动数据库到mount状态(因为需要知道是重置哪个库,所以要挂载)
2.重置数据库到前一个原型(注意:此时的控制文件已经在前面的步骤中,还原到了适当的时间点。实际上,我们应该在nomount前还原控制文件)
RMAN> reset database to incarnation 11;
将数据库重置为原型 11
RMAN> sql "alter session set nls_date_format=''yyyy-mm-dd hh24:mi:ss''";
RMAN> restore database;
RMAN> recover database until time '2009-03-10 18:15:00';
RMAN> alter database open resetlogs; (此时,数据库的incarnation编号将再次上涨)
数据库正常打开
RMAN> sql 'alter session set nls_date_format=''yyyy-mm-dd hh24:mi:ss''";
--因为rman默认以环境变量来读取时间格式,与sqlplus的固定格式不同,所以,此处要设定时间格式变量。
RMAN> restore controlfile from autobackup until time '2009-03-10 18:15:00';
注意,仍然需要适当的还原控制文件。
RMAN> alter database mount;
RMAN> restore database;
RMAN> sql "alter session set nls_date_format=''yyyy-mm-dd hh24:mi:ss''";
RMAN> recover database until time '2009-03-10 18:15:00';
此时,出现以下错误:
RMAN-03002: recover 命令 (在 03/10/2009 19:21:19 上) 失败
RMAN-20207: UNTIL TIME 或 RECOVERY WINDOW 在 RESETLOGS 时间之前
20207错误:默认的认为until time或RECOVERY WINDOW的时间不能早于resetlogs的时间. 既然resetlogs了,就不认识之前的归档日志信息了。把之前的归档日志排除在可供恢复的选择之外了。这只是默认的行为,可能处于节省系统资源的考虑,毕竟resetlogs之前的数据再利用可能很小。
其解决可按以下方法处理:
1.找到数据库的当前incarnation号:
RMAN> list incarnation of database "test";
数据库原型列表
DB 关键字 Inc 关键字 DB 名 DB ID STATUS 重置 SCN 重置时间
------- ------- -------- ---------------- --- ---------- ----------
1 1 TEST 1978860036 PARENT 1 30-8月 -05
2 2 TEST 1978860036 PARENT 534907 05-3月 -09
3 3 TEST 1978860036 PARENT 762990 10-3月 -09
4 4 TEST 1978860036 PARENT 764885 10-3月 -09
5 5 TEST 1978860036 PARENT 765443 10-3月 -09
6 6 TEST 1978860036 PARENT 767488 10-3月 -09
7 7 TEST 1978860036 PARENT 771807 10-3月 -09
8 8 TEST 1978860036 PARENT 774320 10-3月 -09
9 9 TEST 1978860036 PARENT 779541 10-3月 -09
10 10 TEST 1978860036 PARENT 782000 10-3月 -09
11 11 TEST 1978860036 PARENT 783792 10-3月 -09
12 12 TEST 1978860036 CURRENT 801599 10-3月 -09 --此行原型(incarnation)号状态为current,即当前
所以,数据库的前一个(resetlogs之前)原型号为11.
我们重新启动数据库到mount状态(因为需要知道是重置哪个库,所以要挂载)
2.重置数据库到前一个原型(注意:此时的控制文件已经在前面的步骤中,还原到了适当的时间点。实际上,我们应该在nomount前还原控制文件)
RMAN> reset database to incarnation 11;
将数据库重置为原型 11
RMAN> sql "alter session set nls_date_format=''yyyy-mm-dd hh24:mi:ss''";
RMAN> restore database;
RMAN> recover database until time '2009-03-10 18:15:00';
RMAN> alter database open resetlogs; (此时,数据库的incarnation编号将再次上涨)
数据库正常打开
相关文章推荐
- Oracle Rman跨resetlogs版本恢复
- Oracle Rman跨resetlogs版本恢复
- Oracle Rman跨resetlogs版本恢复
- RMAN跨版本恢复--从Oracle10.2.0.5恢复到Oracle11.2.0.4
- Oracle 基于 RMAN 的不完全恢复(incomplete recovery by RMAN)
- Oracle的RMAN备份与恢复脚本
- oracle 10g rman 备份与恢复 之四
- Oracle备份恢复-RMAN备份
- 深入oracle 12c数据库备份与恢复(优化RMAN性能、Oracle flashback技术)
- Oracle 恢复[rman全备份集+当期归档日志]
- Hyper-V安装Oracle Linux6_4 Oracle db 12c并使用rman做异机恢复
- 第八章 Oracle恢复内部原理(重置日志RESETLOGS)
- Oracle恢复(六)------RMAN整库恢复
- oracle:rman恢复----通过增量备份来恢复
- Oracle RMAN 还原与恢复(四)--在非归档模式中还原与恢复数据库
- ORACLE RMAN 增量备份完整恢复测试
- Oracle技术之rman恢复spfile最快捷方式
- 探索ORACLE之RMAN_07恢复
- Oracle RMAN的备份与恢复命令详解(一)
- Oracle RMAN备份恢复指导书