Completed: ALTER DATABASE MOUNT
Fri Feb 22 16:00:13 2013
ALTER DATABASE OPEN
Beginning crash recovery of 1 threads
parallel recovery started with 15 processes
Started redo scan
Errors in file /export/home/oracle/diag/rdbms/trace/xxx_ora_8834.trc (incident=78163):
ORA-00600: internal error code, arguments: [3005], [1], [616], [244929], [0], [0], [], [], [], [], [], []
Incident details in: /export/home/oracle/diag/rdbms/incident/incdir_78163/xxx_ora_8834_i78163.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 /export/home/oracle/diag/rdbms/trace/xxx_ora_8834.trc:
ORA-00600: internal error code, arguments: [3005], [1], [616], [244929], [0], [0], [], [], [], [], [], []
Errors in file /export/home/oracle/diag/rdbms/trace/xxx_ora_8834.trc:
ORA-00600: internal error code, arguments: [3005], [1], [616], [244929], [0], [0], [], [], [], [], [], []
ORA-600 signalled during: ALTER DATABASE OPEN...
Dumping diagnostic data in directory=[cdmp_20130222160015], requested by (instance=1, osid=8834), summary=[incident=78163].
Fri Feb 22 16:01:12 2013
Sweep [inc][78163]: completed
Sweep [inc2][78163]: completed
Fri Feb 22 16:01:33 2013
印象中metalink上面有给出解决方法,于是------
oracle metalink 给出ORA-600 3005解决方案:
Solution
1. Check the current state of datafiles and online redo logs
a. Compare SCN (checkpoint_change#) from datafile headers:
select status,checkpoint_change#,checkpoint_time, resetlogs_change#, resetlogs_time, count(*), fuzzy from v$datafile_header
group by status,checkpoint_change#,checkpoint_time, resetlogs_change#, resetlogs_time, fuzzy;
b. with the online log files (first_change#):
col member form a60
select v1.thread#, v1.group#, member, sequence#, first_change#, archived, v1.status from v$log v1, v$logfile v2 where v1.group#=v2.group#;
NOTE: in most cases, the online redo log file will be the one with v1.status = CURRENT
2. Run instance recovery manually
a. Issue the command:
recover database using backup controlfile until cancel;
b. when prompted, give it the full online redo log file name associated with the THREAD# suggested.
c. Oracle should return:
Log applied.
Media recovery complete.
3. Open the database with resetlogs:
alter database open resetlogs;
3、操作过程:
SQL> set line 120
select status,checkpoint_change#,checkpoint_time, resetlogs_change#, resetlogs_time, count(*), fuzzy from v$datafile_header
2 group by status,checkpoint_change#,checkpoint_time, resetlogs_change#, resetlogs_time, fuzzy;
STATUS CHECKPOINT_CHANGE# CHECKPOINT_T RESETLOGS_CHANGE# RESETLOGS_TI COUNT(*) FUZ
------- ------------------ ------------ ----------------- ------------ ---------- ---
ONLINE 19112099 22-FEB-13 995548 10-OCT-12 35 NO
SQL> col MEMBER for a30
SQL> select v1.thread#, v1.group#, member, sequence#, first_change#, archived, v1.status from v$log v1, v$logfile v2 where v1.group#=v2.group#;
THREAD# GROUP# MEMBER SEQUENCE# FIRST_CHANGE# ARC STATUS
---------- ---------- ------------------------------ ---------- ------------- --- ----------------
1 1 /ora_data/hljdx/redo01.log 611 18933923 YES INACTIVE
1 2 /ora_data/hljdx/redo02.log 612 19000743 YES INACTIVE
1 5 /ora_data/hljdx/redo05.log 615 19086681 NO CURRENT
1 4 /ora_data/hljdx/redo04.log 614 19077923 YES INACTIVE
1 3 /ora_data/hljdx/redo03.log 613 19009581 YES INACTIVE
SQL> recover database using backup controlfile until cancel;
ORA-00279: change 19112099 generated at 02/22/2013 14:18:10 needed for thread 1
ORA-00289: suggestion : /ora_arch/1_615_796305824.dbf
ORA-00280: change 19112099 for thread 1 is in sequence #615
Specify log: {=suggested | filename | AUTO | CANCEL} ------上面提示需要615号归档日志,但是615号的redo log正在CURRENT状态,还没归档,没有!直接cancel
cancel
Media recovery cancelled.
最后以resetlog方式open数据库
SQL> alter database open resetlogs;
SQL> select status from v$instance;
STATUS
------------
OPEN
至于是什么原因导致问题,也不是很清楚,出问题之前没有对数据库做任何改动或操作。HA主备进行了切换后就出现无法open故障!
PS:问题虽然解决了,但是下面这个操作主要有什么目的,请大牛们解释一下!
SQL> set line 120
select status,checkpoint_change#,checkpoint_time, resetlogs_change#, resetlogs_time, count(*), fuzzy from v$datafile_header
2 group by status,checkpoint_change#,checkpoint_time, resetlogs_change#, resetlogs_time, fuzzy;
STATUS CHECKPOINT_CHANGE# CHECKPOINT_T RESETLOGS_CHANGE# RESETLOGS_TI COUNT(*) FUZ
------- ------------------ ------------ ----------------- ------------ ---------- ---
ONLINE 19112099 22-FEB-13 995548 10-OCT-12 35 NO
SQL> col MEMBER for a30
SQL> select v1.thread#, v1.group#, member, sequence#, first_change#, archived, v1.status from v$log v1, v$logfile v2 where v1.group#=v2.group#;
THREAD# GROUP# MEMBER SEQUENCE# FIRST_CHANGE# ARC STATUS
---------- ---------- ------------------------------ ---------- ------------- --- ----------------
1 1 /ora_data/hljdx/redo01.log 611 18933923 YES INACTIVE
1 2 /ora_data/hljdx/redo02.log 612 19000743 YES INACTIVE
1 5 /ora_data/hljdx/redo05.log 615 19086681 NO CURRENT
1 4 /ora_data/hljdx/redo04.log 614 19077923 YES INACTIVE
1 3 /ora_data/hljdx/redo03.log 613 19009581 YES INACTIVE