oracle8i ora 12500,总结Oracle8i 的UNDO表空间损坏(ORA-01092及ORA-00600【4193】)情况下的数据库不完全恢复的经历...

服务器断电重启导致备份生产环境的恢复目录库无法进行启动,提示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

721798d63d0882633b0a02119caa60ebf93.jpg

查找相关资料,发现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

c468f56ad00f4513155c1f2017b3a6515b3.jpg

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数据文件,然后重试打开数据库

4ba5fdeccd171c9ff5009582ce9622cde80.jpg

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

强制删除所需要的回滚段

a80632ea28f88da8bfaaf72b142187f57d6.jpg

删除包含损坏回滚段表空间后,并开始建立回滚段表空间

22badc6d880feda34ab325bdcaec0d8e360.jpg

查询回滚段状态

0a856a99e5915aa8890466ed525a014c03b.jpg

正常关闭数据库,并将参数文件中的隐含参数_corrupted_rollback_segments注释,并将ROLLBACK_SEGMENTS加入所有的回滚段。

e08443ff9805643de05319cfd5d4eaa69e7.jpg

正常启动数据库

1950706f5cf727d9e7e68f8a2769fbf2ff1.jpg

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值