oracle在线日志损坏,前在线日志文件损坏与ora-600 [4000]处理
这次又是一台机器上面有两个实例A和B。又是由于非当前的在线日志文件的状态是处于closed状态的(裸设备),于是dba将A节点的非当前在线日志文件填加到了B节点上面去了,于是在A节点日志发生切换时,导致了当前在线日志文件损坏。
一般情况下当前在线日志文件损坏也是还好处理的,但是这次却是较为复杂。。。。
系统环境:aix p550,oracle 9206
首先检查v$datafile_header,发现checkpoint_change#都是一致的。
于是按着一般的当前在线日志文件损坏步骤处理:
增加下列参数至Oracle启动文件:
_allow_resetlogs_corruption=TRUE
_corrupted_rollback_segments=(list of all your rollback segments)
注释掉启动文件中的rollback_segments参数或undo_tablespaces参数
startup mount
recover database until cancel
alter database open resetlogs;
一般情况下,open resetlogs后最容易出现的600号错误为ora-600 [2662]和ora-600 [2256]。这两个错误也相对来说好处理一些,只需要采用10015事件adjust scn号即可。
但是这次我却是碰到了ora-600 [4000]号错误。
Errors in file /home/oracle/app/oracle/admin/test/udump/test_ora_2838638.trc:
ORA-00704: bootstrap process failure
ORA-00704: bootstrap process failure
ORA-00600: internal error code, arguments: [4000], [46], [], [], [], [], [], []
Mon Aug 14 15:05:31 2006
Error 704 happened during db open, shutting down database
USER: terminating instance due to error 704
Instance terminated by USER, pid = 2838638
metalink上对该错误的解释是:
DESCRIPTION:
This has the potential to be a very serious error.
It means that Oracle has tried to find an undo segment number in the
dictionary cache and failed.
ARGUMENTS:
Arg [a] Undo segment number
FUNCTIONALITY:
KERNEL TRANSACTION UNDO
IMPACT:
INSTANCE FAILURE - Instance will not restart
STATEMENT FAILURE
由于一开始_corrupted_rollback_segments里面只是列到_syssmu20$,于是将它列到_syssmu60$。重试后还是报这个错。
增加10513事件,禁止smon进程回滚,结果还是一样。
在600号的Trace文件中有:
ORA-00600: internal error code, arguments: [4000], [46], [], [], [], [], [], []
Current SQL statement for this session:
select ctime, mtime, stime from obj$ where obj# = :1
于是我怀疑会不会是undo$基表中没有46号回滚段的信息?
采用bbed检查undo$表格,发现里面是有这个回滚段的信息。
于是我想这个错误是出现在访问obj$基表上面,也就是说该表格的scn号与系统当前的scn号是不一致的。于是我想偿试修改该块的scn号。依然采用bbed,偿试修改该块的scn号。修改后,结果还是一样的。
于是我想应该是obj$基表上还有一个未提交的事务。于是继续查看trace文件,发现如下信息:
Itl Xid Uba Flag Lck Scn/Fsc
0x01 0x002e.025.00005b2c 0x00800f78.080c.01 --U- 1 fsc 0x0000.c5b527cf
data_block_dump,data header at 0x700000001f6e044
===============
tsiz: 0x1fb8
hsiz: 0xea
pbl: 0x700000001f6e044
bdba: 0x0040007a
76543210
flag=--------
很明显,是有一个未提交的事务,于是我就偿试用bbed修改该事务的状态,将该事务改成提交状态。
首先找到itl信息:find /x 00005b2c,找到flag状态,现在其状态是20,也就是未提交,将之修改为80(提交状态),并修改checkval。
之后去掉所有隐含参数,正常启动数据库,发现后台报出了ora-600[2662]错误。哈哈,事情至此就好办了,采用10015 adjust scn号,正常启动数据库:
Mon Aug 14 15:47:23 2006
Completed: ALTER DATABASE OPEN
Mon Aug 14 15:47:23 2006
Fatal internal error happened while SMON was doing active transaction recovery.
Mon Aug 14 15:47:23 2006
Errors in file /home/oracle/app/oracle/admin/test/bdump/test_smon_2293872.trc:
ORA-00600: internal error code, arguments: [ktpridestroy2], [], [], [], [], [], [], []
SMON: terminating instance due to error 600
Instance terminated by SMON, pid = 2293872
从这块日志可以看出数据库正常启动后,马上因为smon回滚又导致了实例宕下来。
增加10513事件,启动数据库,一切正常。
想drop tablespce undotbs1,但是报出59号回滚段还有active事务无法删除。
于是增加_corrupted_rollback_segments参数,将数据库启来,新建一个回滚表空间,将原来的回滚表空间重建后,一切正常。
oracle在线日志损坏,前在线日志文件损坏与ora-600 [4000]处理相关推荐
- 计算机管理文件破坏怎么办,文件损坏,教您电脑文件损坏怎么修复
如果是普通文件损坏了倒无所谓,但是如果是我们重要文件损坏了那影响就大了.那么我们要如何恢复损坏的文件呢?程序常常会出现莫名其妙的提示,告诉你文件已经受损.无法打开.修复损坏的方法有多种,下面,小编给大 ...
- 只读数据文件损坏恢复
一.实验说明:本实验内容转载于luocs大牛的只读数据文件损坏恢复实验记录,非原创,下面的操作属于模拟实验. 操作系统:rhel 5.4 x32 数据库:oracle 11g r2 二.只读表空间概念 ...
- 视频文件损坏无法播放怎么修复?
有很多原因可能导致视频文件损坏无法播放,如: 病毒和漏洞:漏洞和病毒是计算机的噩梦,它们可以攻击存储在硬盘上的文件和视频.如果没有杀毒程序,视频文件很容易受到损坏. 盗版视频转换器:一些视频转换器不是 ...
- word文件损坏怎么恢复?
如果硬盘中的重要数据被意外删除或丢失,我们通常可以使用不同类型的数据恢复软件来部分或完全恢复它们.但是,有时恢复的数据文件存在缺陷,无法以原始方式访问.换句话说,当我们使用一些数据恢复工具来恢复丢失的 ...
- 视频文件损坏如何修复
视频文件损坏如何修复?生活中,每到晚上不少人都在刷着一个又一个的视频,如果让我们遇到视频文件损坏而无法正常播放,该怎么办呢?这种情况通常意味着视频文件已损坏.我们将无法访问它.编辑或使用它们.那么要用 ...
- oracle日志文件大小规则,在线重做Oracle日志文件大小
下面为您介绍的方法用于实现在线重做Oracle日志文件大小,如果您在Oracle日志文件方面遇到过类似的问题的话,不妨一看. 1.创建2个新的日志组 alter database add logfil ...
- oracle日志文件打开,oracle日志文件和控制文件损坏的恢复
oracle日志文件和控制文件损坏的恢复 恢复步骤: 1.加入_allow_resetlogs_corruption=true,_corrupted_rollback_segments=true,_o ...
- 记一次ORACLE数据库redo日志文件损坏故障恢复
记一次ORACLE数据库redo日志文件损坏故障恢复 环境 ORACLE 11G R2 + RAC+ ASM 归档模式 问题描述 数据库1节点状态变为Stuck Archiver,alert日志报Ar ...
- oracle中重做日志损坏,重做日志文件损坏的恢复笔记
以下笔记是今天下午一位朋友碰到日志文件删除后数据库不能启动的问题,然后查资料一起解决后,再整理出来的. 所有步骤或命令都是参考网上或书上资料,我只是加以整理,如有错误请大家指证,如有用处,请帮忙顶,谢 ...
最新文章
- Go 语言编程 — 高级数据类型 — Slice 切片
- ubuntu声音太小的解决方案
- Unichar, char, wchar_t
- 素数判断的java方法_java判断数字是否是素数的方法
- 20190909:(leetcode习题)第一个错误的版本
- NSDate的使用方便的分类(提供判断是否为今天,昨天,今年的方法)
- jquery java aes_[代码全屏查看]-java、js之间使用AES加密通信数据
- 软件外包相关职业规划
- c语言万能源代码,经典C语言源代码
- plsql导出表到mysql数据库表_PLSQL导入导出表的正确步骤
- php 快递打印设置,让ecshop批量打印快递单修改方法
- JavaScript 基础知识总结(一)
- 吉林大学 校园网 认证相关 (SUSPEND)
- python 排名函数_python 中rank函数怎样理解?
- 滑尺计算——丈量宇宙的直尺
- ECAMScript6基础知识
- DepthPano-TOG2020 学习整理(一)——有关全景图的三维场景重建
- 2022-04-05 学习记录--React-React UI组件库-ant-design(蚂蚁金服)—— 按需引入样式 + 自定义主题
- sklearn和libsvm吗_机器学习笔记(3)-sklearn支持向量机SVM
- 《逆向工程核心原理》相关说明