ORA-00600: internal error code, arguments: [4137]

Oracle错误600解决
本文介绍了一种解决Oracle数据库中出现的ORA-00600内部错误的方法,涉及回滚段问题及如何安全地删除损坏的回滚表空间。
ORA-00600: internal error code, arguments: [4137]
2012-05-22 14:43

1       日志:

1.1      Alert日志

Tue May 22 10:04:14 2012

Errors in file /data/oracle9/admin/DEVDB/bdump/jdb01_smon_29221.trc:

ORA-00600: internal error code, arguments: [4137], [], [], [], [], [], [], []

Tue May 22 10:04:15 2012

ORACLE Instance jdb01 (pid = 6) - Error 600 encountered while recovering transaction (16, 29).

Tue May 22 10:04:15 2012

Errors in file /data/oracle9/admin/DEVDB/bdump/jdb01_smon_29221.trc:

ORA-00600: internal error code, arguments: [4137], [], [], [], [], [], [], []

SMON: mark undo segment 16 as needs recovery

Tue May 22 10:07:29 2012

drop rollback segment "_SYSSMU16$"

Tue May 22 10:07:29 2012

ORA-30025 signalled during: drop rollback segment "_SYSSMU16$"...

Tue May 22 10:09:23 2012

SMON: about to recover undo segment 16

Tue May 22 10:09:38 2012

Errors in file /data/oracle9/admin/DEVDB/bdump/jdb01_smon_29221.trc:

ORA-00600: internal error code, arguments: [4137], [], [], [], [], [], [], []

ORACLE Instance jdb01 (pid = 6) - Error 600 encountered while recovering transaction (16, 29).

Tue May 22 10:09:39 2012

Errors in file /data/oracle9/admin/DEVDB/bdump/jdb01_smon_29221.trc:

ORA-00600: internal error code, arguments: [4137], [], [], [], [], [], [], []

SMON: mark undo segment 16 as needs recovery

2       解决过程:

通过SELECT * from dba_rollback_segs或者上述的描述来看_SYSSMU16$有坏块,而且该回滚表空间并发当前数据库使用的回滚表空间,但这个回滚段的status是“NEEDS RECOVERY“,为确保万无一失,先把数据备份出来,然后把这个表空间drop掉。备份在这里不在描述,下面主要是从drop掉这个undo tablespace开始描述。

2.1      删除回滚表空间

SQL> drop tablespace UNDOTBS1 including contents;
drop tablespace UNDOTBS1 including contents
*
ERROR at line 1:
ORA-01548: active rollback segment '_SYSSMU16$' found, terminate dropping
tablespace

不让删除,考虑逐个删除回滚段,

SQL> drop rollback segment "_SYSSMU16$";
drop rollback segment "_SYSSMU16$"
*
ERROR at line 1:
ORA-30025: DROP segment '_SYSSMU16$' (in undo tablespace) not allowed

看来直接drop掉不行,需设置_corrupted_rollback_segments的隐含参数。

2.2      设置_corrupted_rollback_segments

2.2.1    创建init.ora

SQL> create pfile from spfile;

 

File created.

2.2.2    设置隐含参数

*.timed_statistics=TRUE

*.undo_management='auto'

*.undo_retention=10800

*.undo_tablespace='undo02'

*.use_indirect_data_buffers=true

*._CORRUPTED_ROLLBACK_SEGMENTS=(_SYSSMU16$)

2.2.3    改用init.ora启动,并删除回滚表空间

SQL> shutdown immediate;

Database dismounted.

ORACLE instance shut down.

SQL> startup mount pfile='/data/oracle9/product/9.2.0/dbs/initjdb01.ora';

ORACLE instance started.

Total System Global Area 3738768904 bytes

Fixed Size                   452104 bytes

Variable Size             587202560 bytes

Database Buffers         3145728000 bytes

Redo Buffers                5386240 bytes

Database mounted.

SQL> alter database open;

Database altered.

SQL>  drop tablespace UNDOTBS1 including contents and datafiles;

Tablespace dropped.

2.3      重新用spfile启动数据库

SQL> shutdown immediate

Database closed.

Database dismounted.

ORACLE instance shut down.

SQL> startup;

ORACLE instance started.

Total System Global Area 3738768904 bytes

Fixed Size                   452104 bytes

Variable Size             587202560 bytes

Database Buffers         3145728000 bytes

Redo Buffers                5386240 bytes

Database mounted.

2.4      查看警告日志是否正常

Tue May 22 10:18:12 2012

SMON: enabling cache recovery

Tue May 22 10:18:12 2012

Undo Segment 1 Onlined

Undo Segment 2 Onlined

Undo Segment 3 Onlined

Undo Segment 4 Onlined

Undo Segment 5 Onlined

Undo Segment 6 Onlined

Undo Segment 7 Onlined

Undo Segment 8 Onlined

Undo Segment 9 Onlined

Undo Segment 10 Onlined

Successfully onlined Undo Tablespace 98.

Tue May 22 10:18:12 2012

SMON: enabling tx recovery

Tue May 22 10:18:12 2012

Database Characterset is ZHS16GBK

Completed: ALTER DATABASE OPEN

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/751051/viewspace-731723/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/751051/viewspace-731723/

### ORA-00600错误代码参数为-4019的解决方案 ORA-00600Oracle数据库中的一种内部错误,通常表示数据库遇到了一个不可预期的情况。当参数为`-4019`时,该错误可能与索引块损坏或索引结构不一致相关[^1]。以下是关于ORA-00600 internal error code arguments -4019的具体分析和解决方案: #### 1. 错误原因 ORA-00600 [-4019]通常发生在对索引进行操作时,例如插入、更新或删除数据。这种错误可能是由于以下原因之一引起的: - 索引块损坏。 - 索引结构不一致。 - 数据库文件(如数据文件或重做日志文件)存在物理损坏。 - 使用了隐藏参数或不当的数据库恢复方法。 #### 2. 解决方案 以下是针对ORA-00600 [-4019]的常见解决步骤: ##### 2.1 检查告警日志和跟踪文件 首先需要检查数据库的告警日志和相关的跟踪文件,以获取更多关于错误的详细信息。这些文件通常位于`$ORACLE_BASE/diag/rdbms/<dbname>/<instance>/trace/`目录下。通过分析这些文件,可以确定具体的索引对象及其相关问题[^3]。 ##### 2.2 验证索引完整性 使用`ANALYZE INDEX`命令验证受影响的索引是否存在逻辑损坏: ```sql ANALYZE INDEX <index_name> VALIDATE STRUCTURE; ``` 如果发现索引损坏,可以通过重建索引来修复问题: ```sql ALTER INDEX <index_name> REBUILD; ``` ##### 2.3 检查数据文件一致性 如果索引重建无法解决问题,可能需要进一步检查数据文件的一致性。可以使用`DBVERIFY`工具验证数据文件的物理和逻辑结构: ```bash dbv file=<datafile_path> blocksize=<block_size> ``` ##### 2.4 恢复受影响的对象 如果上述方法无效,可以尝试从备份中恢复受影响的表空间或数据文件。在恢复之前,请确保已启用归档模式并备份了所有必要的归档日志。 ##### 2.5 联系Oracle支持 如果以上方法均无法解决问题,建议收集相关诊断信息(如告警日志、跟踪文件等),并联系Oracle官方支持以获取进一步帮助。 #### 3. 示例代码 以下是一个示例脚本,用于验证和重建索引: ```sql -- 验证索引结构 ANALYZE INDEX my_index VALIDATE STRUCTURE; -- 如果发现损坏,重建索引 ALTER INDEX my_index REBUILD; ``` --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值