总结Oracle8i 的UNDO表空间损坏(ORA-01092及ORA-00600【4193】)情况下的数据库不完全恢复的经历
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了总结Oracle8i 的UNDO表空间损坏(ORA-01092及ORA-00600【4193】)情况下的数据库不完全恢复的经历,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4042字,纯文字阅读大概需要6分钟。
内容图文
服务器断电重启导致备份生产环境的恢复目录库无法进行启动,提示Ora-01092例程终止。强行断开连接
查看跟踪日志:
Wed Jan 10 08:41:37 2018
Errors in file d:\Oracle\admin\l3bckdb\bdump\l3bckdbSMON.TRC:
ORA-00600: internal error code, arguments: [4193], [1836], [1844], [], [], [], [], []
Wed Jan 10 08:41:39 2018
Errors in file d:\Oracle\admin\l3bckdb\bdump\l3bckdbSNP1.TRC:
ORA-00600: internal error code, arguments: [4193], [1926], [1934], [], [], [], [], []
Recovery of Online Redo Log: Thread 1 Group 3 Seq 15 Reading mem 0
Mem# 0 errs 0: D:\ORACLE\ORADATA\L3BCKDB\REDO01.LOG
Wed Jan 10 08:41:42 2018
Recovery of Online Redo Log: Thread 1 Group 3 Seq 15 Reading mem 0
Mem# 0 errs 0: D:\ORACLE\ORADATA\L3BCKDB\REDO01.LOG
Wed Jan 10 08:41:42 2018
SMON: terminating instance due to error 600
Instance terminated by SMON, pid = 2744
查找相关资料,发现RA-600[4913]错误的2个argument的含义, 该ORA-600[4913]属于内核undo事务模块
[1836] Undo record seq number
[1844] Redo record seq number
由于UNDO序列和REDO序列不一致引发错误。
解决办法:重建UNDO表空间,步骤如下:
C:/>set nls_lang=american_america.zhs16gbk
C:/>sqlplus "/ as sysdba"
SQL*Plus: Release 8.1.7.0.0 - Production on 星期三 1月 10 11:28:47 2018
(c) Copyright 2000 Oracle Corporation. All rights reserved.
连接到:
Oracle8i Enterprise Edition Release 8.1.7.0.0 - Production
With the Partitioning option
JServer Release 8.1.7.0.0 - Production
SQL> select file#,name from v$datafile where file#=2;
FILE# NAME
---------- ----------------------------------------
2 D:/ORACLE/ORADATA/BCCHECK/RBS01.DBF
SQL> shutdown immediate
ORA-01109: 数据库未打开。
已经卸载数据库。
ORACLE例程已关闭。
将init.ora文件中的ROLLBACK_SEGMENTS初始化参数设置注释后以Restricted模式MOUNT数据库。
#rollback_segments = ( RBS0, RBS1, RBS2, RBS3, RBS4, RBS5, RBS6 )
SQL> startup restrict mount
ORACLE例程已启动。
Total System Global Area 219895052 bytes
Fixed Size 70924 bytes
Variable Size 75116544 bytes
Database Buffers 144629760 bytes
Redo Buffers 77824 bytes
数据库装载完毕。
在线drop损坏的rbs数据文件,然后重试打开数据库
SQL> drop tablespace rbs including contents;
drop tablespace rbs including contents
*
ERROR 在行 1:
ORA-01548: active rollback segment ‘RBS0‘ found, terminate dropping tablespace
-- 报错ORA-01548,表明有活动回滚段
SQL> select segment_name,tablespace_name,status from dba_rollback_segs;
SEGMENT_NAME TABLESPACE_NAME STATUS
------------------------------ ------------------------------ ----------------
SYSTEM SYSTEM ONLINE
RBS0 RBS NEEDS RECOVERY
RBS1 RBS NEEDS RECOVERY
RBS2 RBS NEEDS RECOVERY
RBS3 RBS NEEDS RECOVERY
RBS4 RBS NEEDS RECOVERY
RBS5 RBS NEEDS RECOVERY
RBS6 RBS NEEDS RECOVERY
已选择8 行
SQL> shutdown immediate
-- 正常关闭数据库加入隐含函数_corrupted_rollback_segments,修改参数文件加入隐含参数
_corrupted_rollback_segments=(RBS0,RBS1,RBS2,RBS3,RBS4,RBS5,RBS6)后以restricted模式打开数据库
SQL> startup restrict
SQL> select segment_name,tablespace_name,status from dba_rollback_segs;
SEGMENT_NAME TABLESPACE_NAME STATUS
------------------------------ ------------------------------ ----------------
SYSTEM SYSTEM ONLINE
RBS0 RBS NEEDS RECOVERY
RBS1 RBS NEEDS RECOVERY
RBS2 RBS NEEDS RECOVERY
RBS3 RBS NEEDS RECOVERY
RBS4 RBS NEEDS RECOVERY
RBS5 RBS NEEDS RECOVERY
RBS6 RBS NEEDS RECOVERY
已选择 8 行
SQL> drop tablespace rbs including contents;
drop tablespace rbs including contents
*
ERROR 在行 1:
ORA-01548: active rollback segment ‘RBS0‘ found, terminate dropping tablespace
强制删除所需要的回滚段
删除包含损坏回滚段表空间后,并开始建立回滚段表空间
查询回滚段状态
正常关闭数据库,并将参数文件中的隐含参数_corrupted_rollback_segments注释,并将ROLLBACK_SEGMENTS加入所有的回滚段。
正常启动数据库
总结Oracle8i 的UNDO表空间损坏(ORA-01092及ORA-00600【4193】)情况下的数据库不完全恢复的经历
标签:fixed http edit media release 报错 模式 var check
本文系统来源:https://www.cnblogs.com/fly-bird/p/8261233.html
内容总结
以上是互联网集市为您收集整理的总结Oracle8i 的UNDO表空间损坏(ORA-01092及ORA-00600【4193】)情况下的数据库不完全恢复的经历全部内容,希望文章能够帮你解决总结Oracle8i 的UNDO表空间损坏(ORA-01092及ORA-00600【4193】)情况下的数据库不完全恢复的经历所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。