oracle ORA-00600 [2662] [qertbFetchByRowID]
前段时间一哥们在学习oracle,当时出了问题.我也顺便练练手..
Starting up ORACLE RDBMS Version: 10.2.0.1.0.
SMON: enabling cache recovery
Sat Apr 16 18:41:48 2011
Errors in file r:\oradata\admin\dljy\udump\dljy_ora_3428.trc:
ORA-00600: ??????, ??: [2662], [0], [813953], [0], [813997], [4194313], [], [] ///明显是控制文件出了问题,省事就直接重建。
也可以采用
alter session set events 'IMMEDIATE trace name ADJUST_SCN level 1';
ALTER SESSION SET EVENTS '10015 TRACE NAME ADJUST_SCN LEVEL 1';
SQL> Create controlfile reuse set database "dljy"
2 MAXINSTANCES 8
3 MAXLOGHISTORY 1
4 MAXLOGFILES 16
5 MAXLOGMEMBERS 3
6 MAXDATAFILES 100
7 Datafile
8 'R:\oradata\dljy\SYSTEM01.DBF',
9 'R:\oradata\dljy\UNDOTBS01.DBF',
10 'R:\oradata\dljy\SYSAUX01.DBF',
11 'R:\oradata\dljy\USERS01.DBF'
12 LOGFILE GROUP 1 ('R:\oradata\dljy\redo01.log') SIZE 51200K,
13 GROUP 2 ('R:\oradata\dljy\redo02.log') SIZE 51200K,
14 GROUP 3 ('R:\oradata\dljy\redo03.log') SIZE 51200K RESETLOGS
15 /
之后遭遇了 混滚段的错误意料之中:
Sat Apr 16 18:53:00 2011
Errors in file r:\oradata\admin\dljy\bdump\dljy_j001_3652.trc:
ORA-00376: file cannot be read at this time
ORA-00376: file ORA-00376: file 2 cannot be read at this time
ORA-01110: data file 2: 'R:\ORADATA\DLJY\UNDOTBS01.DBF'
cannot be read at this time
SQL> alter database datafile 2 offline;
SQL> create undo tablespace untbs2 datafile 'R:\ORADATA\DLJY\unotbs2.dbf' si
00m;
SQL> select segment_name,status from dba_rollback_segs;
SEGMENT_NAME STATUS
------------------------------ ----------------
SYSTEM ONLINE
_SYSSMU10$ NEEDS RECOVERY
_SYSSMU9$ NEEDS RECOVERY
_SYSSMU8$ NEEDS RECOVERY
_SYSSMU7$ NEEDS RECOVERY
_SYSSMU6$ NEEDS RECOVERY
_SYSSMU5$ NEEDS RECOVERY
_SYSSMU4$ NEEDS RECOVERY
_SYSSMU3$ NEEDS RECOVERY
_SYSSMU2$ NEEDS RECOVERY
_SYSSMU1$ NEEDS RECOVERY
SEGMENT_NAME STATUS
------------------------------ ----------------
_SYSSMU20$ OFFLINE
_SYSSMU19$ OFFLINE
_SYSSMU18$ OFFLINE
_SYSSMU17$ OFFLINE
_SYSSMU16$ OFFLINE
_SYSSMU15$ OFFLINE
_SYSSMU14$ OFFLINE
_SYSSMU13$ OFFLINE
_SYSSMU12$ OFFLINE
_SYSSMU11$ OFFLINE
通过隐含参数重建混滚段...
最后又遇到了
Sat Apr 16 19:21:02 2011
Errors in file r:\oradata\admin\dljy\bdump\dljy_mmon_2712.trc:
ORA-00600: 内部错误代码, 参数: [qertbFetchByRowID], [], [], [], [], [], [], []
SQL> select index_name,table_name,owner
2 from dba_indexes
3 where table_name ='WRI$_ALERT_OUTSTANDING';
INDEX_NAME TABLE_NAME
------------------------------ -----------------------------
OWNER
------------------------------
WRI$_ALERTS_OUTSTANDING_PK WRI$_ALERT_OUTSTANDING
SYS
SQL> alter index WRI$_ALERTS_OUTSTANDING_PK rebuild online;
索引已更改。
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 373293056 bytes
Fixed Size 1249056 bytes
Variable Size 117440736 bytes
Database Buffers 247463936 bytes
Redo Buffers 7139328 bytes
数据库装载完毕。
数据库已经打开。
SQL>
以上操作都是在测试环境完成的,建议不要早生产环境这样操作。有备份才是王道!