服务器断电重启导致备份生产环境的恢复目录库无法进行启动,提示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】)情况下的数据库不完全恢复的经历的更多相关文章

  1. UNDO表空间损坏,爆满,ORA-600[4194]/[4193]错误解决

    模拟手工删除UNDO表空间 在ORADATA 中把UNDOTBS01.DBF 删除 模拟启库 SQL> STARUP; * 第 1 行出现错误: ORA-01157: 无法标识/锁定数据文件 2 ...

  2. UNDO表空间损坏导致数据库无法OPEN

    在数据库undo表空间文件损坏.或者undo表空间文件缺失的情况下.无法打开数据库. 这两种情况都能够视为一种情况处理,解决方法一样. 场景:在23:10的时候新建一个undo表空间undotbs02 ...

  3. Oracle undo 表空间管理 (摘DAVID)

    Oracle 的Undo有两种方式: 一是使用undo 表空间,二是使用回滚段. 我们通过 undo_management 参数来控制使用哪种方式,如果设为auto,就使用UNDO 表空间,这时必须要 ...

  4. Oracle undo 表空间不可用

    由于某次不小心操作,在切换表空间时没有成功,由于把undo的配置参数 undo_management值设置为MANUAL所以在启动数据库时没有报任何错误,但是给表插入数据时报错了,回滚段不可用的错误. ...

  5. UNDO表空间不足解决方法

    确认UNDO表空间名称 select name from v$tablespace; 检查数据库UNDO表空间占用空间情况以及数据文件存放位置: select file_name,bytes/1024 ...

  6. [Oracle]undo表空间使用量为100%

    在Toad中发现undo表空间undotbs1使用量已经达到100%,但是奇怪的是数据库并没有hang住,依然可以正常运转 通过Oracle提供的EM查看undotbs1表空间的使用,也达到了78.8 ...

  7. undo表空间丢失、损坏

    1.模拟误删undo表空间 rm -rf undotbs01.dbf 2.解决步骤 SQL> shutdown immediateORA-01116: error in opening data ...

  8. 如何删除回滚段状态为NEEDS RECOVERY的undo表空间

    环境:RHEL 6.4 + Oracle 11.2.0.4 背景:备份恢复的测试库在一次不完全恢复后,没有来及做有效的全备,又一次数据库故障导致数据库无法正常open. 只能离线部分数据文件打开数据库 ...

  9. Oracle备份恢复之无备份情况下恢复undo表空间

    UNDO表空间存储着DML操作数据块的前镜像数据,在数据回滚,一致性读,闪回操作,实例恢复的时候都可能用到UNDO表空间中的数据.如果在生产过程中丢失或破坏了UNDO表空间,可能导致某些事务无法回滚, ...

随机推荐

  1. java实现导出Excel(跨行,跨列)

    先来个最终结果样式: 第一步: 传参,后期可根据自己需要进行调整.我这里需要的是 quarter 代表季度 dptid 部门编号根据接受过来的参数进行文档命名. UserInfo userInfo=( ...

  2. 》》mui--图片轮播

    mui框架内置了图片轮播插件,通过该插件封装的JS API,用户可以设定是否自动轮播及轮播周期,如下为代码示例: //获得slider插件对象 var gallery = mui('.mui-slid ...

  3. 走进Linux01-磁盘分区与文件夹结构

    近期学习Linux,首先安装系统,遇到了磁盘分区.之前仅仅知道Linux分区是从/(根文件夹)開始的,至于磁盘格式,多块盘怎样挂载全然不了解,系统的查询了一下Linux磁盘分区和文件夹结构,整理一下. ...

  4. Implement Queue using Stacks(用栈实现队列)

    Implement the following operations of a queue using stacks. push(x) -- Push element x to the back of ...

  5. ASP.MVC当URL跳转时候参数的安全性

    一个页面跳转到另外一个页面直接将参数写在URL上面并不安全比如 http://XXXXXXXXXXX/meeting/shakeGroup?id=5381&uid=o0En_sj1J0bFgI ...

  6. 观未见,行不止 —— Power BI 两周年技术和方案交流圆桌会议纪实

    作者:陈希章 发表于 2017年8月13日 2017年8月11日下午两点,Power BI 两周年技术和方案交流圆桌会议如期举行.线上和线下约有100位朋友参加了由我组织和主持的本次活动,在两个小时的 ...

  7. 一位10年Java工作经验的架构师聊Java和工作经验

    从事近十年的 JavaEE 应用开发工作,现任阿里巴巴公司系统架构师.对分布式服务架构与大数据技术有深入研究,具有丰富的 B/S 架构开发经验与项目实战经验,擅长敏捷开发模式.国内开源软件推动者之一, ...

  8. MyBatis_查询缓存01

    一.查询缓存 查询缓存的使用,主要是为了提高查询访问速度.将用户对同一数据的重复查询过程简单化,不在每次均从数据库中查询获取结果数据,从而提高访问速度. MyBatis的查询缓存机制,根据缓存区的作用 ...

  9. js登录滑动验证,不滑动无法登陆

    js的判断这里是根据滑块的位置进行判断,应该是用一个flag判断 <%@ page language="java" contentType="text/html; ...

  10. C语言中一些不被熟知的特性

    designated initializers(c99) C99允许你对结构体中指定的变量初始化,如 struct Foo { int x; int y; int z; }; }; 指定初始化也可适用 ...