rman備份發(fā)生sysaux表空間丟失該怎么辦-創(chuàng)新互聯(lián)

這篇文章將為大家詳細(xì)講解有關(guān)rman備份發(fā)生sysaux表空間丟失該怎么辦,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。

網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)建站!專注于網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、小程序制作、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了景洪免費(fèi)建站歡迎大家使用!

今天突發(fā)奇想,想玩一下rman這個(gè)命令,自己虛擬機(jī)好久都沒(méi)有備份了,所以就來(lái)個(gè)全備,果不其然給了我一個(gè)報(bào)錯(cuò)。

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

然后進(jìn)入數(shù)據(jù)庫(kù)開(kāi)始查詢?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)這兩個(gè)命令不能告訴我到底哪個(gè)表空間丟失了,后來(lái)上網(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.

一查詢丟失三個(gè)文件,然后就開(kāi)始想辦法解決

rman這個(gè)表空間是最好刪的,但是不要忘記刪的時(shí)候要

 including contents and datafiles

然后后來(lái)開(kāi)始刪除example這個(gè)表空間,這個(gè)顯示有index以及關(guān)系所以不能刪除,當(dāng)時(shí)找了下確實(shí)有對(duì)象,刪除所有對(duì)象再刪除這個(gè)表空間應(yīng)該也是可以的,最后到了sysaux這個(gè)表空間,sysaux這個(gè)表空間雖然是系統(tǒng)表空間,system表空間的輔助表空間,例如存放一些報(bào)告信息等,基本不會(huì)對(duì)性能有啥影像。

第一種方式

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

可以看出來(lái)明顯都是沒(méi)有刪掉的,這個(gè)時(shí)候開(kāi)始思考這個(gè)sysaux是不是寫(xiě)入控制文件,所以你不管怎么刪都是刪不掉,后來(lái)就開(kāi)始想通過(guò)初始化控制文件,看能不能成功。

先創(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;

通過(guò)看這個(gè)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 ;

進(jìn)入sqlplus跑這個(gè)腳本,然后開(kāi)始進(jìn)行數(shù)據(jù)庫(kù)的恢復(fù),突然發(fā)現(xiàn)又來(lái)個(gè)錯(cuò)誤

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ù)的時(shí)候,用來(lái)告訴oracle,不要以controlfile中的scn作為恢復(fù)的終點(diǎn);

2. recover database until cancel

如果丟失current/active redo的時(shí)候,手動(dòng)指定終點(diǎn)。

3. recover database using backup controlfile until cancel;

如果丟失當(dāng)前controlfile并且current/active redo都丟失,會(huì)先去自動(dòng)應(yīng)用歸檔日志,可以實(shí)現(xiàn)大的恢復(fù);

4. recover database until cancel using backup controlfile;

結(jié)果如下:

如果控制文件丟失,restore備份的控制文件后,則必須使用using backup controlfile選項(xiàng)。而until cancel則是不完全恢復(fù),即current/active redo丟失,或者從restore數(shù)據(jù)庫(kù)后某個(gè)歸檔文件缺失,則終止。

結(jié)論:

1、適用于restore舊的控制文件,且歸檔日志和cuurrent/active redo都沒(méi)有丟失情況。如果一切歸檔日志和在線日志完好,可以不丟失數(shù)據(jù)。類似于recover database

2、當(dāng)前控制文件未丟失(不需要restore舊的控制文件),此時(shí)有歸檔日志或者current/active log有丟失情況下,則終止。大可能恢復(fù)數(shù)據(jù)

3、4:我在oracle 10.2.0.4環(huán)境下測(cè)試效果是相同的,即適用于restore舊的控制文件,在恢復(fù)到控制文件備份那刻后,系統(tǒng)會(huì)提示應(yīng)用控制文件備份后的歸檔日志,如果沒(méi)有則停止。也是大可能的恢復(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,然后只能一個(gè)一個(gè)redo日志的位置來(lái)試,最后成功了

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.

最后開(kāi)啟數(shù)據(jù)庫(kù),需要制定是resetlogs還是noresetlogs模式下,但是發(fā)現(xiàn)還是不行,sysaux還是依舊存在,說(shuō)明sysaux丟失是不能挽救的,需要重新創(chuàng)庫(kù)。

關(guān)于rman備份發(fā)生sysaux表空間丟失該怎么辦就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

新聞名稱:rman備份發(fā)生sysaux表空間丟失該怎么辦-創(chuàng)新互聯(lián)
文章分享:http://www.muchs.cn/article24/depgce.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站App設(shè)計(jì)、軟件開(kāi)發(fā)、定制網(wǎng)站網(wǎng)頁(yè)設(shè)計(jì)公司、網(wǎng)站設(shè)計(jì)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運(yùn)營(yíng)