deal with oracle ORA-600[4193]; ORA-600[4194/4193]; ORA-600[4194]

简介:

今天处理了一台开发数据库的600异常。

记录一下处理过程:

现象:

服务器开起来之后,文件系统报错,提升ctl+D重启或输入ROOT密码登录。登录进去后看到的文件系统已经不正常了,变成了只读状态。并且有提升SELINUX相关的一些东西(具体忘记了,后来把SELINUX手工关掉了)。文件系统只读了,数据库的话当然也是起不来滴。

处理过程:

1. 由于进单用户之前也必须CHECK 文件系统,所以的话还是放弃了在单用户下修复。

2. 进入linux rescue模式,fsck异常的文件系统,关闭selinux选项(modify /etc/selinux/config)。重启服务器,文件系统恢复正常。

3. 启动数据库,发现起不来。报出了类似ORA-600[4193]; ORA-600[4194/4193]; ORA-600[4194]的经典错误

4. 数据库恢复阶段:startup mount

recover database using backup controlfile;

输入所需的online redo log的path;

恢复完成。

重启数据库。开始报UNDO段错误,并且起来之后一会就重启。

查了metalink之后,建议重建UNDO表空间。

create undo tablespace undo_new datafile '' size ....;

alter system set undo_tablespace=undo_new scope=spfile;

restart database;

恢复正常。

删除掉老的UNDO表空间。



备注:

METALINK关于回滚段错误的CASE。


In this Document
  Goal
  Solution
      Single instance
     For Rac Instance(If one instance is down and other is up and running)
     For 8i database and Below
  References


Platforms: 1-914CU;

This document is being delivered to you via Oracle Support's Rapid Visibility (RaV) process and therefore has not been subject to an independent technical review.

Applies to:

Oracle Server - Enterprise Edition
Information in this document applies to any platform.
Oracle Server Enterprise Edition

Goal

This note will give an Brief overview of the steps to resolve ORA-600 [4194]/[4193]:-

This note is intended for internal use only

Solution

Short Description of ORA-00600[4194]

---------------------------------------

A mismatch has been detected between Redo records and rollback (Undo) 
records.

ARGUMENTS:
Arg [a] Maximum Undo record number in Undo block
Arg [b] Undo record number from Redo block



Refer to Note:39283.1 for more details on the description of this error.

Basic Steps that Need to be Followed to Solve an ORA-00600[4194] Error

There are two Options to resolve this issue.

Options along with their solutions are given below.

 

Option 1:- Support Method(Drop the undo tablespace). 



 

 @There is no need to use Unsupported parameter like _offline_rollback_segments and @_corrupted_rollback_segments to resolve ora-00600[4193]/[4194]

 

Option 1 :- Supported Method 
======================


Drop the undo tablespace. 

 

 Single instance

This error normally happens for a new transaction. The trace file actually shows an active transaction for the undo segment because this is the transaction created by the same process.If the undo segment happens to have an active transaction , then Oracle
may recover it later with no problems .

Normally if the header is dumped after the error, the active transactin is gone.

So a Simpler option to resolve this issue is.

Step 1
--------

SQL> Startup nomount ;    --> using spfile

SQL> Create pfile='/tmp/corrupt.ora' from spfile ; 

SQL> Shutdown immediate; 

Step 2
-------

Modify the corrupt.ora and set Undo_managment=Manual 

SQL> Startup mount pfile='/tmp/corrupt.ora' 

SQL> Show parameter undo 

   it should show manual 

SQL> Alter database open ; 

If it comes up 

SQL> Create rollback segment r01 ; 

SQL> Alter rollback segment r01 online ; 

Create a new undo tablespace 

SQL> Create undo tablespace undotbs_new datafile '<>' size <> M ; 

Drop the Old undo tablespace

SQL> Drop tablespace <undo tablespace name> including contents and datafiles

 

Step 3
-------

SQL> Shutdown immediate; 

SQL> Startup nomount ; ---> Using spfile 

SQL>Alter system set undo_tablespace=<new Undo tablespace created> scope=spfile; 

SQL> Shutdown immediate ; 

SQL> Startup 

Check if error is reported

 

For Rac Instance(If one instance is down and other is up and running)

------------------------

If one node is up and running and other node is failing with ORA-00600[4194]/[4193] then

From the instance which is up and running create a new undo tablespace and make it the default one for the other instance which is down with the error.Startup the failing instance with
the new undo tablespace.


From Instance which is up and running 

Create undo tablespace undo_new datafile '<filename>' size <> m ;

Alter system set undo_tablespace=<New undo tablespace name> sid=<instance which has corrupt undo tablespace and is down>  ;

Now Startup the Instance which is down

SQL>Startup mount 

SQL>Show parameter undo

Should show the new undo tablespace created above

SQL>Alter database open ;

SQL>Drop tablespace <Old undo tablespace of the failing instance> including contents and datafiles


If all the Instance is down in the Rac due to this error then following the instruction given for Single instance and  create new undo tablespace.



For 8i database and Below

SQL>Startup restrict

Drop the Manual rollback segments and recreate it

 

  

@Option 2 (Drop the Rollback segment)

@From the ora-00600[4194] trace file identify the undo segment

@For example

@ORA-00600: internal error code, arguments: [4194], [19], [33], [], [], [],

@In the above example

@ARGUMENTS: 

@a----> 19 

@Search for UNDO BLK in the trace file

@********************************************************************************

@cnt--->0x13 --> Decimal --> 19



 

 

 

@Option 3(System undo segment erroring with Ora-00600[4194/4193]

@Option 1 would fail if the undo segment involved is System undo segment.

@Please refer the note given below for patching the same.

@Note.452620.1

 

 

 

 


References

NOTE:39283.1 - ORA-600 [4194] "Undo Record Number Mismatch While Adding Undo Record"

Show Related Information Related

Products Oracle Database Products > Oracle Database > Oracle Database > Oracle Server - Enterprise EditionErrors ORA-600[4193]; ORA-600[4194/4193]; ORA-600[4194]
相关文章
|
Oracle 关系型数据库 数据库
|
SQL Oracle 关系型数据库
|
12天前
|
SQL Oracle 关系型数据库
【Oracle】玩转Oracle数据库(一):装上去,飞起来!
【Oracle】玩转Oracle数据库(一):装上去,飞起来!
52 7
|
1月前
|
Oracle 关系型数据库 数据库
|
30天前
|
Oracle 关系型数据库 数据库
Oracle数据库基本概念理解(3)
Oracle数据库基本概念理解(3)
18 2
|
12天前
|
SQL Oracle 关系型数据库
【Oracle】玩转Oracle数据库(七):RMAN恢复管理器
【Oracle】玩转Oracle数据库(七):RMAN恢复管理器
40 5

推荐镜像

更多