下面是測試一把access$基表丟失的恢復方法sql
歡迎你們加入ORACLE超級羣:17115662 免費解決各類ORACLE問題,之後BLOG將遷移到http://www.htz.pw數據庫
1,數據庫版本bootstrap
www.htz.pw > select * from v$version;oracle
BANNERapp --------------------------------------------------------------------------------ide Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production測試 PL/SQL Release 11.2.0.3.0 - Productionui CORE 11.2.0.3.0 Productionthis TNS for Linux: Version 11.2.0.3.0 - Productionspa NLSRTL Version 11.2.0.3.0 - Production |
2,啓動報錯
www.htz.pw > startup force ORACLE instance started.
Total System Global Area 237998080 bytes Fixed Size 2227216 bytes Variable Size 197133296 bytes Database Buffers 33554432 bytes Redo Buffers 5083136 bytes Database mounted. ORA-01092: ORACLE instance terminated. Disconnection forced ORA-00704: bootstrap process failure ORA-00604: error occurred at recursive SQL level 1 ORA-00942: table or view does not exist Process ID: 5599 Session ID: 1 Serial number: 5
alert下面報這個錯誤 這裏報遞歸的SQL出現錯誤,緣由表不存在。下面alert中的日誌內容
Completed redo scan read 90 KB redo, 65 data blocks need recovery Started redo application at Thread 1: logseq 89, block 76381 Recovery of Online Redo Log: Thread 1 Group 2 Seq 89 Reading mem 0 Mem# 0: /oracle/app/oracle/oradata/orcl1123/redo02.log Completed redo application of 0.06MB Completed crash recovery at Thread 1: logseq 89, block 76561, scn 3062096 65 data blocks read, 65 data blocks written, 90 redo k-bytes read Thread 1 advanced to log sequence 90 (thread open) Thread 1 opened at log sequence 90 Current log# 3 seq# 90 mem# 0: /oracle/app/oracle/oradata/orcl1123/redo03.log Successful open of redo thread 1 MTTR advisory is disabled because FAST_START_MTTR_TARGET is not set SMON: enabling cache recovery Errors in file /oracle/app/oracle/diag/rdbms/orcl1123/orcl1123/trace/orcl1123_ora_5599.trc: ORA-00704: bootstrap process failure ORA-00604: error occurred at recursive SQL level 1 ORA-00942: table or view does not exist Errors in file /oracle/app/oracle/diag/rdbms/orcl1123/orcl1123/trace/orcl1123_ora_5599.trc: ORA-00704: bootstrap process failure ORA-00604: error occurred at recursive SQL level 1 ORA-00942: table or view does not exist Error 704 happened during db open, shutting down database USER (ospid: 5599): terminating the instance due to error 704 Instance terminated by USER, pid = 5599 ORA-1092 signalled during: ALTER DATABASE OPEN... opiodr aborting process unknown ospid (5599) as a result of ORA-1092 Tue Jun 10 20:41:24 2014 ORA-1092 : opitsk aborting process Tue Jun 10 20:41:39 2014 Starting ORACLE instance (normal)
下面經過10046的方法來實現具體在那條語句報錯 [oracle@www.htz.pw sql]$sqlplus / as sysdba
SQL*Plus: Release 11.2.0.3.0 Production on Tue Jun 10 20:41:37 2014
Copyright (c) 1982, 2011, Oracle. All rights reserved.
Connected to an idle instance.
www.htz.pw > startup mount; ORACLE instance started.
Total System Global Area 237998080 bytes Fixed Size 2227216 bytes Variable Size 197133296 bytes Database Buffers 33554432 bytes Redo Buffers 5083136 bytes Database mounted. www.htz.pw > oradebug setmypid Statement processed. www.htz.pw > oradebug event 10046 trace name context forever,level 12; Statement processed. www.htz.pw > oradebug tracefile_name; /oracle/app/oracle/diag/rdbms/orcl1123/orcl1123/trace/orcl1123_ora_5691.trc www.htz.pw > alter database open; alter database open * ERROR at line 1: ORA-01092: ORACLE instance terminated. Disconnection forced ORA-00704: bootstrap process failure ORA-00604: error occurred at recursive SQL level 1 ORA-00942: table or view does not exist Process ID: 5691 Session ID: 1 Serial number: 5
這裏能夠看到是表access$表不存在 PARSE ERROR #182956478584:len=56 dep=1 uid=0 oct=3 lid=0 tim=1402404227784268 err=942 select order#,columns,types from access$ where d_obj#=:1 ORA-00704: bootstrap process failure ORA-00604: error occurred at recursive SQL level 1 ORA-00942: table or view does not exist ORA-00704: bootstrap process failure ORA-00604: error occurred at recursive SQL level 1 ORA-00942: table or view does not exist
*** 2014-06-10 20:43:47.784 USER (ospid: 5691): terminating the instance due to error 704 EXEC #182936776088:c=152978,e=465517,p=58,cr=764,cu=0,mis=0,r=0,dep=0,og=1,plh=0,tim=1402404227824845 ERROR #182936776088:err=1092 tim=1402404227824898
|
3,重建access$基表
建議的辦法很簡單,重啓到數據庫到upgrade模式,重建基表就能夠了。
create table access$ /* access table */ ( d_obj# number not null, /* dependent object number */ order# number not null, /* dependency order number */ columns raw("M_BVCO"), /* list of cols for this entry */ types number not null) /* access types */ storage (initial 10k next 100k maxextents unlimited pctincrease 0) /
create index i_access1 on access$(d_obj#, order#) storage (initial 10k next 100k maxextents unlimited pctincrease 0)
/
www.htz.pw > create table access$ /* access table */ 2 ( d_obj# number not null, /* dependent object number */ 3 order# number not null, /* dependency order number */ 4 columns raw("M_BVCO"), /* list of cols for this entry */ 5 types number not null) /* access types */ 6 storage (initial 10k next 100k maxextents unlimited pctincrease 0) 7 / columns raw("M_BVCO"), /* list of cols for this entry */ * ERROR at line 4: ORA-00910: specified length too long for its datatype
在其它相同的版本看到這個是126,可是不知道爲何從腳本弄出來的是一個字符串
SQL> desc access$; Name Null? Type ----------------------------------------- -------- ---------------------------- D_OBJ# NOT NULL NUMBER ORDER# NOT NULL NUMBER COLUMNS RAW(126) TYPES NOT NULL NUMBER
create table access$ /* access table */ ( d_obj# number not null, /* dependent object number */ order# number not null, /* dependency order number */ columns raw(126), /* list of cols for this entry */ types number not null) /* access types */ storage (initial 10k next 100k maxextents unlimited pctincrease 0) /
www.htz.pw > create table access$ /* access table */ 2 ( d_obj# number not null, /* dependent object number */ 3 order# number not null, /* dependency order number */ 4 columns raw(126), /* list of cols for this entry */ 5 types number not null) /* access types */ 6 storage (initial 10k next 100k maxextents unlimited pctincrease 0) 7 /
Table created.
www.htz.pw > create index i_access1 on 2 access$(d_obj#, order#) 3 storage (initial 10k next 100k maxextents unlimited pctincrease 0) 4 www.htz.pw > /
Index created.
www.htz.pw > startup force; ORACLE instance started.
Total System Global Area 237998080 bytes Fixed Size 2227216 bytes Variable Size 197133296 bytes Database Buffers 33554432 bytes Redo Buffers 5083136 bytes Database mounted. Database opened. |