這篇文章將為大家詳細講解有關(guān)rman備份發(fā)生sysaux表空間丟失該怎么辦,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。
目前創(chuàng)新互聯(lián)已為千余家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)站空間、綿陽服務(wù)器托管、企業(yè)網(wǎng)站設(shè)計、七里河網(wǎng)站維護等服務(wù),公司將堅持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
今天突發(fā)奇想,想玩一下rman這個命令,自己虛擬機好久都沒有備份了,所以就來個全備,果不其然給了我一個報錯。
RMAN> backup Starting backup at 20-OCT-16 allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=134 device type=DISK RMAN-06169: could not read file header for datafile 2 error reason 1 RMAN-00571: =========================================================== RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS =============== RMAN-00571: =========================================================== RMAN-03002: failure of backup command at 10/20/2016 05:19:19 RMAN-06056: could not access datafile 2
然后進入數(shù)據(jù)庫開始查詢?yōu)槭裁床荒軅浞?/p>
SQL> select file#,name from v$datafile; FILE# ---------- NAME -------------------------------------------------------------------------------- 1 /u01/oracle/product/oradata/wrc/system01.dbf 2 /u01/oracle/product/11.2.0/db_1/dbs/MISSING00002 3 /u01/oracle/product/oradata/wrc/undotbs01.dbf FILE# ---------- NAME -------------------------------------------------------------------------------- 4 /u01/oracle/product/oradata/wrc/users01.dbf 5 /u01/oracle/product/11.2.0/db_1/dbs/MISSING00005 6 /u01/oracle/product/11.2.0/db_1/dbs/MISSING00006 6 rows selected. SQL> select TS#,name from v$tablespace; TS# NAME ---------- ------------------------------ 0 SYSTEM 2 UNDOTBS1 4 USERS 1 SYSAUX 3 TEMP 6 EXAMPLE 7 RMAN
發(fā)現(xiàn)這兩個命令不能告訴我到底哪個表空間丟失了,后來上網(wǎng)查資料
SQL> select a.file#,a.name,b.name from v$datafile a,v$tablespace b where a.ts#=b.ts# 2 ; FILE# NAME NAME ---------- ------------------------------ ------------------------------ 1 /u01/oracle/product/oradata/wr SYSTEM c/system01.dbf 2 /u01/oracle/product/11.2.0/db_ SYSAUX 1/dbs/MISSING00002 3 /u01/oracle/product/oradata/wr UNDOTBS1 c/undotbs01.dbf 4 /u01/oracle/product/oradata/wr USERS c/users01.dbf FILE# NAME NAME ---------- ------------------------------ ------------------------------ 5 /u01/oracle/product/11.2.0/db_ EXAMPLE 1/dbs/MISSING00005 6 /u01/oracle/product/11.2.0/db_ RMAN 1/dbs/MISSING00006 6 rows selected.
一查詢丟失三個文件,然后就開始想辦法解決
rman這個表空間是最好刪的,但是不要忘記刪的時候要
including contents and datafiles
然后后來開始刪除example這個表空間,這個顯示有index以及關(guān)系所以不能刪除,當(dāng)時找了下確實有對象,刪除所有對象再刪除這個表空間應(yīng)該也是可以的,最后到了sysaux這個表空間,sysaux這個表空間雖然是系統(tǒng)表空間,system表空間的輔助表空間,例如存放一些報告信息等,基本不會對性能有啥影像。
第一種方式
SQL> drop tablespace sysaux including contents and datafiles; drop tablespace sysaux including contents and datafiles * ERROR at line 1: ORA-13501: Cannot drop SYSAUX tablespace
第二種方式
SQL> alter database datafile 2 offline drop 2 ; Database altered. SQL> select a.file#,a.name,b.name from v$datafile a,v$tablespace b where a.ts#=b.ts#; FILE# ---------- NAME -------------------------------------------------------------------------------- NAME ------------------------------ 1 /u01/oracle/product/oradata/orcl/system01.dbf SYSTEM 2 /u01/oracle/product/oradata/orcl/sysaux01.dbf SYSAUX FILE# ---------- NAME -------------------------------------------------------------------------------- NAME ------------------------------ 3 /u01/oracle/product/oradata/orcl/undotbs01.dbf UNDOTBS1 4 /u01/oracle/product/oradata/orcl/users01.dbf FILE# ---------- NAME -------------------------------------------------------------------------------- NAME ------------------------------ USERS 5 /u01/oracle/product/oradata/orcl/example01.dbf EXAMPLE
可以看出來明顯都是沒有刪掉的,這個時候開始思考這個sysaux是不是寫入控制文件,所以你不管怎么刪都是刪不掉,后來就開始想通過初始化控制文件,看能不能成功。
先創(chuàng)建腳本
SELECT d.VALUE || '/' || LOWER (RTRIM (i.INSTANCE, CHR (0))) || '_ora_' || p.spid || '.trc' trace_file_name FROM (SELECT p.spid FROM v$mystat m, v$session s, v$process p WHERE m.statistic# = 1 AND s.SID = m.SID AND p.addr = s.paddr) p, (SELECT t.INSTANCE FROM v$thread t, v$parameter v WHERE v.NAME = 'thread' AND (v.VALUE = 0 OR t.thread# = TO_NUMBER (v.VALUE))) i, (SELECT VALUE FROM v$parameter WHERE NAME = 'user_dump_dest') d /
在Linux下執(zhí)行該腳本
SQL> @gettrcname TRACE_FILE_NAME --------------------------------------------------------------------------------------------------- /opt/oracle/admin/eygle/udump/eygle_ora_8415.trc alter database backup controlfile to trace;
通過看這個eygle_ora_8415.trc文件,編輯重新創(chuàng)建控制文件
STARTUP NOMOUNT CREATE CONTROLFILE REUSE DATABASE "ORCL" RESETLOGS noARCHIVELOG MAXLOGFILES 5 MAXLOGMEMBERS 3 MAXDATAFILES 100 MAXINSTANCES 1 MAXLOGHISTORY 1168 LOGFILE GROUP 1 '/u01/oracle/product/oradata/wrc/redo01.log' SIZE 50M BLOCKSIZE 512, GROUP 2 '/u01/oracle/product/oradata/wrc/redo02.log' SIZE 50M BLOCKSIZE 512, GROUP 3 '/u01/oracle/product/oradata/wrc/redo03.log' SIZE 50M BLOCKSIZE 512, GROUP 4 '/u01/oracle/product/oradata/wrc/redo04.rdo' SIZE 50M BLOCKSIZE 512 -- STANDBY LOGFILE DATAFILE '/u01/oracle/product/oradata/wrc/system01.dbf', '/u01/oracle/product/11.2.0/db_1/dbs/sysaux02.dbf', '/u01/oracle/product/oradata/wrc/undotbs01.dbf', '/u01/oracle/product/oradata/wrc/users01.dbf', '/u01/oracle/product/11.2.0/db_1/dbs/sysaux03.dbf', '/u01/oracle/product/11.2.0/db_1/dbs/sysaux04.dbf' CHARACTER SET ZHS16GBK ;
進入sqlplus跑這個腳本,然后開始進行數(shù)據(jù)庫的恢復(fù),突然發(fā)現(xiàn)又來個錯誤
SQL> RECOVER DATABASE ORA-00283: recovery session canceled due to errors ORA-01610: recovery using the BACKUP CONTROLFILE option must be done SQL> alter database archivelog; Database altered.
1. recover database using backup controlfile
如果丟失當(dāng)前控制文件,用冷備份的控制文件恢復(fù)的時候,用來告訴oracle,不要以controlfile中的scn作為恢復(fù)的終點;
2. recover database until cancel
如果丟失current/active redo的時候,手動指定終點。
3. recover database using backup controlfile until cancel;
如果丟失當(dāng)前controlfile并且current/active redo都丟失,會先去自動應(yīng)用歸檔日志,可以實現(xiàn)最大的恢復(fù);
4. recover database until cancel using backup controlfile;
結(jié)果如下:
如果控制文件丟失,restore備份的控制文件后,則必須使用using backup controlfile選項。而until cancel則是不完全恢復(fù),即current/active redo丟失,或者從restore數(shù)據(jù)庫后某個歸檔文件缺失,則終止。
結(jié)論:
1、適用于restore舊的控制文件,且歸檔日志和cuurrent/active redo都沒有丟失情況。如果一切歸檔日志和在線日志完好,可以不丟失數(shù)據(jù)。類似于recover database
2、當(dāng)前控制文件未丟失(不需要restore舊的控制文件),此時有歸檔日志或者current/active log有丟失情況下,則終止。最大可能恢復(fù)數(shù)據(jù)
3、4:我在oracle 10.2.0.4環(huán)境下測試效果是相同的,即適用于restore舊的控制文件,在恢復(fù)到控制文件備份那刻后,系統(tǒng)會提示應(yīng)用控制文件備份后的歸檔日志,如果沒有則停止。也是最大可能的恢復(fù)數(shù)據(jù)。
SQL> alter database archivelog; Database altered. SQL> recover database using backup controlfile until cancel; ORA-00279: change 1995899 generated at 10/20/2016 07:46:55 needed for thread 1 ORA-00289: suggestion : /u01/oracle/product/flash_recovery_area/ORCL/archivelog/2016_10_20/o1_mf_1_47_%u _.arc ORA-00280: change 1995899 for thread 1 is in sequence #47 Specify log: {<RET>=suggested | filename | AUTO | CANCEL} /u01/oracle/product/oradata/wrc/redo04.rdo ORA-00310: archived log contains sequence 45; sequence 47 required ORA-00334: archived log: '/u01/oracle/product/oradata/wrc/redo04.rdo' SQL> /u01/oracle/product/oradata/wrc/redo04.rdo SP2-0734: unknown command beginning "/u01/oracl..." - rest of line ignored. SQL> recover database using backup controlfile until cancel; ORA-00279: change 1995899 generated at 10/20/2016 07:46:55 needed for thread 1 ORA-00289: suggestion : /u01/oracle/product/flash_recovery_area/ORCL/archivelog/2016_10_20/o1_mf_1_47_%u _.arc ORA-00280: change 1995899 for thread 1 is in sequence #47 Specify log: {<RET>=suggested | filename | AUTO | CANCEL} /u01/oracle/product/oradata/wrc/redo03.log Log applied. Media recovery complete.
發(fā)現(xiàn)control file里面找不到sequence#47,然后只能一個一個redo日志的位置來試,最后成功了
SQL> alter database open; alter database open * ERROR at line 1: ORA-01589: must use RESETLOGS or NORESETLOGS option for database open SQL> alter database open resetlogs; Database altered.
最后開啟數(shù)據(jù)庫,需要制定是resetlogs還是noresetlogs模式下,但是發(fā)現(xiàn)還是不行,sysaux還是依舊存在,說明sysaux丟失是不能挽救的,需要重新創(chuàng)庫。
關(guān)于rman備份發(fā)生sysaux表空間丟失該怎么辦就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
文章標(biāo)題:rman備份發(fā)生sysaux表空間丟失該怎么辦
網(wǎng)站地址:http://aaarwkj.com/article40/pchpho.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供關(guān)鍵詞優(yōu)化、營銷型網(wǎng)站建設(shè)、App開發(fā)、微信公眾號、響應(yīng)式網(wǎng)站、定制網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)