Oracle 跨resetlogs的恢复
来源:互联网 发布:软件项目进度报告ppt 编辑:程序博客网 时间:2024/05/22 01:25
10g之前,如果采用了resetlogs打开数据库, 必须进行全备份,因为以前的归档日志对于以后
恢复将不在起作用。即ORACLE不能跨越incarnation恢复。因为scn和日志序列号都被重置。10g
之后。ORACLE可以跨越incarnation恢复,(很多高手还是建议resetlogs之后全备).测试过程如下:
恢复将不在起作用。即ORACLE不能跨越incarnation恢复。因为scn和日志序列号都被重置。10g
之后。ORACLE可以跨越incarnation恢复,(很多高手还是建议resetlogs之后全备).测试过程如下:
SQL> create table mytest as select * from dba_objects where rownum>11
2 /
表已创建。
2 /
表已创建。
SQL> alter system checkpoint
2 /
系统已更改。
2 /
系统已更改。
然后执行全备:
RMAN> backup database;
启动 backup 于 04-7月 -10
....省略
完成 backup 于 04-7月 -10
SQL> alter system switch logfile
2 /
系统已更改。
2 /
系统已更改。
SQL> select recid,sequence#,first_change#,next_change# from v$archived_log
2 /
2 /
RECID SEQUENCE# FIRST_CHANGE# NEXT_CHANGE#
---------- ---------- ------------- ------------
1 30 511526 522464
2 30 511526 522464
3 31 522464 522646
4 31 522464 522646
再插入10条记录
SQL> insert into mytest select * from mytest;
已创建10行。
---------- ---------- ------------- ------------
1 30 511526 522464
2 30 511526 522464
3 31 522464 522646
4 31 522464 522646
再插入10条记录
SQL> insert into mytest select * from mytest;
已创建10行。
SQL> commit
2 /
提交完成。
2 /
提交完成。
SQL> alter system checkpoint
2 /
系统已更改。
2 /
系统已更改。
SQL> alter system switch logfile
2 /
系统已更改。
2 /
系统已更改。
SQL> select recid,sequence#,first_change#,next_change# from v$archived_log
2 /
2 /
RECID SEQUENCE# FIRST_CHANGE# NEXT_CHANGE#
---------- ---------- ------------- ------------
1 30 511526 522464
2 30 511526 522464
3 31 522464 522646
4 31 522464 522646
5 32 522646 523748
6 32 522646 523748
---------- ---------- ------------- ------------
1 30 511526 522464
2 30 511526 522464
3 31 522464 522646
4 31 522464 522646
5 32 522646 523748
6 32 522646 523748
已选择6行。
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup mount
ORACLE 例程已经启动。
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup mount
ORACLE 例程已经启动。
Total System Global Area 603979776 bytes
Fixed Size 1250380 bytes
Variable Size 167775156 bytes
Database Buffers 427819008 bytes
Redo Buffers 7135232 bytes
数据库装载完毕。
Fixed Size 1250380 bytes
Variable Size 167775156 bytes
Database Buffers 427819008 bytes
Redo Buffers 7135232 bytes
数据库装载完毕。
RMAN> restore database;
RMAN> list incarnation;
数据库原型列表
DB 关键字 Inc 关键字 DB 名 DB ID STATUS 重置 SCN 重置时间
------- ------- -------- ---------------- --- ---------- ----------
1 1 ANRAN 885607663 CURRENT 1 04-7月 -10
恢复到sequence 32:
RMAN> recover database until sequence 32 ;
数据库原型列表
DB 关键字 Inc 关键字 DB 名 DB ID STATUS 重置 SCN 重置时间
------- ------- -------- ---------------- --- ---------- ----------
1 1 ANRAN 885607663 CURRENT 1 04-7月 -10
恢复到sequence 32:
RMAN> recover database until sequence 32 ;
启动 recover 于 04-7月 -10
使用通道 ORA_DISK_1
使用通道 ORA_DISK_1
正在开始介质的恢复
存档日志线程 1 序列 31 已作为文件 D:\ORACLE\PRODUCT\10.2.0\ARCH01\ARC00031_07234
68783.001 存在于磁盘上
存档日志文件名 =D:\ORACLE\PRODUCT\10.2.0\ARCH01\ARC00031_0723468783.001 线程 =1
序列 =31
介质恢复完成, 用时: 00:00:04
完成 recover 于 04-7月 -10
68783.001 存在于磁盘上
存档日志文件名 =D:\ORACLE\PRODUCT\10.2.0\ARCH01\ARC00031_0723468783.001 线程 =1
序列 =31
介质恢复完成, 用时: 00:00:04
完成 recover 于 04-7月 -10
SQL> alter database open resetlogs;
数据库已更改。
数据库已更改。
SQL> select count(1) from mytest
2 /
COUNT(1)
----------
10
恢复完成。
2 /
COUNT(1)
----------
10
恢复完成。
添加10行数据:
SQL> insert into mytest select * from mytest;
已创建10行。
SQL> insert into mytest select * from mytest;
已创建10行。
SQL> alter system switch logfile
2 /
系统已更改。
SQL> alter system switch logfile
2 /
系统已更改。
SQL> select recid,sequence#,first_change#,next_change# from v$archived_log
2 /
2 /
系统已更改。
SQL> alter system switch logfile
2 /
系统已更改。
SQL> select recid,sequence#,first_change#,next_change# from v$archived_log
2 /
RECID SEQUENCE# FIRST_CHANGE# NEXT_CHANGE#
---------- ---------- ------------- ------------
1 30 511526 522464
2 30 511526 522464
3 31 522464 522646
4 31 522464 522646
5 32 522646 523748
6 32 522646 523748
7 33 523748 523871
8 33 523748 523871
9 1 522647 524058
10 1 522647 524058
11 2 524058 524165
---------- ---------- ------------- ------------
1 30 511526 522464
2 30 511526 522464
3 31 522464 522646
4 31 522464 522646
5 32 522646 523748
6 32 522646 523748
7 33 523748 523871
8 33 523748 523871
9 1 522647 524058
10 1 522647 524058
11 2 524058 524165
RECID SEQUENCE# FIRST_CHANGE# NEXT_CHANGE#
---------- ---------- ------------- ------------
12 2 524058 524165
13 3 524165 524611
14 3 524165 524611
用上一次的备份进行恢复:
RMAN> restore database;
RMAN> recover database ;
---------- ---------- ------------- ------------
12 2 524058 524165
13 3 524165 524611
14 3 524165 524611
用上一次的备份进行恢复:
RMAN> restore database;
RMAN> recover database ;
启动 recover 于 04-7月 -10
使用通道 ORA_DISK_1
使用通道 ORA_DISK_1
正在开始介质的恢复
存档日志线程 1 序列 31 已作为文件 D:\ORACLE\PRODUCT\10.2.0\ARCH01\ARC00031_07234
68783.001 存在于磁盘上
存档日志线程 1 序列 1 已作为文件 D:\ORACLE\PRODUCT\10.2.0\ARCH01\ARC00001_072347
3384.001 存在于磁盘上
存档日志线程 1 序列 2 已作为文件 D:\ORACLE\PRODUCT\10.2.0\ARCH01\ARC00002_072347
3384.001 存在于磁盘上
存档日志线程 1 序列 3 已作为文件 D:\ORACLE\PRODUCT\10.2.0\ARCH01\ARC00003_072347
3384.001 存在于磁盘上
存档日志文件名 =D:\ORACLE\PRODUCT\10.2.0\ARCH01\ARC00031_0723468783.001 线程 =1
序列 =31
存档日志文件名 =D:\ORACLE\PRODUCT\10.2.0\ARCH01\ARC00001_0723473384.001 线程 =1
序列 =1
介质恢复完成, 用时: 00:00:08
完成 recover 于 04-7月 -10
68783.001 存在于磁盘上
存档日志线程 1 序列 1 已作为文件 D:\ORACLE\PRODUCT\10.2.0\ARCH01\ARC00001_072347
3384.001 存在于磁盘上
存档日志线程 1 序列 2 已作为文件 D:\ORACLE\PRODUCT\10.2.0\ARCH01\ARC00002_072347
3384.001 存在于磁盘上
存档日志线程 1 序列 3 已作为文件 D:\ORACLE\PRODUCT\10.2.0\ARCH01\ARC00003_072347
3384.001 存在于磁盘上
存档日志文件名 =D:\ORACLE\PRODUCT\10.2.0\ARCH01\ARC00031_0723468783.001 线程 =1
序列 =31
存档日志文件名 =D:\ORACLE\PRODUCT\10.2.0\ARCH01\ARC00001_0723473384.001 线程 =1
序列 =1
介质恢复完成, 用时: 00:00:08
完成 recover 于 04-7月 -10
从恢复代码上可以看到恢复跳过了32,33两个归档文件,从v$archived_log中也可能看到31与1的SCN是连续的,即新的SCN是应用日志到的最后一条日志SCN+1。
SQL> alter database open
数据库已更改。
SQL> select count(1) from mytest
2 /
数据库已更改。
SQL> select count(1) from mytest
2 /
COUNT(1)
----------
20
完成完全恢复。
----------
20
完成完全恢复。
仍然用原来的备份我们还可以不完全恢复到sequence 1.
RMAN> recover database until sequence 1
注意的是这里的1当前incarnation的sequence。所以sequence 不要超过incarnation中的sequence最大值
RMAN> recover database until sequence 6;
报Rman-06054:介质恢复正请求未知的日志
(不知道怎么回事,从CMD上拷不下这段输出,现在也没整明白)
RMAN> recover database until sequence 1
注意的是这里的1当前incarnation的sequence。所以sequence 不要超过incarnation中的sequence最大值
RMAN> recover database until sequence 6;
报Rman-06054:介质恢复正请求未知的日志
(不知道怎么回事,从CMD上拷不下这段输出,现在也没整明白)
RMAN> list incarnation;
数据库原型列表
DB 关键字 Inc 关键字 DB 名 DB ID STATUS 重置 SCN 重置时间
------- ------- -------- ---------------- --- ---------- ----------
1 1 ANRAN 885607663 PARENT 1 04-7月 -10
2 2 ANRAN 885607663 CURRENT 522647 04-7月 -10
可以看到当前数据库存在两个incarnation。 [incarnation的信息存在控制文件中,重建控制文件之后,incarnation会恢复到1]。
数据库原型列表
DB 关键字 Inc 关键字 DB 名 DB ID STATUS 重置 SCN 重置时间
------- ------- -------- ---------------- --- ---------- ----------
1 1 ANRAN 885607663 PARENT 1 04-7月 -10
2 2 ANRAN 885607663 CURRENT 522647 04-7月 -10
可以看到当前数据库存在两个incarnation。 [incarnation的信息存在控制文件中,重建控制文件之后,incarnation会恢复到1]。
如果这时仍然还想恢复到第一个incarnation的sequence 32.
要首先执行
要首先执行
RMAN> reset database to incarnation 1;
RMAN> recover database until sequence 32.
以后的操作都是一样的,这里就不演示了。
RMAN> recover database until sequence 32.
以后的操作都是一样的,这里就不演示了。
实验过程中,10.2.0.1有时会报 ORA-600 [krhpfh_03-1209] 错误,这是ORACLE的BUG[Bug 5701695].
ORA-600 [KCVSOR_CURRENT_INC_RDFAIL] 错误,这也是ORACLE的BUG[Bug 5443660]
升级到10.2.0.4 就可以了,新功能总是不太稳定。
ORA-600 [KCVSOR_CURRENT_INC_RDFAIL] 错误,这也是ORACLE的BUG[Bug 5443660]
升级到10.2.0.4 就可以了,新功能总是不太稳定。
本文出自 “天下无贼” 博客,请务必保留此出处http://guojuanjun.blog.51cto.com/277646/343720
0 0
- Oracle 跨resetlogs的恢复
- Oracle Rman跨resetlogs版本恢复
- Oracle Rman跨resetlogs版本恢复
- Oracle Rman跨resetlogs版本恢复
- Oracle Rman跨resetlogs版本恢复
- Oracle Rman跨resetlogs版本恢复
- oracle中的 resetlogs+scn恢复
- oracle中的 resetlogs+scn恢复
- oracle的resetlogs机制
- oracle的resetlogs机制
- oracle用备份的控制文件恢复后不用resetlogs打开方式的恢复
- Oracle控制文件备份恢复 resetlogs方式
- oracle resetlogs未备份,用redo恢复
- oracle的resetlogs机制浅析
- oracle的resetlogs机制浅析
- oracle的resetlogs机制浅析
- oracle的resetlogs机制浅析
- oracle的resetlogs机制浅析
- CATIA二次开发CAA实现ActiveX插件(以Windows Media Player为例)的方法
- RESETLOGS后没有备份情况下的数据恢复
- 深入理解Java G1垃圾收集器
- PAT-1036B跟奥巴马一起编程(15)
- ctype.h的字符判断函数
- Oracle 跨resetlogs的恢复
- Lua初识 _函数库
- Atitit各种SDM 软件SDP sdm的ddd tdd bdd设计
- 泛型
- "Failed to create JVM" Android studio不能启动问题解决
- 数据结构课程设计——考试报名管理系统
- To Me
- Semi-direct Visual Odometry(SVO)安装配置
- 走进AngularJs(七) 过滤器(filter) - 吕大豹