Chinaunix首页 | 论坛 | 博客
  • 博客访问: 274340
  • 博文数量: 20
  • 博客积分: 307
  • 博客等级: 入伍新兵
  • 技术积分: 832
  • 用 户 组: 普通用户
  • 注册时间: 2012-07-03 23:52
文章分类

全部博文(20)

文章存档

2013年(18)

2012年(2)

分类: Oracle

2013-02-22 19:31:24

ORA-00600: internal error code, arguments: [3005], 是oracle一个很经典和严重的告警,以前只是听说或者其他dba朋友碰到,自己还没真正碰到
有幸自己也碰到了ORA-00600,把解决办法写出了,供遇到的同行朋友参考借鉴!
下午4点左右,开发反应无法连接数据库,查看数据库状态为mount状态,手动open时报错!
 
QL> select status from v$instance;
 
STATUS
------------
MOUNTED
 
SQL> alter database open;
 
SQL> alter database open;
alter database open
*
ERROR at line 1:
ORA-00600: internal error code, arguments: [3005], [1], [616], [244929], [0],
[0], [], [], [], [], [], []
查看告警日志,日志如下:
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
阅读(10602) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~