溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

基于rman的恢復(fù)操作有哪些呢

發(fā)布時(shí)間:2021-11-06 17:10:29 來(lái)源:億速云 閱讀:114 作者:柒染 欄目:建站服務(wù)器

今天就跟大家聊聊有關(guān)基于rman的恢復(fù)操作有哪些呢,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

針對(duì)RMAN進(jìn)行的備份,下面從幾個(gè)方面利用RMAN進(jìn)行一些恢復(fù)操作。

恢復(fù)

1.       對(duì)數(shù)據(jù)庫(kù)進(jìn)行完全介質(zhì)恢復(fù)

 1.1進(jìn)入rman命令行

rman  target /

1.2開(kāi)始備份

backup  database format=’ /oracle/u01/app/oracle/backup/%U’;

1.3一致性停止數(shù)據(jù)庫(kù)

shutdown  immediate;

1.4 刪除所有的數(shù)據(jù)文件

rm  –rf /oracle/u01/app/oracle/oradata/orcl/*.dbf

開(kāi)始恢復(fù):

1.5 利用rman啟動(dòng)數(shù)據(jù)庫(kù)到mount狀態(tài)

RMAN>  startup mount;

1.6 數(shù)據(jù)庫(kù)修復(fù)

RMAN>  restore database;

1.7 數(shù)據(jù)庫(kù)恢復(fù)

RMAN>  recover database;

           可以添加其他參數(shù):

           recover database delete archivelog;用于刪除在恢復(fù)過(guò)程中產(chǎn)生的歸檔日志文件

           recover database skip tablespace temp;指定再恢復(fù)過(guò)程中跳過(guò)臨時(shí)表空間,默認(rèn)是不恢       復(fù)臨時(shí)表空間的。

           recover database delete archivelog maxsize 100m;用于指定再恢復(fù)過(guò)程中限制自動(dòng)產(chǎn)生       的歸檔大小為100m,如果超過(guò)這個(gè)大小就會(huì)被刪除在循環(huán)繼續(xù)使用來(lái)恢復(fù)。

1.8 啟動(dòng)數(shù)據(jù)庫(kù)到open狀態(tài)                  

RMAN>alter  database open;

 

2.       表空間的恢復(fù)

在有備份的基礎(chǔ)上我們先模擬破壞表空間,然后將其恢復(fù)

2.1 破壞users表空間

echo  “” > /oracle/u01/app/oracle/oradata/orcl/users01.dbf

         2.2 切換日志

                   這時(shí)我們查詢(xún)表空間users中的表不一定報(bào)錯(cuò),因?yàn)樵趦?nèi)存中還有記錄,查詢(xún)到的

                   是內(nèi)存中的信息,需要我們手動(dòng)切換日志                           

SQL>alter  system switch logfile;

           多執(zhí)行幾次,保證切換完成

2.3 檢查表空間是否可用

SQL>select  * from test


ERROR at line 1:

ORA-00376:file 4 cannot be read at this  time         

ORA-01110: data file 4:  '/oracle/u01/app/oracle/oradata/orcl/users01.dbf'

                   這時(shí)發(fā)現(xiàn)users表空間已經(jīng)不能使用

 

         開(kāi)始恢復(fù)

         2.4 將表空間offline

RMAN>  SQL ‘a(chǎn)lter tablespace users offline’;

         2.5修復(fù)

RMAN>restore  tablespace users;

         2.6 恢復(fù)

RMAN>recover  tablespace users;

         2.7 將表空間online

RMAN>SQL  ‘a(chǎn)lter tablespace users online’;

         2.8 檢驗(yàn)是否恢復(fù)

SQL>select  * from test;

                   可以查詢(xún)到數(shù)據(jù),表明表空間已經(jīng)恢復(fù)

 

3.       數(shù)據(jù)文件的恢復(fù)

         3.1 將數(shù)據(jù)文件offline

RMAN>  SQL ‘a(chǎn)lter database datafile 4 offline’;

         3.2修復(fù)

RMAN>restore  datafile 4;

         3.3恢復(fù)

RMAN>recover  datafile 4;

         3.4將數(shù)據(jù)文件online

RMAN>SQL  ‘a(chǎn)lter database datafile 4 online’;

RMAN> SQL ‘a(chǎn)lter database datafile 4  offline’;

RMAN>run {

RMAN>SQL ‘a(chǎn)lter database datafile 4 online’;

4.1進(jìn)入rman命令行

SQL>rman  target /

   4.2備份歸檔

RMAN>backup  archivelog all delete input;

4.3 檢查備份

RMAN>List  backup of archivelog all;

 

BS Key   Size       Device Type Elapsed  Time Completion Time

------- ---------- ----------- ------------  ---------------

91       59.54M     DISK        00:00:02     28-FEB-13     

        BP Key:  95   Status: AVAILABLE  Compressed: NO  Tag: TAG20130228T162106

        Piece  Name: /oracle/u01/app/oracle/flash_recovery_area/ORCL/backupset/2013_02_28/o1_mf_annnn_TAG20130228T162106_8ly4vmt4_.bkp

 

  List of  Archived Logs in backup set 91

  Thrd Seq     Low SCN    Low Time   Next SCN   Next Time

  ---- -------  ---------- --------- ---------- ---------

  1    311      5582914    27-FEB-13  5583269    27-FEB-13

  1    312      5583269    27-FEB-13  5601615    28-FEB-13

  1    313      5601615    28-FEB-13  5623126    28-FEB-13

  1    314      5623126    28-FEB-13  5625133    28-FEB-13

  1    315      5625133    28-FEB-13  5625135    28-FEB-13

  1    316      5625135    28-FEB-13  5625138    28-FEB-13

  1    317      5625138    28-FEB-13  5628235    28-FEB-13

   1    318     5628235    28-FEB-13 5628281    28-FEB-13

            通過(guò)查看,備份了從311-318archivelog,并保存在備份集中,刪除了                         /oracle/u01/app/oracle/路徑下的歸檔日志文件.

   4.4 恢復(fù)歸檔

RMAN>restore  archivelog sequence between 311 and 315;

            查看log_archive_dest_1路徑,發(fā)現(xiàn)已經(jīng)恢復(fù)出311-315的歸檔文件

   4.4指定歸檔恢復(fù)路徑

            通過(guò)在run腳本中來(lái)制定恢復(fù)的路徑

RMAN>run  {

           set  archivelog destination to ‘’;

           restore  archivelog sequence between 311 and 315;

           set  archivelog destination to ‘’;

           restore  archivelog sequence between 316 and 317;

          }

            可以指定多個(gè)路徑。

 

5.       控制文件的恢復(fù)

5.1 開(kāi)啟控制文件自動(dòng)備份

RMAN>CONFIGURE  CONTROLFILE AUTOBACKUP ON;

5.2備份控制文件

RMAN>backup  current controlfile;

5.3 設(shè)置DBID

        沒(méi)有了控制文件,數(shù)據(jù)庫(kù)只能啟動(dòng)到nomount狀態(tài),啟動(dòng)之前需要設(shè)置DBID

RMAN>set  dbid=1324770912

        怎樣獲取DBID呢:

a)      創(chuàng)建自動(dòng)備份時(shí)未改名的備份文件包含;

b)      rman連接時(shí)

c)      Rman備份日志

d)      數(shù)據(jù)庫(kù)v$database視圖

5.4 恢復(fù)控制文件

RMAN>  restore controlfile from autobackup;

        如果沒(méi)有指定路徑會(huì)恢復(fù)到參數(shù)文件control_files的路徑下

        指定路徑:

RMAN>  restore controlfile to ‘/home/oracle/control01.ctl’ from autobackup;

 

5.5 找不到恢復(fù)路徑的解決辦法

        在自動(dòng)備份控制文件前改過(guò)備份路徑,比如改到/oracle/u01/app/oracle/backup 

RMAN>CONFIGURE  CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK

       TO '/oracle/u01/app/oracle/backup/%F';

        備份表空間

RMAN>  backup tablespace users;

        因?yàn)殚_(kāi)啟了自動(dòng)備份控制文件,備份表空間也會(huì)備份控制文件,查詢(xún)

RMAN>list  backup of controlfile;

        這時(shí)提示有控制文件的備份。

        這時(shí)記錄dbid=1324770912

       

SQL>shutdown  immediate;

SQL>startup  nomount

SQL>rman  target /

RMAN>set  dbid=1324770912

RMAN>restore  controlfile from autobackup;

 

提示報(bào)錯(cuò):

Starting restore at 28-FEB-13

using target database control file instead of  recovery catalog

allocated channel: ORA_DISK_1

channel ORA_DISK_1: sid=540 devtype=DISK

 

recovery area destination:  /oracle/u01/app/oracle/flash_recovery_area

database name (or database unique name) used for  search: ORCL

channel ORA_DISK_1: no autobackups found in the  recovery area

channel ORA_DISK_1: looking for autobackup on day:  20130228

channel ORA_DISK_1: looking for autobackup on day:  20130227

channel ORA_DISK_1: looking for autobackup on day:  20130226

channel ORA_DISK_1: looking for autobackup on day:  20130225

channel ORA_DISK_1: looking for autobackup on day:  20130224

channel ORA_DISK_1: looking for autobackup on day:  20130223

channel ORA_DISK_1: looking for autobackup on day:  20130222

channel ORA_DISK_1: no autobackup in 7 days found

RMAN-00571:  ===========================================================

RMAN-00569: =============== ERROR MESSAGE STACK  FOLLOWS ===============

RMAN-00571:  ===========================================================

RMAN-03002: failure of restore command at 02/28/2013  17:12:17

RMAN-06172: no autobackup found or  specified handle is not a valid copy or piece

                 因?yàn)椋涸谀J(rèn)路徑下找不到自動(dòng)備份的控制文件進(jìn)一步產(chǎn)rman參數(shù) 

RMAN>show  all;

                 發(fā)現(xiàn)自動(dòng)備份控制文件的路徑并不是/oracle/u01/app/oracle/backup,而是默認(rèn)路徑

                 針對(duì)windows下默認(rèn)路徑為:$ORACLE_HOME/database

                 linux系統(tǒng)下默認(rèn)路徑為:$ORACLE_HOME/dbs             

                 那么為什么在我們之前設(shè)置了rman參數(shù),這里又會(huì)改變呢,因?yàn)槲覀兝玫?             configure設(shè)置的參數(shù),這個(gè)改變是保存在控制文件中的,所以會(huì)找不到路徑。

                針對(duì)這種情況有兩種方法:

a)      將備份的文件拷貝到所需要默認(rèn)的路徑下:$ORACLE_HOME/dbs

b)      重新設(shè)置自動(dòng)備份控制文件路徑

set  CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO  '/oracle/u01/app/oracle/backup/%F';

                                    這里為什么采用set來(lái)設(shè)置呢,因?yàn)楝F(xiàn)在數(shù)據(jù)庫(kù)是nomount狀態(tài),不能使用                  configure來(lái)設(shè)置。

5.6 如果數(shù)據(jù)庫(kù)是非歸檔數(shù)據(jù)庫(kù)

         修改自動(dòng)備份控制文件路徑時(shí)也不要使用configure來(lái)執(zhí)行,因?yàn)榇嗣钍怯谰蒙?,默認(rèn)是保存到控制文件的,這樣導(dǎo)致在恢復(fù)時(shí)找不到控制文件,使用set命令來(lái)設(shè)置修改自動(dòng)備份控制文件路徑。

 

從備份集中恢復(fù)

5.7 通過(guò)備份集中的備份恢復(fù)控制文件

        需要設(shè)置dbid

        啟動(dòng)數(shù)據(jù)庫(kù)到nomount狀態(tài)

        恢復(fù)控制文件        

restore  controlfile from

 '/oracle/u01/app/oracle/backup/c-1324770912-20130301-08';

        這樣即使更改過(guò)默認(rèn)參數(shù),只要指定備份集正確就可以恢復(fù)。

 

注意:

        再恢復(fù)控制文件后啟動(dòng)數(shù)據(jù)庫(kù)步驟:

a)  啟動(dòng)數(shù)據(jù)庫(kù)到mount

SQL>alter database mount;

b)  恢復(fù)數(shù)據(jù)庫(kù)

SQL>recover  database using backup controlfile;

 

auto

Additional information: 3

在執(zhí)行auto后,會(huì)自動(dòng)應(yīng)用歸檔,但是當(dāng)前日志文件還沒(méi)有歸檔,所以需要指定redo.log來(lái)應(yīng)用剩下的日志從而恢復(fù)數(shù)據(jù)庫(kù)

SQL>recover  database using backup controlfile;

 

/oracle/u01/app/oracle/oradata/orcl/redo01.log

Media recovery complete.

 

                            提示:Media recovery complete.恢復(fù)完成

c)  重做日志文件                   

SQL>alter database open resetlogs;


參數(shù)文件在備份的時(shí)候即使不手工備份也會(huì)自動(dòng)完成備份,一般不手動(dòng)備份。

恢復(fù)類(lèi)似于控制文件的恢復(fù).

6.1  利用自動(dòng)備份恢復(fù)

a)      設(shè)置dbid

b)      啟動(dòng)到nomount狀態(tài)

c)      恢復(fù)

RMAN>restore spfile from autobackup;

6.2  指定恢復(fù)文件

           也可以通過(guò)手工指定的備份的控制文件進(jìn)行恢復(fù)

RMAN>restore spfile from ‘/oracle/u01/app/oracle/backup/ c-1324770912-20130301-0a’;

6.3  恢復(fù)到制定目標(biāo)地址

RMAN>restore spfile to ‘/home/oracle/spfiletmp.ora’ from ‘/oracle/u01/app/oracle/backup/ c-1324770912-20130301-0a’;

 

看完上述內(nèi)容,你們對(duì)基于rman的恢復(fù)操作有哪些呢有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI