It's a strange question. Just learn to do Oracle when you do a test when the database startup prompts ORA-08103 error, the following cloud Habitat Small series to give you a moment.
Database failed to start correctly due to ORA-08103 error in open procedure
The code is as follows |
Copy Code |
Fri 18 22:02:51 2014 smon:enabling TX Recovery Fri 18 22:02:51 2014 Errors in file d:\oracle\product\10.2.0\admin\kemu3\udump\kemu3_ora_29788.trc: ORA-00604:?? Sql?? 1???? ORA-08103:??????
Fri 18 22:02:51 2014 Database Characterset is ZHS16GBK Fri 18 22:02:51 2014 Errors in file d:\oracle\product\10.2.0\admin\kemu3\bdump\kemu3_smon_29704.trc: Ora-00604:error occurred at recursive SQL level 1 Ora-08103:object no longer exists
Fri 18 22:02:51 2014 Errors in file d:\oracle\product\10.2.0\admin\kemu3\bdump\kemu3_smon_29704.trc: Ora-00604:error occurred at recursive SQL level 1 Ora-08103:object no longer exists
Fri 18 22:02:51 2014 Errors in file d:\oracle\product\10.2.0\admin\kemu3\bdump\kemu3_smon_29704.trc: Ora-00604:error occurred at recursive SQL level 1 Ora-08103:object no longer exists Fri 18 22:02:52 2014 Errors in file d:\oracle\product\10.2.0\admin\kemu3\bdump\kemu3_smon_29704.trc: Ora-00604:error occurred at recursive SQL level 1 Ora-08103:object no longer exists
Replication_dependency_tracking turned off (no async multimaster replication found) Starting background Process QMNC QMNC started with pid=18, OS id=29876 Fri 18 22:02:53 2014 Errors in file d:\oracle\product\10.2.0\admin\kemu3\bdump\kemu3_smon_29704.trc: Ora-00604:error occurred at recursive SQL level 1 Ora-08103:object no longer exists
Fri 18 22:02:54 2014 ORA-604 signalled during:alter database open ... |
Do 10046 to the database startup process
The code is as follows |
Copy Code |
Parsing in CURSOR #22 len=210 dep=2 uid=0 oct=3 lid=0 tim=20960424464 hv=864012087 ad= ' 3063f0b4 ' Select/*+ Rule */bucket_cnt, row_cnt, cache_cnt, null_cnt, timestamp#, sample_size, Minimum, Maximum, distcnt, lowval, hival, density, col#, Spare1, Spare2, Avgcln from hist_head$ where Obj#=:1 and Intcol#=:2 End of STMT EXEC #22: c=0,e=80,p=0,cr=0,cu=0,mis=0,r=0,dep=2,og=3,tim=20960424461 Wait #22: nam= ' db file sequential read ' ela= 5452 file#=1 block#=60213 Blocks=1 obj#=4586 FETCH #22: c=0,e=5967,p=1,cr=1,cu=0,mis=0,r=0,dep=2,og=3,tim=20960430462 Kewuxs-encountered Error: (ORA-00604: Recursive SQL Level 2 error occurred ORA-08103: Object no longer exists ) KEWRWDBI_1:ERROR=13515 encountered during run_once Binds #21: Kkscoacd Bind#0 oacdty=02 mxl=22 mxlc=00 mal=00 scl=00 pre=00 oacflg=08 fl2=0001 frm=00 csi=00 siz=24 off=0 kxsbbbfp=0a217744 bln=22 avl=01 flg=05 Value=0 Bind#1 oacdty=01 mxl=32 mxlc=00 mal=00 scl=00 pre=00 Oacflg=18 fl2=0001 frm=01 csi=852 siz=32 off=0 kxsbbbfp=0a217718 bln=32 avl=20 flg=05 Value= "Wri$_adv_definitions" Bind#2 oacdty=02 mxl=22 mxlc=00 mal=00 scl=00 pre=00 oacflg=08 fl2=0001 frm=00 csi=00 siz=24 off=0 Kxsbbbfp=0a2176f4 bln=24 avl=02 flg=05 Value=1 |
It is obvious here that the database startup process, because the object_id in the hist_head$ file 1 block 60213 does not match the data_object_id, resulting in a ORA-08103 error that caused the database to not start properly. The failed object here is hist_head$, not the Oracle core object, so it is directly labeled as a bad block
, then start the database, back up the hist_head$ table data, then truncate hist_head$, then insert hist_head$, complete.
In the database open process, if you encounter a ora-8103 error, which causes the database to not be open, you can do 10046 to locate the fault block and object, and then determine whether the object database starts the necessary objects, even the bootstarp$ objects, Then take a different approach.
Contact: Mobile Phone (13429648788) QQ (107644445)
Link:http://www.xifenfei.com/5427.html
Title: Database Startup ORA-08103 Failure recovery
Author: Xi-FEI