今天断电,oracle启动不了。
初步断定是undo表空间坏掉,不知道怎么处理。
脚本:
SQL> create pfile='/home/oracle/bi.ora' from spfile;
File created.
SQL> shutdown immediate
ORA-01109: database not open
Database dismounted.
ORACLE instance shut down.
SQL> startup mount pfile='/home/oracle/bi.ora'
ORACLE instance started.
Total System Global Area 2.0110E+10 bytes
Fixed Size 2237008 bytes
Variable Size 2483031472 bytes
Database Buffers 1.7583E+10 bytes
Redo Buffers 41787392 bytes
Database mounted.
SQL> show parameter undo
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
undo_management string MANUAL
undo_retention integer 900
undo_tablespace string UNDOTBS1
SQL> shutdown immediate
ORA-01109: database not open
Database dismounted.
ORACLE instance shut down.
SQL> startup mount pfile='/home/oracle/bi.ora'
ORACLE instance started.
Total System Global Area 2.0110E+10 bytes
Fixed Size 2237008 bytes
Variable Size 2483031472 bytes
Database Buffers 1.7583E+10 bytes
Redo Buffers 41787392 bytes
Database mounted.
SQL> show parameter undo
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
undo_management string MANUAL
undo_retention integer 900
undo_tablespace string UNDOTBS1
SQL> alter database open;
alter database open
*
ERROR at line 1:
ORA-00603: ORACLE server session terminated by fatal error
ORA-00600: internal error code, arguments: [2662], [8], [2975514792], [8],
[2975692561], [12587504], [], [], [], [], [], []
ORA-00600: internal error code, arguments: [2662], [8], [2975514791], [8],
[2975692561], [12587504], [], [], [], [], [], []
ORA-01092: ORACLE instance terminated. Disconnection forced
ORA-00600: internal error code, arguments: [2662], [8], [2975514789], [8],
[2975692561], [12587504], [], [], [], [], [], []
Process ID: 6438
Session ID: 853 Serial number: 5
日志:
Dump file /opt/oracle/diag/rdbms/bi/bi/incident/incdir_468251/bi_ora_19731_i468251.trc
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
ORACLE_HOME = /opt/oracle/product/OraHome
System name: Linux
Node name: server-dev
Release: 2.6.32-220.el6.x86_64
Version: #1 SMP Wed Nov 9 08:03:13 EST 2011
Machine: x86_64
Instance name: bi
Redo thread mounted by this instance: 1
Oracle process number: 19
Unix process pid: 19731, image: oracle@server-dev (TNS V1-V3)
*** 2014-11-18 13:40:36.066
*** SESSION ID:(853.5) 2014-11-18 13:40:36.066
*** CLIENT ID:() 2014-11-18 13:40:36.066
*** SERVICE NAME:(SYS$USERS) 2014-11-18 13:40:36.066
*** MODULE NAME:(sqlplus@server-dev (TNS V1-V3)) 2014-11-18 13:40:36.066
*** ACTION NAME:() 2014-11-18 13:40:36.066
Dump continued from file: /opt/oracle/diag/rdbms/bi/bi/trace/bi_ora_19731.trc
ORA-00600: internal error code, arguments: [2662], [8], [2975074220], [8], [2975692561], [12587504], [], [], [], [], [], []
ORA-00600: internal error code, arguments: [2662], [8], [2975074219], [8], [2975692561], [12587504], [], [], [], [], [], []
ORA-0109
========= Dump for incident 468251 (ORA 600 [2662]) ========
*** 2014-11-18 13:40:36.066
dbkedDefDump(): Starting incident default dumps (flags=0x2, level=3, mask=0x0)
----- Current SQL Statement for this session (sql_id=1h50ks4ncswfn) -----
ALTER DATABASE OPEN
----- Call Stack Trace -----
calling call entry argument values in hex
location type point (? means dubious value)
-------------------- -------- -------------------- ----------------------------
skdstdst()+36 call kgdsdst() 000000000 ? 000000000 ?
7FFF2B828508 ? 000000001 ?
000000001 ? 000000002 ?
ksedst1()+98 call skdstdst() 000000000 ? 000000000 ?
7FFF2B828508 ? 000000001 ?
000000000 ? 000000002 ?
ksedst()+34 call ksedst1() 000000000 ? 000000001 ?
7FFF2B828508 ? 000000001 ?
000000000 ? 000000002 ?
dbkedDefDump()+2741 call ksedst() 000000000 ? 000000001 ?
7FFF2B828508 ? 000000001 ?
000000000 ? 000000002 ?
ksedmp()+36 call dbkedDefDump() 000000003 ? 000000002 ?
7FFF2B828508 ? 000000001 ?
000000000 ? 000000002 ?
ksfdmp()+64 call ksedmp() 000000003 ? 000000002 ?
7FFF2B828508 ? 000000001 ?
000000000 ? 000000002 ?
dbgexPhaseII()+1764 call ksfdmp() 000000003 ? 000000002 ?
7FFF2B828508 ? 000000001 ?
000000000 ? 000000002 ?
dbgexProcessError() call dbgexPhaseII() 7F4FE9B6B710 ? 7F4FE9B6E500 ?
+2675 7FFF2B834880 ? 000000001 ?
000000000 ? 000000002 ?
dbgeExecuteForError call dbgexProcessError() 7F4FE9B6B710 ? 7F4FE9B6E500 ?
()+83 000000001 ? 000000000 ?
100000000 ? 000000002 ?
dbgePostErrorKGE()+ call dbgeExecuteForError 7F4FE9B6B710 ? 7F4FE9B6E500 ?
2138 () 000000001 ? 000000001 ?
000000000 ? 000000002 ?
dbkePostKGE_kgsf()+ call dbgePostErrorKGE() 00BAF3FA0 ? 7F4FE98F5B98 ?
66 000000258 ? 7F4FE9B6E500 ?
100000000 ? 000000002 ?
SQL> shutdown immediate
ORA-01109: database not open
Database dismounted.
ORACLE instance shut down.
SQL> startup mount pfile='/home/oracle/bi.ora'
ORACLE instance started.
Total System Global Area 2.0110E+10 bytes
Fixed Size 2237008 bytes
Variable Size 2483031472 bytes
Database Buffers 1.7583E+10 bytes
Redo Buffers 41787392 bytes
Database mounted.
SQL> show parameter undo
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
undo_management string MANUAL
undo_retention integer 900
undo_tablespace string UNDOTBS1
SQL> shutdown immediate
ORA-01109: database not open
Database dismounted.
ORACLE instance shut down.
SQL> startup mount pfile='/home/oracle/bi.ora'
ORACLE instance started.
Total System Global Area 2.0110E+10 bytes
Fixed Size 2237008 bytes
Variable Size 2483031472 bytes
Database Buffers 1.7583E+10 bytes
Redo Buffers 41787392 bytes
Database mounted.
SQL> show parameter undo
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
undo_management string MANUAL
undo_retention integer 900
undo_tablespace string UNDOTBS1
SQL> alter database open;
alter database open
*
ERROR at line 1:
ORA-00603: ORACLE server session terminated by fatal error
ORA-00600: internal error code, arguments: [2662], [8], [2975514792], [8],
[2975692561], [12587504], [], [], [], [], [], []
ORA-00600: internal error code, arguments: [2662], [8], [2975514791], [8],
[2975692561], [12587504], [], [], [], [], [], []
ORA-01092: ORACLE instance terminated. Disconnection forced
ORA-00600: internal error code, arguments: [2662], [8], [2975514789], [8],
[2975692561], [12587504], [], [], [], [], [], []
Process ID: 6438
Session ID: 853 Serial number: 5
------解决思路----------------------
startup mount;
select name from v$datafile;
alter database datafile '' offline drop;
alter database open;
------解决思路----------------------
怎么判断是undo表空间坏了??
应该是断电导致数据库文件不一致
可能需要备份来进行不完全恢复
ORA-600 [2662]
A data block SCN is ahead of the current SCN.
The ORA-600 [2662] occurs when an SCN is compared to the dependent SCN stored in a UGA variable.
If the SCN is less than the dependent SCN then we signal the ORA-600 [2662] internal error.
Format: ORA-600 [2662] [a] [b] [c] [d] [e]
ARGUMENTS:
Arg [a] Current SCN WRAP
Arg [b] Current SCN BASE
Arg [c] dependent SCN WRAP
Arg [d] dependent SCN BASE
Arg [e] Where present this is the DBA where the dependent SCN came from.