about RESETLOGS

终于要面对RESETLOGS了,源于OCA的一道题目,主要就是问数据库在RESETLOGS之后,之前的备份是否还能使用。


10g之前是不可以的,在10g之前,每次完成incomplete恢复,都要马上做一个新的备份,因为之前的都变成无效的。


如果是使用RMAN的话,还要运行
RMAN> reset database;

以确保catalog能够认识新的数据库incarnation

10g之后,使用OPEN RESETLOGS就能够避免再次备份数据库,OPEN RESETLOG有以下的好处:
1.在完成incomplete恢复后不需要进行全库备份
2.进行完failover后不需要重建standby
3.不需要更改任何的备份脚本
4.能够使用之前的incarnation继续增量备份(貌似和第一点重复)
5.Block media recovery can restore backups from parent incarnation backups and recover the corrupted blocks through a RESETLOGS operation(这个理解不彻底,就原文上来吧)

可以看看参数log_archive_format

SQL> show parameters log_archive_format

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_archive_format string %t_%s_%r.dbf


其中%r就是resetlogs的标记。

显然,如果没有了这个标记,oracle就难以唯一的确认每个归档日志文件。

那OPEN RESETLOGS具体做了以下动作:
1.把目前能够访问的redo log归档,并把online redo log清空
2.把log sequence重置为1(For example, if the current online redo logs are sequence 1000 and 1001 when you open RESETLOGS, then the database archives logs 1000 and 1001 and then resets the online logs to sequence 1 and 2.)
3.把不存在的redo log文件自动重建
4.重新初始化control file当中的redo log file和redo thread部分
5.使用新的RESETLOGS SCN和时间戳更新当前的datafile、online redo log file、和后来归档的redo log

PS:其实RESETLOGS就是保证datafile里面的数据的正确的,而不因为media fail等其他fail与recovry的部分搞混

PS2:可以看到,oracle使用多种、多重的保护方式以确保数据库内的数据安全。但是还没有了解到DB2相关的技术,期待中

PS3:其实对于像我这样的菜鸟,做完任何的恢复(除了flash back)都可以考虑马上来个全备。同时,合理、定时的备份永远可以减少风险和自己的工作量
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值