由于UPS故障,导致机房连续多次掉电,问题解决后,发现一台本地测试数据库打开时报错,ORA-1172、ORA-1151错误。

掉电引起的ORA-1172错误解决过程(一):http://yangtingkun.itpub.net/post/468/465223

尝试打开数据库。

上一篇介绍了问题的产生和现象,下面尝试用EVENTS方式打开数据库,不过由于出现ORA-600 2662错误的机制与上面一篇文章不同,因此这里不需要设置隐含参数_allow_resetlogs_corruption。不过由于当前的版本是10g,因此需要设置隐含参数_allow_error_simulation为true,这时使用EVENTS调整SCN的前提。

SQL> conn / as sysdba
Connected to an idle instance.
SQL> create pfile='/home/oracle/inittest08.ora' from spfile;

File created.

编辑这个初始化参数文件,添加_ALLOW_ERROR_SIMULATION=true到这个文件中,并将数据库启动到mount状态:

SQL> startup pfile=/home/oracle/inittest08.ora mount
ORACLE instance started.

Total System Global Area 2483027968 bytes
Fixed Size                  2074760 bytes
Variable Size            1090520952 bytes
Database Buffers         1375731712 bytes
Redo Buffers               14700544 bytes
Database mounted.

通过EVENTS调整SCN:

SQL> alter session set events '10015 trace name adjust_scn level 1';

Session altered.

下面尝试打开数据库:

SQL> alter database open;
alter database open
*
ERROR at line 1:
ORA-01092: ORACLE instance terminated. Disconnection forced

尝试打开仍然报错,再次检查alert文件:

Errors in file /opt/ora10g/admin/test08/udump/test08_ora_6525.trc:
ORA-00600: internal error code, arguments: [2256], [0], [1073741824], [1], [2238656971], [], [], []
Thu Jun  5 16:32:01 2008
Errors in file /opt/ora10g/admin/test08/udump/test08_ora_6525.trc:
ORA-00600: internal error code, arguments: [2662], [1], [2238656973], [1], [2238756337], [8388637], [], []
Thu Jun  5 16:32:04 2008
Errors in file /opt/ora10g/admin/test08/udump/test08_ora_6525.trc:
ORA-00600: internal error code, arguments: [2662], [1], [2238656973], [1], [2238756337], [8388637], [], []
Thu Jun  5 16:32:04 2008
Error 600 happened during db open, shutting down database
USER: terminating instance due to error 600
Instance terminated by USER, pid = 6525
ORA-1092 signalled during: alter database open...

除了刚才的ORA-600 2662错误外,又新增了600的2256错误。根据METALINK文档Doc ID:  Note:30681.1的描述,这时需要对ADJUST_SCN的LEVEL进行调整:

将参数c的值乘以4再根据SCN的范围确定LEVEL的值,根据需要将LEVEL设置为7,然后尝试尝试打开数据库:

SQL> conn / as sysdba
Connected to an idle instance.
SQL> startup pfile=/home/oracle/inittest08.ora mount
ORACLE instance started.

Total System Global Area 2483027968 bytes
Fixed Size                  2074760 bytes
Variable Size            1090520952 bytes
Database Buffers         1375731712 bytes
Redo Buffers               14700544 bytes
Database mounted.
SQL> alter session set events '10015 trace name adjust_scn level 7';

Session altered.

SQL> alter database open;
alter database open
*
ERROR at line 1:
ORA-00603: ORACLE server session terminated by fatal error

错误信息这次发生了变化,检查alert文件:

Errors in file /opt/ora10g/admin/test08/udump/test08_ora_6700.trc:
ORA-00600: internal error code, arguments: [4194], [30], [29], [], [], [], [], []
Thu Jun  5 16:43:30 2008
Errors in file /opt/ora10g/admin/test08/bdump/test08_smon_6686.trc:
ORA-00604: error occurred at recursive SQL level 1
ORA-01578: ORACLE data block corrupted (file # 1, block # 32529)
ORA-01110: data file 1: '/data/oradata/test08/system01.dbf'
Thu Jun  5 16:43:31 2008
Errors in file /opt/ora10g/admin/test08/bdump/test08_smon_6686.trc:
ORA-00600: internal error code, arguments: [4194], [109], [98], [], [], [], [], []
Thu Jun  5 16:43:33 2008
Doing block recovery for file 2 block 133
Block recovery from logseq 531, block 60 to scn 7516192829
Thu Jun  5 16:43:33 2008
Recovery of Online Redo Log: Thread 1 Group 2 Seq 531 Reading mem 0
  Mem# 0: /data/oradata/test08/redo02.log
Block recovery stopped at EOT rba 531.62.16
Block recovery completed at rba 531.62.16, scn 1.3221225531
Doing block recovery for file 2 block 5
Block recovery from logseq 531, block 60 to scn 7516192826
Thu Jun  5 16:43:33 2008
Recovery of Online Redo Log: Thread 1 Group 2 Seq 531 Reading mem 0
  Mem# 0: /data/oradata/test08/redo02.log
Block recovery completed at rba 531.62.16, scn 1.3221225531
Thu Jun  5 16:43:33 2008
Errors in file /opt/ora10g/admin/test08/bdump/test08_smon_6686.trc:
ORA-01595: error freeing extent (2) of rollback segment (1))
ORA-00607: Internal error occurred while making a change to a data block
ORA-00600: internal error code, arguments: [4194], [109], [98], [], [], [], [], []
Thu Jun  5 16:43:34 2008
Doing block recovery for file 2 block 1102
Block recovery from logseq 531, block 58 to scn 7516192831
Thu Jun  5 16:43:34 2008
Recovery of Online Redo Log: Thread 1 Group 2 Seq 531 Reading mem 0
  Mem# 0: /data/oradata/test08/redo02.log
