当前位置: 首页 > news >正文

Oracle隐含参数scn不一至启动

Oracle隐含参数:allow_resetlogs_corruption的使用

提示:Oracle的隐含参数只应该在测试环境或者在Oracle Support的支持下使用

oracle中redo文件损坏时:
1:如果损坏的是非当前redo文件而且已经归档:
此时可以使用alter database clear logfile group xx 清空该日志文件。
2:如果损坏的是非当前redo文件,并且该文件组没有归档:
此时使用alter database clear unarchived logfile group xx;强行清空日志
3:归档模式下当前日志的损坏有两种情况:
一、是数据库是正常关闭,日志文件中没有未决的事务需要实例恢复,当前日志组的损坏就可以直接用alter database clear unarchived logfile group n来重建。
二、是日志组中有活动的事务,数据库需要媒体恢复,日志组需要用来同步,有两种补救办法
A:最好的办法就是通过不完全恢复,可以保证数据库的一致性,但是这种办法要求在归档方式下,并且有可用的备份
B:通过强制性恢复,但是可能导致数据库不一致。


下面的情况假定当前日志损坏,并且没有备份,所以只有采取强制性恢复:
SQL> startup force;
ORACLE instance started.
Total System Global Area 97588504 bytes
Fixed Size 451864 bytes
Variable Size 33554432 bytes
Database Buffers 62914560 bytes
Redo Buffers 667648 bytes
Database mounted.
ORA-00354: corrupt redo log block header
ORA-00353: log corruption near block 3 change 897612314 time 10/19/2005 14:19:34
ORA-00312: online log 3 thread 1: '/opt/oracle/oradata/conner/redo03.log'
损坏的是active的日志文件:
SQL> select * from v$log;
GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIM
---------- ---------- ---------- ---------- ---------- --- ---------------- 
1 1 159 10485760 1 NO INACTIVE 897592312 19-OCT-05
2 1 158 10485760 1 NO INACTIVE 897572310 19-OCT-05
3 1 160 10485760 1 NO ACTIVE 897612314 19-OCT-05
4 1 161 1048576 1 NO CURRENT 897612440 19-OCT-05
只好使用另外一个隐含参数_allow_resetlogs_corruption强制启动数据库,设置此参数之后,在数据库Open过程中,Oracle会跳过某些一致性检查,从而使数据库可能跳过不一致状态,Open打开:
SQL> alter system set "_allow_resetlogs_corruption"=true scope=spfile;
System altered.
SQL> shutdown immediate;
ORA-01109: database not open
Database dismounted.
ORACLE instance shut down.
SQL> startup mount;
ORACLE instance started.
Total System Global Area 97588504 bytes
Fixed Size 451864 bytes
Variable Size 33554432 bytes
Database Buffers 62914560 bytes
Redo Buffers 667648 bytes
Database mounted.
SQL> recover database using backup controlfile until cancel;
ORA-00279: change 897612315 generated at 10/19/2005 16:54:18 needed for thread 1
ORA-00289: suggestion : /opt/oracle/oradata/conner/archive/1_160.dbf
ORA-00280: change 897612315 for thread 1 is in sequence #160
Specify log: {=suggested | filename | AUTO | CANCEL}
cancel
ORA-01547: warning: RECOVER succeeded but OPEN RESETLOGS would get error below
ORA-01194: file 1 needs more recovery to be consistent
ORA-01110: data file 1: '/opt/oracle/oradata/conner/system01.dbf'
ORA-01112: media recovery not started
SQL> alter database open resetlogs;
Database altered.
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.
Total System Global Area 97588504 bytes
Fixed Size 451864 bytes
Variable Size 33554432 bytes
Database Buffers 62914560 bytes
Redo Buffers 667648 bytes
Database mounted.
Database opened.
幸运的时候数据库就可以成功Open,如果不幸可能会遇到一系列的Ora-600错误(最常见的是2662错误),或者在openOra-600错误,或者在open以后操作数据库数据时刻出现Ora-600错误,此时就需要使用多种手段继续进行调整恢复。 
如果注意观察alert日志,我们可能会发现类似以下日志:
Fri Jun 10 16:30:25 2005
alter database open resetlogs
Fri Jun 10 16:30:25 2005
RESETLOGS is being done without consistancy checks. This may result in a corrupted database. The database should be recreated.
RESETLOGS after incomplete recovery UNTIL CHANGE 240677200
Resetting resetlogs activation ID 3171937922 (0xbd0fee82)
Oracle告诉我们,强制resetlogs跳过了一致性检查,可能导致数据库损坏,数据库应当重建。不一致恢复最后恢复到的Change号是:240677200。通常使用此方法Open数据库之后,应该立即通过导出、导入重建数据库。





