- 最后登录
- 2017-5-4
- 在线时间
- 81 小时
- 威望
- 999
- 金钱
- 2391
- 注册时间
- 2013-9-11
- 阅读权限
- 150
- 帖子
- 1124
- 精华
- 5
- 积分
- 999
- UID
- 1220
|
1#
发表于 2017-4-15 10:31:47
|
查看: 1612 |
回复: 1
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: {<RET>=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
|
|