1. 故障背景
1.1 事件概述
202X年X月X日,某用户的Oracle数据库在上午9点至10点期间发生故障,导致部分业务无法正常运行。经初步分析,发现数据库报出 ORA-00600
内部错误。该错误是Oracle的一个通用错误,通常由数据库内部逻辑异常、数据块损坏或存储问题引起。
1.2 影响范围
- 业务系统部分查询和写入失败
- 索引操作异常
- 数据库响应速度变慢
2. 故障排查与分析
2.1 错误日志分析
通过 alert.log
日志文件,我们发现了如下错误信息:
ORA-00600: , : [13013], [5001], [126801], [109382409], [101], [109382437], [17], [], [], [], [], []
Incident details in: /opt/app/oracle/diag/rdbms/jcd/jcd/incident/incdir_99948/jcd_ora_23550_i99948.trc
Non critical error ORA-48113 caught while writing to trace file "/opt/app/oracle/diag/rdbms/jcd/jcd/incident/incdir_99948/jcd_ora_23550_i99948.trc"
ORA-00600: , : [13013], [5001], [126801], [109382408], [102], [109382433], [17], [], [], [], [], []
Incident details in: /opt/app/oracle/diag/rdbms/jcd/jcd/incident/incdir_99980/jcd_ora_445_i99980.trc
ORA-00600: , : [13013], [5001], [126801], [109382409], [123], [109382437], [17], [], [], [], [], []
Incident details in: /opt/app/oracle/diag/rdbms/jcd/jcd/incident/incdir_101652/jcd_ora_8586_i101652.trc
ORA-00600: , : [13013], [5001], [126801], [109382409], [168], [109382437], [17], [], [], [], [], []
ORA-00600: , : [13013], [5001], [126801], [109382406], [99], [109382433], [17], [], [], [], [], []
ORA-00600: , : [13013], [5001], [126801], [109382405], [152], [109382433], [17], [], [], [], [], []
ORA-00600
是Oracle的内部错误,2662
可能与数据块的SCN不一致有关。
ORA-600 [13013]
Format: ORA-600 [13013] [a] [b] [c] [d] [e] [f]
This format relates to Oracle Server 8.0.3 and above
Arg [a] Passcount
Arg [b] Data Object number
Arg [c] Tablespace Decimal Relative DBA (RDBA) of block containing the row to be updated
Arg [d] Row Slot number
Arg [e] Decimal RDBA of block being updated (Typically same as [c])
Arg [f] Code
ORA-00600: internal error code, arguments: [13013], [5001], [268], [8457615], [5], [8457615], [17], [], [], [], [], []
2.2 确认损坏数据块
使用 dbms_utility.data_block_address_file
及 dbms_utility.data_block_address_block
确定损坏的数据块位置:
SELECT dbms_utility.data_block_address_file(109382409) rfile,
dbms_utility.data_block_address_block(109382409) rblocks