数据库报错:ORA-00600: internal error code, arguments: [4193], [457],该如何解决?

作者介绍:老苏,10余年DBA工作运维经验,擅长Oracle、MySQL、PG、Mongodb数据库运维(如安装迁移,性能优化、故障应急处理等)
公众号:老苏畅谈运维
欢迎关注本人公众号,更多精彩与您分享。

一个数据库在启动后报错:ORA-00600: internal error code, arguments: [4193], [457],该如何解决?

故障现象

一个数据库在启动后,alert一直报错,具体报错信息如下:

space available in the underlying filesystem or ASM diskgroup.
Block recovery from logseq 14, block 55 to scn 5156257
Recovery of Online Redo Log: Thread 1 Group 2 Seq 14 Reading mem 0
  Mem# 0: /u01/oradata/dbbbed/redo02.log
Block recovery stopped at EOT rba 14.100.16
Block recovery completed at rba 14.100.16, scn 0.5156255
Block recovery from logseq 14, block 55 to scn 5156225
Recovery of Online Redo Log: Thread 1 Group 2 Seq 14 Reading mem 0
  Mem# 0: /u01/oradata/dbbbed/redo02.log
Block recovery completed at rba 14.63.16, scn 0.5156228
Errors in file /u01/app/oracle/diag/rdbms/dbbbed/dbbbed/trace/dbbbed_smon_4975.trc:
ORA-01595: error freeing extent (3) of rollback segment (9))
ORA-00600: internal error code, arguments: [4193], [457], [], [], [], [], [], [], [], [], [], []
Starting background process CJQ0
Wed Aug 14 11:24:16 2024
CJQ0 started with pid=27, OS id=5023
Dumping diagnostic data in directory=[cdmp_20240814112416], requested by (instance=1, osid=4975 (SMON)), summary=[incident=185048].
Starting background process SMCO
Wed Aug 14 11:24:17 2024
SMCO started with pid=28, OS id=5026
Wed Aug 14 11:24:51 2024
Thread 1 advanced to log sequence 15 (LGWR switch)
  Current log# 3 seq# 15 mem# 0: /u01/oradata/dbbbed/redo03.log
Wed Aug 14 11:24:51 2024
Archived Log entry 35 added for thread 1 sequence 14 ID 0xc912ba47 dest 1:
Thread 1 advanced to log sequence 16 (LGWR switch)
  Current log# 1 seq# 16 mem# 0: /u01/oradata/dbbbed/redo01.log
Wed Aug 14 11:24:52 2024
Archived Log entry 36 added for thread 1 sequence 15 ID 0xc912ba47 dest 1:
Wed Aug 14 11:25:14 2024
Sweep [inc][185048]: completed
Sweep [inc2][185048]: completed
Wed Aug 14 11:29:17 2024
Errors in file /u01/app/oracle/diag/rdbms/dbbbed/dbbbed/trace/dbbbed_smon_4975.trc  (incident=185049):
ORA-00600: internal error code, arguments: [4193], [457], [], [], [], [], [], [], [], [], [], []
Incident details in: /u01/app/oracle/diag/rdbms/dbbbed/dbbbed/incident/incdir_185049/dbbbed_smon_4975_i185049.trc
Use ADRCI or Support Workbench to package the incident.
See Note 411.1 at My Oracle Support for error and packaging details.
Block recovery from logseq 14, block 55 to scn 5156257
Recovery of Online Redo Log: Thread 1 Group 2 Seq 14 Reading mem 0
  Mem# 0: /u01/oradata/dbbbed/redo02.log

可以看到,之前可能由于断电或者不正常关机,导致启动后,smon在做实例恢复,恢复过程报错。

ORA-600 [4193] 这个错误主要跟undo相关,根据官方文档:ORA-600 [4193] “seq# mismatch while adding undo record” (Doc ID 39282.1)的描述,在重做记录和回滚记录之间检测到不匹配。

解决方法

遇到类似的undo问题,常规方式可以通过重建undo来解决,参考文档:Step by step to resolve ORA-600 4194 4193 4197 on database crash (Doc ID 1428786.1),具体操作如下:

生成pfile并修改

--生成pfile
SQL> create pfile='/tmp/init.ora' from spfile;
--修改pfile,修改如下
vi /tmp/init.ora
.............................
#*.undo_tablespace='UNDOTBS1'
undo_management = 'MANUAL'
rollback_segments = 'SYSTEM'

使用pfile重新启动

