总结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

查找相关资料,发现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】)情况下的数据库不完全恢复的经历的更多相关文章
- UNDO表空间损坏,爆满,ORA-600[4194]/[4193]错误解决
模拟手工删除UNDO表空间 在ORADATA 中把UNDOTBS01.DBF 删除 模拟启库 SQL> STARUP; * 第 1 行出现错误: ORA-01157: 无法标识/锁定数据文件 2 ...
- UNDO表空间损坏导致数据库无法OPEN
在数据库undo表空间文件损坏.或者undo表空间文件缺失的情况下.无法打开数据库. 这两种情况都能够视为一种情况处理,解决方法一样. 场景:在23:10的时候新建一个undo表空间undotbs02 ...
- Oracle undo 表空间管理 (摘DAVID)
Oracle 的Undo有两种方式: 一是使用undo 表空间,二是使用回滚段. 我们通过 undo_management 参数来控制使用哪种方式,如果设为auto,就使用UNDO 表空间,这时必须要 ...
- Oracle undo 表空间不可用
由于某次不小心操作,在切换表空间时没有成功,由于把undo的配置参数 undo_management值设置为MANUAL所以在启动数据库时没有报任何错误,但是给表插入数据时报错了,回滚段不可用的错误. ...
- UNDO表空间不足解决方法
确认UNDO表空间名称 select name from v$tablespace; 检查数据库UNDO表空间占用空间情况以及数据文件存放位置: select file_name,bytes/1024 ...
- [Oracle]undo表空间使用量为100%
在Toad中发现undo表空间undotbs1使用量已经达到100%,但是奇怪的是数据库并没有hang住,依然可以正常运转 通过Oracle提供的EM查看undotbs1表空间的使用,也达到了78.8 ...
- undo表空间丢失、损坏
1.模拟误删undo表空间 rm -rf undotbs01.dbf 2.解决步骤 SQL> shutdown immediateORA-01116: error in opening data ...
- 如何删除回滚段状态为NEEDS RECOVERY的undo表空间
环境:RHEL 6.4 + Oracle 11.2.0.4 背景:备份恢复的测试库在一次不完全恢复后,没有来及做有效的全备,又一次数据库故障导致数据库无法正常open. 只能离线部分数据文件打开数据库 ...
- Oracle备份恢复之无备份情况下恢复undo表空间
UNDO表空间存储着DML操作数据块的前镜像数据,在数据回滚,一致性读,闪回操作,实例恢复的时候都可能用到UNDO表空间中的数据.如果在生产过程中丢失或破坏了UNDO表空间,可能导致某些事务无法回滚, ...
随机推荐
- Effective Java 第三版——1. 考虑使用静态工厂方法替代构造方法
Tips <Effective Java, Third Edition>一书英文版已经出版,这本书的第二版想必很多人都读过,号称Java四大名著之一,不过第二版2009年出版,到现在已经将 ...
- [乐意黎原创] cuteftp 9 显示中文乱码
当用FTP连接空间时.中文命名的文件名称会显示乱码,原来是编码设置错误.怎么改动呢? 改动方法例如以下: 选择. 工具--> 全局选项->传输: 1. 传输方法: ASCII 2. SFT ...
- javaweb:推断当前请求是否为移动设备訪问
这段时间都是在做pc端的业务.结果经理找到我说,可能要做移动端的应用,后台逻辑还是用我写的逻辑.可是须要修改一些,看看怎么处理. 因为移动端和pc端还是略微有些差别的,我认为最好是在一个地儿统一推断, ...
- [NOIP复习]第三章:动态规划
一.背包问题 最基础的一类动规问题.相似之处在于给n个物品或无穷多物品或不同种类的物品,每种物品仅仅有一个或若干个,给一个背包装入这些物品,要求在不超出背包容量的范围内,使得获得的价值或占用体积尽可能 ...
- Swiper单页网站简单案例(全屏网页)
<!DOCTYPE html><html> <head> <meta charset="utf-8" /> <title> ...
- android 实现银联刷卡机消费后,手动签名的功能
几天前去物管交物业费,物管工作人员说小区引进高新产品,使用银行卡消费后,不需要拿笔在银联机上签名,直接用手指触摸实现消费签名,当时心想,果然是高科技,机子外形如下左图,签名如下右图. ...
- 【转载】解决refreshing gradle project 和Building gradle project info 一直卡住\速度慢
转载: http://blog.csdn.net/xx326664162/article/details/52002616 文章出自:薛瑄的博客 分析原因: 更改Gradle的版本后,或者更新AS后, ...
- iOS 多线程 之 GCD(大中枢派发)(一)
导语: 本文个人原创,转载请注明出处(http://www.cnblogs.com/pretty-guy/p/8126981.html) 在iOS开发中多线程操作通常是一下3种,本文着重介绍Dispa ...
- Bat脚本命令说明
命名参考 使用方式如果不知道如何使用就到cmd窗口键入help 命名名 例如:"help del" 命令名 注释 ASSOC 显示或修改文件扩展名关联. ATTRIB 显示或更改文 ...
- iOS 轻松实现自定义TabBar
自定义TabBar的案例网上不少,昨天受到开发小伙伴的影响,尝试了一下非大神的取巧思路:Demo 1.创建RootViewController,后面创建几个继承的VC,将这几个VC添加到TabBarC ...