暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

open resetlogs

原创 不吃草的牛_Nick 2022-07-12
736

关于open resetlogs选项,是指打开数据时,重置联机重做日志(online redo log),
即将重做日志的sequence置零,为什么要重置重做日志呢?不完全恢复后,原来的联机重做日志(online redo log)
里面包含的是未做恢复前的数据,而这些数据对于恢复后的数据库不再有效,
所以数据库会要求在open之前先对联机重做日志(online redo log)的sequence置零。

Resetlogs命令表示一个数据库逻辑生存期的结束和另一个数据库逻辑生存期的开始,每次使用Resetlogs命令的时候,
SCN不会被重置,不过ORACLE会重置日志序列号,而且会重置联机重做日志内容(相当于把所有的联机日志重新“格式化”)。

解决方法
此时可以通过设置隐藏参数 _allow_resetlogs_corruption 之后,使数据库在Open过程中,
跳过某些一致性检查,从而使数据库可能跳过不一致状态。操作步骤如下

create spfile from pfile='/u01/app/oracle/product/11.2/db_1/dbs/initdb01.ora';
shutdown immediate;
startup mount;
alter system set "_allow_resetlogs_corruption"=true scope=spfile;
recover database using backup controlfile until cancel;
alter database open resetlogs;

使用了隐藏参数 _allow_resetlogs_corruption 后,需要从参数文件(pfile或spfile中)移除隐藏参数,并对数据库进行导入导出比较好,

alter system set "_allow_resetlogs_corruption"=false scope=spfile;

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论