Oracle 備份恢復篇之RMAN catalog

Davis_itpub發表於2018-06-27
<div style="font-family:微軟雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> <span style="widows:auto;">RMAN CATALOG</span> </div> <div style="font-family:微軟雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> 一、RMAN Repository </div> <div style="font-family:微軟雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> RMAN 資料檔案庫用於收集目標資料庫中RMAN 用於備份、恢復和保管的後設資料。 </div> <div style="font-family:微軟雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> RMAN 提供了兩種方式來存放這些後設資料,NOCATALOG 方式,與CATALOG 方式。 </div> <div style="font-family:微軟雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> 注:目標資料庫為要備份的資料庫。 </div> <div style="font-family:微軟雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> <br style="background-color:inherit;" /> </div> <div style="font-family:微軟雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> 二、Nocatalog </div> <div style="font-family:微軟雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> Nocatalog 方式就是用目標資料庫的controlfile 作為catalog,每一次備份都要往控制文 </div> <div style="font-family:微軟雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> 件裡面寫好多備份資訊,控制檔案裡面會有越來越多的備份資訊。因此,當使用rman </div> <div style="font-family:微軟雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> nocatalog 方式備份時,備份controlfile 是非常重要的。 </div> <div style="font-family:微軟雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> 我們知道控制檔案分為可變部分和不可變部分,而RMAN 的後設資料儲存在可變部分。 </div> <div style="font-family:微軟雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> 該部分由引數control_file__record_keep_time 控制儲存時間(預設為7天,到規定時間自動 </div> <div style="font-family:微軟雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> 清除以前的備份資訊),若該引數設定為0,則控制檔案的可變區域大小不會擴充套件,只要沒 </div> <div style="font-family:微軟雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> 有足夠空間就會覆蓋舊值。因此,建議將該值加大,強烈建議不要設定為0。 </div> <div style="font-family:微軟雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> SQL&gt; show parameter control </div> <div style="font-family:微軟雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> NAME TYPE VALUE </div> <div style="font-family:微軟雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> ------------------------------------ ----------- - ----------------------------- </div> <div style="font-family:微軟雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> control_file_record_keep_time integer 7 </div> <div style="font-family:微軟雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> SQL&gt; alter system set control_file_record_keep_time=14 scope=both; </div> <div style="font-family:微軟雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> 在不使用catalog 的情況下,為了更容易地儲存和恢復資料庫,Oracle 建議: </div> <div style="font-family:微軟雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> 1.啟動控制檔案自動備份的功能; </div> <div style="font-family:微軟雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> 2.記錄您的DBID </div> <div style="font-family:微軟雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> 3.將控制檔案冗餘到不同的磁碟上 </div> <div style="font-family:微軟雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> 4.保留所有的RMAN 備份日誌 </div> <div style="font-family:微軟雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> 這樣,如果丟失了控制檔案,即使沒有使用恢復目錄也可以自動恢復控制檔案。 </div> <div style="font-family:微軟雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> <br style="background-color:inherit;" /> </div> <div style="font-family:微軟雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> 三、Catalog </div> <div style="font-family:微軟雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> 當沒有恢復目錄時,RMAN 相關的備份資訊,比如歸檔檔案路徑、備份集路徑等均存 </div> <div style="font-family:微軟雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> 儲在目標資料庫的控制檔案中,不過考慮到控制檔案並不能無限增長,而且控制檔案也不僅 </div> <div style="font-family:微軟雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> 僅是用來儲存與備份相關的資訊,因此RMAN 也有一個專門的備份資訊儲存地,這就是恢 </div> <div style="font-family:微軟雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> 複目錄了。Catalog 相當於把RMAN 備份的後設資料單獨存放到另一個資料庫的表空間。 </div> <div style="font-family:微軟雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> 當待備份的資料庫註冊到恢復目錄之後,RMAN 相關的資訊除了儲存在控制檔案中外 </div> <div style="font-family:微軟雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> (控制檔案實際上只儲存一部分),更加詳細的資訊就都被儲存在恢復目錄中。 </div> <div style="font-family:微軟雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> 強烈建議不要將恢復目標資料庫放到目標資料庫中。 </div> <div style="font-family:微軟雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> 建議將恢復目錄存放在一個專有的資料庫中。如果恢復目錄和其他資料儲存在一個資料 </div> <div style="font-family:微軟雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> 庫中,那麼如果這個資料庫損壞,你的恢復目錄很有可能也會丟失。 </div> <div style="font-family:微軟雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> 1. CATALOG 的優點: </div> <blockquote style="font-family:微軟雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;margin:0px 0px 0px 40px;border:none;padding:0px;background-color:#FFFFFF;"> <div style="background-color:inherit;"> 1.能保留更多的歷史備份資訊 </div> <div style="background-color:inherit;"> 2.一個恢復目錄能管理與備份多個目標資料庫 </div> <div style="background-color:inherit;"> 3.如果沒有恢復目錄,而且發生了結構上的改變,恢復需要小心操作 </div> </blockquote> <div style="font-family:微軟雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> 同樣,如果選擇使用恢復目錄方式,也同樣要對恢復目錄做備份。 </div> <div style="font-family:微軟雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> 恢復目錄一般不需要用RMAN 做備份,只要EXP 即可。一旦恢復目錄資料庫發生故障, </div> <div style="font-family:微軟雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> 透過IMP 恢復即可。 </div> <div style="font-family:微軟雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> <br style="background-color:inherit;" /> </div> <div style="font-family:微軟雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> 2. 在恢復目錄中註冊資料庫: </div> <div style="font-family:微軟雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> 在一個恢復目錄中登記稱為註冊。一個恢復目錄可以註冊多個目標資料庫。RMAN 以 </div> <div style="font-family:微軟雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> DBID 辨別資料庫,每個在catalog 註冊的資料庫都擁有一個唯一的DBID。 </div> <div style="font-family:微軟雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> 3. 建立CATALOG 的步驟 </div> <div style="font-family:微軟雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> 建立恢復目錄非常簡單,RMAN 提供了CREATE CATALOG 命令,但是在建立恢復目 </div> <div style="font-family:微軟雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> 錄之前,首先需要為該恢復目錄建立一個獨立表空間和對應的SCHEMA ,詳細操作步驟 </div> <div style="font-family:微軟雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> 如下: </div> <div style="font-family:微軟雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> 1) 環境說明: </div> <div style="font-family:微軟雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> 目標資料庫:prod </div> <div style="font-family:微軟雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> 恢復目錄資料庫:emrep:管理員RC_ADMIN、表空間RC_DATA </div> <div style="font-family:微軟雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> <br style="background-color:inherit;" /> </div> <div style="font-family:微軟雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> 2) 建立一個獨立的表空間: </div> <div style="font-family:微軟雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> [oracle@oracle ~] sqlplus sys/oracle@emrep as sysdba </div> <div style="font-family:微軟雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> SQL&gt;create tablespace RC_DATA &nbsp;<span style="background-color:inherit;line-height:1.5;">Datafile ‘/u01/app/oracle/oradata/emrep/rc_data01.dbf’ size 100M&nbsp;</span><span style="background-color:inherit;line-height:1.5;">Autoextend on next 10M&nbsp;</span><span style="background-color:inherit;line-height:1.5;">Extent management local&nbsp;</span><span style="background-color:inherit;line-height:1.5;">Segment space management auto;&nbsp;</span> </div> <div style="font-family:微軟雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> <b style="background-color:inherit;">注意千萬不要將恢復目錄建立在要備份的目錄資料庫。</b> </div> <div style="font-family:微軟雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> 由於恢復目錄通常不會太大,這裡資料檔案僅分配了100MB 的空間。 </div> <div style="font-family:微軟雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> <br style="background-color:inherit;" /> </div> <div style="font-family:微軟雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> 3) 建立一個獨立的SCHEMA ,用來記錄備份資訊,並授予相關許可權: </div> <div style="font-family:微軟雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> [oracle@oracle ~] sqlplus sys/oracle@emrep as sysdba </div> <div style="font-family:微軟雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> SQL&gt;create user RC_ADMIN identified by RC_ADMIN default tablespace </div> <div style="font-family:微軟雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> RC_DATA; </div> <div style="font-family:微軟雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> SQL&gt;grant connect,resource,recovery_catalog_owner to RC_ADMIN; </div> <div style="font-family:微軟雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> <br style="background-color:inherit;" /> </div> <div style="font-family:微軟雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> 4) 在RMAN 中建立CATALOG<br /> <span style="widows:auto;">//透過RMAN 連線到新建立的恢復目錄中</span> </div> <div style="font-family:微軟雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> [oracle@oracle ~]$ Rman catalog RC_ADMIN/RC_ADMIN@emrep </div> <div style="font-family:微軟雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> RMAN&gt;create catalog tablespace RC_DATA; </div> <div style="font-family:微軟雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> <br style="background-color:inherit;" /> </div> <div style="font-family:微軟雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> 5) 註冊 </div> <div style="font-family:微軟雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> [oracle@oracle ~]$ rman target sys/oracle@prod </div> <div style="font-family:微軟雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> catalog RC_ADMIN/RC_ADMIN@emrep </div> <div style="font-family:微軟雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> RMAN&gt;register database; </div> <div style="font-family:微軟雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> RMAN&gt; resync catalog; </div> <div style="font-family:微軟雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> 這之後進行的操作,比如建立備份等操作資訊都會存入恢復目錄中。 </div> <div style="font-family:微軟雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> 對於註冊到恢復目錄,是否就必須或者只能以CATALOG 模式進行備份或恢復操作了 </div> <div style="font-family:微軟雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> 呢?當然不是,恢復目錄只是RMAN 中的一個可選項,而不是必選項,備份資訊是否記入 </div> <div style="font-family:微軟雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> CATALOG 取決於執行RMAN 操作時是否連線到了CATALOG,也就是說,即使目標資料 </div> <div style="font-family:微軟雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> 庫已經註冊到恢復目錄中,但連線時沒有以CATALOG 模式連線,則備份資訊仍然是隻存 </div> <div style="font-family:微軟雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> 入目標端資料庫的控制檔案,相當於NOCATALOG 模式。 </div> <div style="font-family:微軟雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> <br style="background-color:inherit;" /> </div> <div style="font-family:微軟雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> 4. 取消註冊 </div> <div style="font-family:微軟雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> [oracle@oracle ~]$ rman target sys/oracle@prod </div> <div style="font-family:微軟雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> catalog RC_ADMIN/RC_ADMIN@emrep </div> <div style="font-family:微軟雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> RMAN&gt;unregister database; </div> <div style="font-family:微軟雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> 或者 </div> <div style="font-family:微軟雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> [oracle@oracle ~]$sqlplus sys/oracle@prod as sysdba </div> <div style="font-family:微軟雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> SQL&gt;select dbid from v$database ; </div> <div style="font-family:微軟雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> [oracle@oracle ~]$conn RC_ADMIN/RC_ADMIN@emrep </div> <div style="font-family:微軟雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> rman&gt;RMAN&gt; list incarnation; </div> <div style="font-family:微軟雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> DB Key Inc Key DB Name DB ID STATUS Reset SCN Reset Time </div> <div style="font-family:微軟雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> ------- ------- -------- ---------------- --- ---------- ---------- </div> <div style="font-family:微軟雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> 1 8 ORCL 1359094044 PARENT 1 30-JUN-05 </div> <div style="font-family:微軟雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> 1 2 ORCL 1359094044 CURRENT 446075 12-NOV-13 </div> <div style="font-family:微軟雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> Rman&gt;exec dbms_rcvcat.unregisterdatabase(2,1359094044); </div> <div style="font-family:微軟雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> <br style="background-color:inherit;" /> </div> <div style="font-family:微軟雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> 5. 刪除catalog </div> <div style="font-family:微軟雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> RMAN&gt; drop catalog; </div> <div style="font-family:微軟雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> recovery catalog owner is ADMIN </div> <div style="font-family:微軟雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> enter DROP CATALOG command again to confirm catalog removal </div> <div style="font-family:微軟雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> RMAN&gt; drop catalog; </div> <div style="font-family:微軟雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> recovery catalog dropped </div> <br />

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31520497/viewspace-2156766/,如需轉載,請註明出處,否則將追究法律責任。

相關文章