使用redo.log完全恢复数据库
来源:互联网 发布:玩坏 体验 知乎 编辑:程序博客网 时间:2024/05/16 11:09
场景:之前该数据库进行过一次完全恢复,应有是有如下提示的,然后又使用了resetlogs打开过数据库,但未做日志切换(alter system checkpoint/alter system switch logfile).
导致关库的时候提示:ORA-00338/ORA-00312
RMAN> recover database;
启动 recover 于 01-2月 -16
使用通道 ORA_DISK_1
正在开始介质的恢复
线程 1 序列 12 的归档日志已作为文件 D:\APP\SMIT\ORADATA\ORCL\REDO03.LOG 存在于磁
盘上
归档日志文件名=D:\APP\SMIT\ORADATA\ORCL\REDO03.LOG 线程=1 序列=12
介质恢复完成, 用时: 00:00:03
完成 recover 于 01-2月 -16
RMAN> alter database open resetlogs;
数据库已打开
解决办法:
RMAN> recover database;
启动 recover 于 02-2月 -16
使用通道 ORA_DISK_1
正在开始介质的恢复
无法找到归档日志
归档日志线程=1 序列=12
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: recover 命令 (在 02/02/2016 09:39:31 上) 失败
RMAN-06054: 介质恢复正在请求未知的线程 1 序列 12 的归档日志以及起始 SCN 1054381
SQL> recover database using backup controlfile until cancel;
ORA-00279: 更改 1054381 (在 02/01/2016 17:46:16 生成) 对于线程 1 是必需的
ORA-00289: 建议: D:\RISBAK\ARCHIVELOG\ARC0000000012_0902683080.0001
ORA-00280: 更改 1054381 (用于线程 1) 在序列 #12 中
指定日志: {<RET>=suggested | filename | AUTO | CANCEL}
D:\app\smit\oradata\orcl\REDO03.LOG
ORA-00339: 归档日志未包含任何重做
ORA-00334: 归档日志: 'D:\APP\SMIT\ORADATA\ORCL\REDO03.LOG'
SQL> recover database using backup controlfile until cancel;
ORA-00279: 更改 1054381 (在 02/01/2016 17:46:16 生成) 对于线程 1 是必需的
ORA-00289: 建议: D:\RISBAK\ARCHIVELOG\ARC0000000012_0902683080.0001
ORA-00280: 更改 1054381 (用于线程 1) 在序列 #12 中
指定日志: {<RET>=suggested | filename | AUTO | CANCEL}
D:\app\smit\oradata\orcl\REDO02.LOG
ORA-00342: 归档日志没有要求的重置日志 SCN 897124
ORA-00334: 归档日志: 'D:\APP\SMIT\ORADATA\ORCL\REDO02.LOG'
SQL> recover database using backup controlfile until cancel;
ORA-00279: 更改 1054381 (在 02/01/2016 17:46:16 生成) 对于线程 1 是必需的
ORA-00289: 建议: D:\RISBAK\ARCHIVELOG\ARC0000000012_0902683080.0001
ORA-00280: 更改 1054381 (用于线程 1) 在序列 #12 中
指定日志: {<RET>=suggested | filename | AUTO | CANCEL}
D:\app\smit\oradata\orcl\REDO01.LOG
ORA-00342: 归档日志没有要求的重置日志 SCN 897124
ORA-00334: 归档日志: 'D:\APP\SMIT\ORADATA\ORCL\REDO01.LOG'
RMAN> alter database open resetlogs;
使用目标数据库控制文件替代恢复目录
数据库已打开
下面总结下recover的4条语句:
oracle备份恢复之recover database的四条语句区别
1 recover database using backup controlfile
2 recover database until cancel
3 recover database using backup controlfile until cancel;
4 recover database until cancel using backup controlfile;
如果丢失当前控制文件,用冷备份的控制文件恢复的时候,用来告诉oracle,不要以controlfile中的scn作为恢复的终点;
结果如下:
如果控制文件丢失,restore备份的控制文件后,则必须使用using backup controlfile选项。而until cancel则是不完全恢复,即current/active redo丢失,或者从restore数据库后某个归档文件缺失,则终止。
结论:
1、适用于restore旧的控制文件,且归档日志和cuurrent/active redo都没有丢失情况。如果一切归档日志和在线日志完好,可以不丢失数据。类似于recover database
2、当前控制文件未丢失(不需要restore旧的控制文件),此时有归档日志或者current/active log有丢失情况下,则终止。最大可能恢复数据
3、4:我在oracle 10.2.0.4环境下测试效果是相同的,即适用于restore旧的控制文件,在恢复到控制文件备份那刻后,系统会提示应用控制文件备份后的归档日志,如果没有则停止。也是最大可能的恢复数据。
可以得出结果,如果有旧的数据库备份,在归档日志和在线日志全部保存完好的情况下,使用recover database或recover database using backup controlfile。则不丢失数据
如果存在备份数据文件restore后,归档日志或者在线日志(active、current)丢失情况下,则可以恢复到丢失的前一个归档日志
until cancel就是不完全恢复
需要alter database open resetlogs
数据库打开后需要理解做一个全库备份
在线日志文件丢失:
如果正常关闭数据库,然后启动时报错:
SQL> alter database open;
alter database open
*
第 1 行出现错误:
ORA-00313: 无法打开日志组 1 (用于线程 1) 的成员
ORA-00312: 联机日志 1 线程 1:
'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO01.LOG'
SQL> alter database open resetlogs;
alter database open resetlogs
*
第 1 行出现错误:
ORA-01139: RESETLOGS 选项仅在不完全数据库恢复后有效
SQL> recover database until cancel;
完成介质恢复。
SQL> alter database open resetlogs;
数据库已更改。
- 使用redo.log完全恢复数据库
- 数据库日志文件-- undo log 、redo log、 undo/redo log
- 数据库日志文件-- undo log 、redo log、 undo/redo log
- 数据库崩溃后对redo log的使用
- 数据库崩溃后对redo log的使用
- redo文件破坏使用隐含参数恢复数据库
- 恢复误删除的redo log
- REDO LOG损坏恢复(—)
- 重建redo-oracle数据库恢复
- 使用RMAN恢复完全损坏的数据库
- 单机数据库调整redo log日志大小
- MySQL数据库InnoDB Undo redo Log
- logminer挖掘不同数据库的归档日志,使用redo log数据字典
- Oracle数据库REDO日志损坏恢复处理
- redo log
- Redo log
- Redo Log
- redo log
- Attach函数的讲解
- canvas画各种图形
- 四种信用风险模型
- RxAndroid热身系列--什么是Rx
- 283. Move Zeroes
- 使用redo.log完全恢复数据库
- javascript的闭包
- Memcached配置参数初解
- Linux下配置软raid
- 中文乱码总结
- 何为容器?
- 黄金分割比的重新理解
- iOS:SVN出错 Description : The working copy is locked due to a previous error
- hdu 1556 Color the ball (扫描线+树状数组)