标签归档:ORA-600 2662

从ORA-00283 ORA-16433报错开始恢复

接手一个客户无法正常启动的故障数据库,尝试recover 报ORA-00283 ORA-16433错误

[oracle@xff trace]$ sqlplus / as sysdba

SQL*Plus: Release 12.1.0.2.0 Production on Sat Jan 27 04:46:23 2024

Copyright (c) 1982, 2014, Oracle.  All rights reserved.


???:
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options

SQL> show pdbs;
SQL> select open_mode from v$database;

OPEN_MODE
--------------------
MOUNTED

SQL>
SQL> recover database;
ORA-00283: recovery session canceled due to errors
ORA-16433: The database must be opened in read/write mode

通过对控制文件进行处理,再次尝试recover库

SQL> recover database;
ORA-00399: corrupt change description in redo log
ORA-00353: log corruption near block 134877 change 3249721295 time 01/27/2024 00:21:05
ORA-00312: online log 1 thread 1:'/u01/app/oracle/oradata/xff/redo01.log'

由于redo和数据文件不匹配,无法正常recover库,尝试强制打开库报ORA-600 2662错误

SQL> alter database open resetlogs;
alter database open resetlogs
*
ERROR at line 1:
ORA-00603: ORACLE server session terminated by fatal error
ORA-00600: internal error code, arguments: [2662], [0], [3249721308], [0],[3249730440], [16777344],[],[],[],[],[],[]
ORA-00600: internal error code, arguments: [2662], [0], [3249721307], [0],[3249730440], [16777344],[],[],[],[],[],[]
ORA-01092: ORACLE instance terminated. Disconnection forced
ORA-00600: internal error code, arguments: [2662], [0], [3249721303], [0],[3249730440], [16777344],[],[],[],[],[],[]
Process ID: 117336
Session ID: 1146 Serial number: 11764

基于这种错误,尝试oradebug修改scn

SQL> oradebug setmypid
oradebug DUMPvar SGA kcsgscn_
Statement processed.
SQL> kcslf kcsgscn_ [06001FBB0, 06001FBE0) = 00000000 00000000 00000000 00000000 00000000 
SQL> oradebug poke 0x06001FBB0 4 0x10000000
oradebug DUMPvar SGA kcsgscn_
ORA-32521: error parsing ORADEBUG command:

发现报ORA-32521错误,证明常规的oradebug方法无法修改scn,参考相关文章:
oradebug poke ORA-32521/ORA-32519故障解决
第一次通过其他方法处理,由于计算失误导致数据库启动报ORA-600 2252错误

SQL> ALTER DATABASE OPEN RESETLOGS;
ALTER DATABASE OPEN RESETLOGS
*
ERROR at line 1:
ORA-00600: internal error code, arguments: [2252], [45264], [0], [11641],[3340959744], [],[],[],[],[],[]

该错误是相关文章参考:
记录一次ORA-00600[2252]故障解决
ORA-00600: internal error code, arguments: [2252], [3987]
主机断电系统回到N年前数据库报ORA-600 kcm_headroom_warn_1错误
处理正确的scn值之后,数据库open成功,然后逻辑方式导出数据,恢复工作完成

SQL> alter database open ;

Database altered.

发表在 Oracle备份恢复 | 标签为 , , , , | 评论关闭

ORA-600 kcrf_resilver_log_1故障处理

接手一个客户的数据库故障处理,最初数据库启动报ORA-600 kcrf_resilver_log_1错

Mon Jan 08 16:16:22 2024
ALTER DATABASE   MOUNT
Successful mount of redo thread 1, with mount id 2385308630
Database mounted in Exclusive Mode
Lost write protection disabled
Completed: ALTER DATABASE   MOUNT
Mon Jan 08 16:16:26 2024
ALTER DATABASE OPEN
Beginning crash recovery of 1 threads
 parallel recovery started with 15 processes