本文转自 vfast_chenxy 51CTO博客,原文链接:http://blog.51cto.com/chenxy/893777,如需转载请自行联系原作者

相关文章:

  • 应用虚拟化之规划篇二 项目流程规划
  • centos 安装 jenkins
  • wxPython 笔记(9)向窗体中加入控件
  • 硬链接与软链接
  • linux 文件属性
  • mysql配置文件调优
  • LDAP实现企业异构平台的统一认证
  • 配置rsync源服务器
  • js获取区域坐标
  • 海洋祝福电子贺卡
  • 虚拟局域网(VLAN)和以太网通道
  • WAS 常用命令
  • SQL Server In-Memory OLTP Internals for SQL Server 2016
  • 酣畅淋漓.....
  • Eclipse 调优及使用小细节
  • 〔开发系列〕一次关于小程序开发的深度总结
  • 5、React组件事件详解
  • AHK 中 = 和 == 等比较运算符的用法
  • CAP 一致性协议及应用解析
  • JavaScript工作原理(五):深入了解WebSockets,HTTP/2和SSE,以及如何选择
  • js 实现textarea输入字数提示
  • maven工程打包jar以及java jar命令的classpath使用
  • mongodb--安装和初步使用教程
  • MYSQL 的 IF 函数
  • node-glob通配符
  • Redis字符串类型内部编码剖析
  • uni-app项目数字滚动
  • vue自定义指令实现v-tap插件
  • 阿里云爬虫风险管理产品商业化,为云端流量保驾护航
  • 关键词挖掘技术哪家强(一)基于node.js技术开发一个关键字查询工具
  • 基于webpack 的 vue 多页架构
  • 基于组件的设计工作流与界面抽象
  • 前嗅ForeSpider中数据浏览界面介绍
  • 强力优化Rancher k8s中国区的使用体验
  • 深入浏览器事件循环的本质
  • 数据可视化之下发图实践
  • # include “ “ 和 # include < >两者的区别
  • (差分)胡桃爱原石
  • (免费领源码)Python#MySQL图书馆管理系统071718-计算机毕业设计项目选题推荐
  • (深度全面解析)ChatGPT的重大更新给创业者带来了哪些红利机会
  • (提供数据集下载)基于大语言模型LangChain与ChatGLM3-6B本地知识库调优:数据集优化、参数调整、Prompt提示词优化实战
  • (转)大型网站的系统架构
  • (最完美)小米手机6X的Usb调试模式在哪里打开的流程
  • .helper勒索病毒的最新威胁:如何恢复您的数据?
  • .net core 实现redis分片_基于 Redis 的分布式任务调度框架 earth-frost
  • .NET DataGridView数据绑定说明
  • .Net中wcf服务生成及调用
  • .Net转Java自学之路—SpringMVC框架篇六(异常处理)
  • ::什么意思
  • @media screen 针对不同移动设备
  • @reference注解_Dubbo配置参考手册之dubbo:reference
  • []Telit UC864E 拨号上网
  • []新浪博客如何插入代码(其他博客应该也可以)
  • [BetterExplained]书写是为了更好的思考(转载)
  • [bzoj2957]楼房重建