--shutdown immediate关不掉数据库,只能shutdown abort
SQL> shutdown immediate;
ORA-00600: internal error code, arguments: [4193], [457],
[.DBMS_STANDARD"AUTH",  

SQL> shutdown abort;
ORACLE instance shut down.

--启动
SQL> startup mount pfile='/tmp/1.txt';
ORACLE instance started.

Total System Global Area 3691200512 bytes
Fixed Size		    2258680 bytes
Variable Size		  788531464 bytes
Database Buffers	 2885681152 bytes
Redo Buffers		   14729216 bytes
Database mounted.
SQL> show parameter undo;

NAME				     TYPE	 VALUE
------------------------------------ ----------- ------------------------------
_in_memory_undo 		     boolean	 TRUE
undo_management 		     string	 MANUAL
undo_retention			     integer	 900
undo_tablespace 		     string
SQL> alter database open;

Database altered.

重建undo tablespace

SQL> drop tablespace undotbs1 including contents and datafiles;

Tablespace dropped.

SQL> select file_name from dba_data_files;

FILE_NAME
--------------------------------------------------------------------------------
/u01/oradata/dbbbed/mssm01.dbf
/u01/oradata/dbbbed/szr01.dbf
/u01/oradata/dbbbed/tbst01.dbf
/u01/oradata/dbbbed/users01.dbf
/u01/oradata/dbbbed/sysaux01.dbf
/u01/oradata/dbbbed/system01.dbf
/u01/oradata/dbbbed/test0529.dbf
/u01/oradata/dbbbed/ggtbs01.dbf

8 rows selected.

SQL> create undo tablespace undotbs1 datafile '/u01/oradata/dbbbed/undotbs1.dbf' size 100M autoextend on;

Tablespace created.

重启并使用原来的spfile

SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> 
SQL> startup;
ORACLE instance started.

Total System Global Area 3691200512 bytes
Fixed Size		    2258680 bytes
Variable Size		  788531464 bytes
Database Buffers	 2885681152 bytes
Redo Buffers		   14729216 bytes
Database mounted.
Database opened.

查看alert

查看alert日志,没有报错,数据库启动正常,问题解决!

MMNL started with pid=16, OS id=6254 
starting up 1 dispatcher(s) for network address '(ADDRESS=(PARTIAL=YES)(PROTOCOL=TCP))'...
starting up 1 shared server(s) ...
ORACLE_BASE from environment = /u01/app/oracle
Wed Aug 14 11:38:22 2024
ALTER DATABASE   MOUNT
Successful mount of redo thread 1, with mount id 3374755886
Database mounted in Exclusive Mode
Lost write protection disabled
Completed: ALTER DATABASE   MOUNT
Wed Aug 14 11:38:27 2024
ALTER DATABASE OPEN
LGWR: STARTING ARCH PROCESSES
Wed Aug 14 11:38:27 2024
ARC0 started with pid=20, OS id=6269 
ARC0: Archival started
LGWR: STARTING ARCH PROCESSES COMPLETE
ARC0: STARTING ARCH PROCESSES
Wed Aug 14 11:38:27 2024
ARC1 started with pid=21, OS id=6271 
Thread 1 opened at log sequence 17
  Current log# 2 seq# 17 mem# 0: /u01/oradata/dbbbed/redo02.log
Successful open of redo thread 1
MTTR advisory is disabled because FAST_START_MTTR_TARGET is not set
Wed Aug 14 11:38:27 2024
ARC2 started with pid=22, OS id=6273 
SMON: enabling cache recovery
Wed Aug 14 11:38:27 2024
ARC3 started with pid=23, OS id=6275 
ARC1: Archival started
ARC2: Archival started
ARC3: Archival started
ARC0: STARTING ARCH PROCESSES COMPLETE
ARC0: Becoming the 'no FAL' ARCH
ARC0: Becoming the 'no SRL' ARCH
ARC3: Becoming the heartbeat ARCH
[6267] Successfully onlined Undo Tablespace 2.
Undo initialization finished serial:0 start:5198664 end:5198684 diff:20 (0 seconds)
Verifying file header compatibility for 11g tablespace encryption..
Verifying 11g file header compatibility for tablespace encryption completed
SMON: enabling tx recovery
Database Characterset is AL32UTF8
No Resource Manager plan active
replication_dependency_tracking turned off (no async multimaster replication found)
Starting background process QMNC
Wed Aug 14 11:38:27 2024
QMNC started with pid=24, OS id=6277 
Completed: ALTER DATABASE OPEN
Wed Aug 14 11:38:27 2024
db_recovery_file_dest_size of 4182 MB is 0.00% used. This is a
user-specified limit on the amount of space that will be used by this
database for recovery-related files, and does not reflect the amount of
space available in the underlying filesystem or ASM diskgroup.
Starting background process CJQ0
Wed Aug 14 11:38:27 2024
CJQ0 started with pid=25, OS id=6294 
Wed Aug 14 11:43:27 2024
Starting background process SMCO
Wed Aug 14 11:43:27 2024
SMCO started with pid=28, OS id=6544 

关注我,学习更多的数据库知识!
请添加图片描述

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

老苏畅谈运维

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值