Oracle数据库意外宕机,归档开了,但是归档文件损坏,redo损坏,在强行拉起来之后UNDO报错,设置_corrupted_rollback_segments 跳过不一致的UNDO,重建UNDO表空间,接着报错:SMON encountered 100 out of maximum 100 non-fatal internal errors. 然后数据库自动宕机,报错处理如下:
1ORA-00600: internal error code, arguments: [13013], [5001], [458], [4197442], [6], [4197442], [3], [], [], [], [], []
Arg [a] Passcount 错误代码5001
Arg [b] Data Object number 即object_id=458
Arg [c] Tablespace Relative DBA of block containing the row to be updated
Arg [d] Row Slot number
Arg [e] Relative DBA of block being updated (should be same as [c])
Arg [f] Code 3 update~~
select object_name,owner,object_type from dba_objects where object_id=458
analyze table mon_mods$ validate structure cascade;
ALTER INDEX I_MON_MODS$_OBJ REBUILD;
create table mod_mods_bak as select * from mon_mods$;
truncate table mon_mods$;
INSERT INTO MON_MODS$ SELECT * fROM MON_MODS_BAK;
select count(*) from mon_mods$;
2 ORA-00600: internal error code, arguments: [ktspfupdst-1], [], [], [], [], [], [], [], [], [], [], []
OBJD=267 smon_scn_time报错
dbkedDefDump(): Starting incident default dumps (flags=0x2, level=3, mask=0x0)
----- Current SQL Statement for this session (sql_id=9wncfacx0nj9h) -----
insert into smon_scn_time (thread, time_mp, time_dp, scn, scn_wrp, scn_bas, num_mappings, tim_scn_map) values (0, :1, :2, :3, :4, :5, :6, :7)
Corrupt Block Found
TSN = 1, TSNAME = SYSAUX
RFN = 2, BLK = 133475, RDBA = 8522083
OBJN = 269, OBJD = 267, OBJECT = , SUBOBJECT =
SEGMENT OWNER = , SEGMENT TYPE =
select object_name,owner,object_type from dba_objects where object_id=267;
analyze table SMON_SCN_TIME validate structure cascade;
果断报错
select dbms_metadata.get_ddl('CLUSTER','SMON_SCN_TO_TIME_AUX','SYS') from dual;
CREATE CLUSTER "SYS"."SMON_SCN_TO_TIME_AUX" (
"THREAD" NUMBER )
PCTFREE 10 PCTUSED 40 INITRANS 2 MAXTRANS 255
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "SYSAUX"
PARALLEL (DEGREE 1 INSTANCES 1)
select dbms_metadata.get_ddl('TABLE','SMON_SCN_TIME','SYS') from dual;create cluster smon_scn_to_time (
thread number /* thread, compatibility */
)
/
create index smon_scn_to_time_idx on cluster smon_scn_to_time
/
create table smon_scn_time (
thread number, /* thread, compatibility */
time_mp number, /* time this recent scn represents */
time_dp date, /* time as date, compatibility */
scn_wrp number, /* scn.wrp, compatibility */
scn_bas number, /* scn.bas, compatibility */
num_mappings number,
tim_scn_map raw(1200),
scn number default 0, /* scn */
orig_thread number default 0 /* for downgrade */
) cluster smon_scn_to_time (thread)
/
create unique index smon_scn_time_tim_idx on smon_scn_time(time_mp)
/
create unique index smon_scn_time_scn_idx on smon_scn_time(scn)
/SQL> analyze table SMON_SCN_TIME validate structure;
SQL> analyze table SMON_SCN_TIME validate structure cascade;
要么禁用smon_scn_time刷新:
alter system set events '12500 trace name context forever, level 10';
副作用就是会导致flashback会报错;
3 ORA-00600: internal error code, arguments: [kkpolpd7], [1403], [], [], [], [], [
], [], [], [], [], []
ORA-00600: internal error code, arguments: [kewrose_1], [600]由这个错误产生与mmon进程有关,非关键进程,可以杀掉重启,
4 ora-00600 [6002],[a],[b],[c]
MOS:ORA-600 [6002] "Index block check" (Doc ID 47449.1)
DESCRIPTION:
Oracle was trying to insert a key and key data into a b*tree index.
In order to do this, it had to first find the correct leaf block to do the insert.
Once the correct leaf block is retrieved, Oracle validates the block
by checking the data size and number of columns in the key.
If there is a mismatch then ORA-600 [6002] is reported.