Started redo scan
Errors in file /u2/11G/base/diag/rdbms/xff/xff/trace/xff_ora_3350.trc  (incident=276167):
ORA-00600: internal error code, arguments: [kcrf_resilver_log_1], [0x1542C3A00], [2], , 
Incident details in:/u2/11G/base/diag/rdbms/xff/xff/incident/incdir_276167/xff_ora_3350_i276167.trc
Use ADRCI or Support Workbench to package the incident.
See Note 411.1 at My Oracle Support for error and packaging details.
Aborting crash recovery due to error 600
Errors in file /u2/11G/base/diag/rdbms/xff/xff/trace/xff_ora_3350.trc:
ORA-00600: internal error code, arguments: [kcrf_resilver_log_1], [0x1542C3A00], [2]
Errors in file /u2/11G/base/diag/rdbms/xff/xff/trace/xff_ora_3350.trc:
ORA-00600: internal error code, arguments: [kcrf_resilver_log_1], [0x1542C3A00], [2]
ORA-600 signalled during: ALTER DATABASE OPEN...

客户自行recover数据库之后报ORA-00283 ORA-00742 ORA-00312错

Mon Jan 08 17:05:34 2024
ALTER DATABASE RECOVER  database  
Media Recovery Start
 started logmerger process
Parallel Media Recovery started with 16 slaves
Mon Jan 08 17:05:35 2024
Recovery of Online Redo Log: Thread 1 Group 2 Seq 63899 Reading mem 0
  Mem# 0: /u2/11G/data/xff/redo02.log
Media Recovery failed with error 742
Errors in file /u2/11G/base/diag/rdbms/xff/xff/trace/xff_pr00_3857.trc:
ORA-00283: recovery session canceled due to errors
ORA-00742: Log read detects lost write in thread %d sequence %d block %d
ORA-00312: online log 2 thread 1: '/u2/11G/data/xff/redo02.log'
ORA-283 signalled during: ALTER DATABASE RECOVER  database  ...

客户强制打开数据库

Tue Jan 09 17:37:51 2024
ALTER DATABASE OPEN
Errors in file /u2/11G/base/diag/rdbms/xff/xff/trace/xff_ora_3501.trc:
ORA-01589: must use RESETLOGS or NORESETLOGS option for database open
ORA-1589 signalled during: ALTER DATABASE OPEN...
Tue Jan 09 17:43:45 2024
alter database open resetlogs
RESETLOGS is being done without consistancy checks. This may result
in a corrupted database. The database should be recreated.
RESETLOGS after incomplete recovery UNTIL CHANGE 4418119911
Resetting resetlogs activation ID 2289128497 (0x88715431)
Online log /u2/11G/data/xff/redo01.log: Thread 1 Group 1 was previously cleared
Online log /u2/11G/data/xff/redo02.log: Thread 1 Group 2 was previously cleared
Online log /u2/11G/data/xff/redo03.log: Thread 1 Group 3 was previously cleared
Tue Jan 09 17:43:46 2024
Setting recovery target incarnation to 3
Tue Jan 09 17:43:46 2024
Assigning activation ID 2385405291 (0x8e2e656b)
Thread 1 opened at log sequence 1
  Current log# 1 seq# 1 mem# 0: /u2/11G/data/xff/redo01.log
Successful open of redo thread 1
MTTR advisory is disabled because FAST_START_MTTR_TARGET is not set
Tue Jan 09 17:43:46 2024
SMON: enabling cache recovery
Errors in file /u2/11G/base/diag/rdbms/xff/xff/trace/xff_ora_3501.trc  (incident=492171):
ORA-00600: internal error code, arguments: [2662], [1], [123152622], [1], [123176387], [12583040], []
Incident details in: /u2/11G/base/diag/rdbms/xff/xff/incident/incdir_492171/xff_ora_3501_i492171.trc
Use ADRCI or Support Workbench to package the incident.
See Note 411.1 at My Oracle Support for error and packaging details.
Errors in file /u2/11G/base/diag/rdbms/xff/xff/trace/xff_ora_3501.trc:
ORA-00600: internal error code, arguments: [2662], [1], [123152622], [1], [123176387], [12583040], []
Errors in file /u2/11G/base/diag/rdbms/xff/xff/trace/xff_ora_3501.trc:
ORA-00600: internal error code, arguments: [2662], [1], [123152622], [1], [123176387], [12583040], []
Error 600 happened during db open, shutting down database
USER (ospid: 3501): terminating the instance due to error 600
Instance terminated by USER, pid = 3501
ORA-1092 signalled during: alter database open resetlogs...