Block recovery stopped at EOT rba 531.62.16
Block recovery completed at rba 531.62.16, scn 1.3221225531
Doing block recovery for file 2 block 61
Block recovery from logseq 531, block 58 to scn 7516192825
Thu Jun  5 16:43:34 2008
Recovery of Online Redo Log: Thread 1 Group 2 Seq 531 Reading mem 0
  Mem# 0: /data/oradata/test08/redo02.log
Block recovery completed at rba 531.60.16, scn 1.3221225530
Thu Jun  5 16:43:34 2008
Errors in file /opt/ora10g/admin/test08/udump/test08_ora_6700.trc:
ORA-00600: internal error code, arguments: [4193], [4306], [4309], [], [], [], [], []
DEBUG: Replaying xcb 0xf0eba330, pmd 0xf3d4c360 for failed op 8
Doing block recovery for file 2 block 1085
No block recovery was needed

这次又出现了ORA-600的4194和4193错误,根据错误信息的看来是Oracle进行恢复的过程中出现了问题。查询METALINK,发现是REDO中的回滚记录和UNDO中的不一致造成的。尝试使用隐含参数_CORRUPTED_ROLLBACK_SEGMENTS来打开数据库。在刚才的建立的inittest08.ora初始化文件中添加下面的信息:

undo_management='MANUAL'
_corrupted_rollback_segments=(_SYSSMU1&,_SYSSMU2&,_SYSSMU3&,_SYSSMU4&,_SYSSMU5&,_SYSSMU6&,_SYSSMU7&,_SYSSMU8&,_SYSSMU9&,_SYSSMU10&,_SYSSMU11&,_SYSSMU12&,_SYSSMU13&,_SYSSMU14&,_SYSSMU15&,_SYSSMU16&,_SYSSMU17&,_SYSSMU18&,_SYSSMU19&,_SYSSMU20&,_SYSSMU21&,_SYSSMU22&,_SYSSMU23&,_SYSSMU24&,_SYSSMU25&,_SYSSMU26&,_SYSSMU27&,_SYSSMU28&,_SYSSMU29&,_SYSSMU30&,_SYSSMU31&,_SYSSMU32&,_SYSSMU33&,_SYSSMU34&,_SYSSMU35&,_SYSSMU36&,_SYSSMU37&,_SYSSMU38&,_SYSSMU39&,_SYSSMU40&,_SYSSMU41&)

尝试启动数据库:

SQL> conn / as sysdba
Connected to an idle instance.
SQL> startup pfile=/home/oracle/inittest08.ora
ORACLE instance started.

Total System Global Area 2483027968 bytes
Fixed Size                  2074760 bytes
Variable Size            1090520952 bytes
Database Buffers         1375731712 bytes
Redo Buffers               14700544 bytes
Database mounted.
Database opened.

重要数据库成功的打开,由于使用了初始化参数_CORRUPTED_ROLLBACK_SEGMENTS,可能导致数据库出现不一致的状态,因此很可能已经造成了数据的丢失,不过好在是测试数据库。下面只需要将非系统的SCHEMA导出,建立一个干净的数据库,然后导入既可。

此时其实并没有解决掉REDO和UNDO中记录冲突的问题,如果关闭数据库,尝试不适应隐含参数打开,会碰到下面的错误:

SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.

Total System Global Area 2483027968 bytes
Fixed Size                  2074760 bytes
Variable Size            1090520952 bytes
Database Buffers         1375731712 bytes
Redo Buffers               14700544 bytes
Database mounted.
ORA-00607: Internal error occurred while making a change to a data block
ORA-00600: internal error code, arguments: [4194], [30], [29], [], [], [], [],
[]

SQL> shutdown immediate
ORA-03113: end-of-file on communication channel
SQL> conn / as sysdba
Connected to an idle instance.
SQL> startup pfile=/home/oracle/inittest08.ora
ORACLE instance started.

Total System Global Area 2483027968 bytes
Fixed Size                  2074760 bytes
Variable Size            1090520952 bytes
Database Buffers         1375731712 bytes
Redo Buffers               14700544 bytes
Database mounted.
Database opened.

