一次ORA-600处理
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一次ORA-600处理相关的知识,希望对你有一定的参考价值。
ORA-00600:internal error code, arguments: [4194], [43], [46], [], [], [], [], []出现这种情况,大多数是因为异常宕机,在启动的时候报的错误。DB 不能启动。
方法一:使用system segment
(1)用spfile 创建pfile,然后修改参数:
#.undo_tablespace=‘UNDOTBS1‘
#.undo_management=‘AUTO‘
#.undo_tablespace
#.undo_retention
undo_management=‘MANUAL‘
rollback_segments=‘SYSTEM‘
(2)用修改之后的pfile,重启DB
SQL> STARTUP pfile=‘F:/initorcl.ora‘ ;
(3)删除原来的表空间,创建新的UNDO 表空间
SQL> drop tablespace undotbs;
SQL> create undo tablespace undotbs1 datafile ‘/u01/oradata/undotbs1.dbf‘ size 10M;
(4)关闭数据库,修改pfile参数,然后用新的pfile创建spfile,在正常启动数据库。
.undo_tablespace=‘UNDOTBS1‘
.undo_management=‘AUTO‘
#undo_management=‘MANUAL‘
#rollback_segments=‘SYSTEM‘
方法二:跳过损坏的segment
在方法一里面,我们使用了system segment。 通过第一部分我们了解到,undo segment 有多个,我们可以通过alert log 来查看正在使用的是哪些segment,这些段有可能损坏了。 我们只需要把这些损坏的segment 跳过,先正常启动DB,在创建新的UNDO 表空间,在切换一下。
(1)修改pfile,添加参数:
*._corrupted_rollback_segments=‘_SYSSMU11$‘,‘_SYSSMU12$‘,‘_SYSSMU13$‘
这些字段的值,我们通过alert log 查看。 也可以通过如下命令查看:
#strings system01.dbf | grep _SYSSMU | cut -d $ -f 1 | sort -u
(2)用修改之后的pfile启动DB
因为跳过了哪些损坏的segment,所以DB 可以正常启动。
(3)创建新的UNDO 表空间,并切换过来
SQL> create undo tablespace undotbs1 datafile ‘/u01/oradata/undotbs1.dbf‘ size 10M;
SQL> alter system set undo_tablespace=undotbs1;
SQL> drop tablespace undotbs;
(4)修改pfile,创建spfile,并正常启动
删除:
*._corrupted_rollback_segments=‘_SYSSMU11$‘,‘_SYSSMU12$‘,‘_SYSSMU13$‘
以上就是UNDO 出现故障的2种处理方法。
以上是关于一次ORA-600处理的主要内容,如果未能解决你的问题,请参考以下文章
[Oracle]ORA-600[kdBlkCheckError]LOB坏块处理
导入数据的时候,遇到oracle错误600,ora-00600,内部错误代码,参数[kcbnew-3],[4],[