这个故障相对比较简单,修改数据库scn之后,即可open数据库,然后逻辑方式迁移数据到新库即可

发表在 Oracle备份恢复 | 标签为 , , , | 评论关闭

硬件故障恢复出文件之后数据库故障处理

客户那边硬件故障(raid损坏磁盘超过了极限,导致raid offline),通过硬件恢复出来数据文件,然后尝试自行恢复,我接手的时候大量数据文件resetlogs scn异常.
wrong_resetlogs


重建控制文件报错

WARNING: Default Temporary Tablespace not specified in CREATE DATABASE command
Default Temporary Tablespace will be necessary for a locally managed database in future release
Errors in file /home/oracle/app/diag/rdbms/orcl/orcl/trace/orcl_ora_5949.trc:
ORA-01189: file is from a different RESETLOGS than previous files
ORA-01110: data file 153: '/home/oracle/oracledata/orcl/sysaux02.dbf'
ORA-1503 signalled during: CREATE CONTROLFILE REUSE DATABASE "ORCL" NORESETLOGS  ARCHIVELOG

通过修改文件头然后重建控制文件,可以通过bbed,或者我的小工具Oracle Recovery Tools
bbed解决ORA-01190
Oracle Recovery Tools 解决ORA-01190 ORA-01248等故障
重建control遗漏数据文件,reseltogs报ORA-1555错误处理
然后继续重建ctl发现以下错误

WARNING: Default Temporary Tablespace not specified in CREATE DATABASE command
Default Temporary Tablespace will be necessary for a locally managed database in future release
Errors in file /home/oracle/app/diag/rdbms/orcl/orcl/trace/orcl_ora_34075.trc:
ORA-01200: actual file size of 2015415 is smaller than correct size of 2944000 blocks
ORA-01110: data file 178: '/home/oracle/oracledata/orcl/xifenfei20_10.dbf'
ORA-1503 signalled during: CREATE CONTROLFILE REUSE DATABASE "ORCL" NORESETLOGS  NOARCHIVELOG

通过对比发现是由于客户上传恢复文件异常导致
20230713002257


重新上传文件,然后修改文件头,该问题解决,重建ctl成功,提个醒:对于这种硬件恢复之后文件上次到服务器上进行恢复的,一定要确认上传文件和原文件一致,不然做无用功或者恢复效果差很多
尝试open数据库报ORA-600 2662错误

SQL> alter database open resetlogs;
alter database open resetlogs
*
ERROR at line 1:
ORA-00603: ORACLE server session terminated by fatal error
ORA-00600: internal error code, arguments: [2662], [5], [1653389530], [5],
[1653496702], [12583040], [], [], [], [], [], []
ORA-00600: internal error code, arguments: [2662], [5], [1653389529], [5],
[1653496702], [12583040], [], [], [], [], [], []
ORA-01092: ORACLE instance terminated. Disconnection forced
ORA-00600: internal error code, arguments: [2662], [5], [1653389527], [5],
[1653496702], [12583040], [], [], [], [], [], []
Process ID: 4710
Session ID: 1847 Serial number: 3

这个错误比较简单,一般是scn问题,有过大量的处理经验案例:
使用bbed解决ORA-00600[2662]
硬件故障导致ORA-600 2662错误处理
Patch SCN工具快速解决ORA-600 2662问题
解决好该问题之后,数据库open成功,实现了最大限度抢救数据.

发表在 Oracle备份恢复 | 标签为 , , , | 评论关闭