掉电引起的ORA-1172错误解决过程(二)相关推荐

  1. oracle错误01653,oracle 10g 错误 ORA 01653 的解决过程

    oracle 10g 错误 ORA 01653 的解决过程 早上用户反应在操作用友NC时报错 ORA-01653 ,详细信息:ORA-01653: 表 NCV35.GL_DETAIL 无法通过 102 ...

  2. oracle安装过程掉电,Oracle数据库掉电后ORA-01172磁盘坏块解决方法

    由于服务器突然掉电,重启机器后发现数据库无法启动.数据库版本 Oracle10201,OS REDHAT 5.4数据库无归档,无备份 [oracle@huna 由于服务器突然掉电,重启机器后发现数据库 ...

  3. 微信小程序访问WebService接口返回500错误解决过程

    背景:     新手,第一次尝试使用微信小程序访问WebService接口.     使用Microsoft Visual Studio新建了一个WebService项目,发布后,按照常规流程部署到I ...

  4. 磁盘未知错误解决过程

    1.最近经常拷文件,突然出现"复制文件出现未指定的错误" 2.chkdisk x:/f 也出现未指定错误 3.将所有文件备份,准备格式化该盘--竟然无法格式化. 4.diskgen ...

  5. oracle怎么deadlock,APPARENT DEADLOCK!!! 错误解决过程

    项目环境 数据库:oracle 中间件:WAS 2.  问题描述 2015.05.21(是个好日子),早上发现was后台报错如下: [15-5-21 7:31:01:171 CST] 00000027 ...

  6. Python报ImportError: No module named错误解决过程记录

    错误原因: 刚开始学习Python的小伙伴应该和我一样不知道怎么解决这个错误,其实报这个错是因为模块的缺失,只需要使用python的命令进行安装模块即可 解决方案: Windows环境下: 进入Pyt ...

  7. 无法找到脚本库错误解决过程

    这几天可真算是让我的耐性经受极大考验,幸亏还能在不抱怨的情形下坚持下来,不易! 错误情况为: 想来一些兄弟也曾遇见过,原来一直不以为意,直至今天用验证控件时发现已经不能完成验证功能,心想估计是这个错误 ...

  8. Unknown column 'user_uid' in 'field list' sql错误解决过程

    在idea中运行一直有错,找了好多个地方都找不到,以为是我的字段名字写错了,然而都是对的. 把错误的这个字段删了再打一遍就好了, 转载于:https://www.cnblogs.com/zxrxzw/ ...

  9. ThinkPHP验证码错误解决过程

    ThinkPHP版本:3.2.3 最近在测试TP3.2.3的时候,验证码老是错误.首先想到是不是因为复制来复制去导致验证码类代码出错呢?或者是用PHPStudy从Nginx切换到Apache的过程,导 ...

最新文章

  1. 用Golang写一个搜索引擎(0x05)--- 文本相关性排序
  2. 计算机程序无权限卸载,无法卸载win7电脑中的软件,提示权限不足怎么办?
  3. mRNA定位数据库mRNALocater使用指南
  4. 面试题 gety() getTop() TranslationY关系
  5. Linux虚拟机挂载共享文件夹
  6. 【超清视频】SCCM2012精讲系列课程03:SCCM2012的基础环境初始化(一)
  7. OA考勤打卡系统功能点
  8. 留言板显示服务器错误,动易Cms:解读SiteFactory 留言板出现:服务器无响应,错误代码:500-动易Cms教程...
  9. ~0 == -1 问题全解
  10. 这几款高格调的app,让你的人生妖艳起来!
  11. C++ STL常用标准库容器入门(vector,map,set,string,list...)
  12. 意大利语合同翻译多少钱
  13. Python | 动态规划解决“返回第n个丑数”
  14. Android--CoordinatorLayout源码分析及NestedScrolling机制
  15. hiredis的代码示例
  16. 17款好用的跨浏览器测试神器,兼容性测试必备
  17. awk截取字符命令_bash中的字符截取命令cut和awk
  18. MySQL(InnoDB剖析):24---B+树索引(聚集索引与非聚集索引(辅助索引))、B+树索引的分裂
  19. 滴答滴答(TickTick)定时器工具
  20. 网工职业发展方向之网管

热门文章

  1. GDCM:转储一个DICOM文件,显示DICOM中的结构和值的测试程序
  2. ITK:对图像进行升采样
  3. ITK:创建Image
  4. DCMTK:以HTML格式呈现DICOM结构化报告文件的内容
  5. VTK:Math之PerpendicularVector
  6. VTK:几何对象之CylinderExample
  7. OpenCV通过维纳滤镜恢复散焦图像的实例(附完整代码)
  8. 响应QML中的用户输入
  9. C++实现topological sort拓扑排序算法(附完整源码)
  10. QML基础类型之int