這篇文章給大家介紹如何理解catalog命令,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
創新互聯基于成都重慶香港及美國等地區分布式IDC機房數據中心構建的電信大帶寬,聯通大帶寬,移動大帶寬,多線BGP大帶寬租用,是為眾多客戶提供專業服務器托管報價,主機托管價格性價比高,為金融證券行業服務器托管,ai人工智能服務器托管提供bgp線路100M獨享,G口帶寬及機柜租用的專業成都idc公司。
使用catalog進入RMAN,命令如下
[oracle@host ~]$ rman targetsys/sys@testcatalogrman/rman@cat
先來list一下
RMAN> list backup;
new incarnation of database registered in recovery catalog
starting full resync of recovery catalog
full resync complete
RMAN會利用控制文件自動重新同步數據庫的恢復信息,保證catalog的最有效性
還可以在RMAN下手動重新同步信息
RMAN> RESYNC CATALOG; #完全同步
有時候,我們可能用了非RMAN工具來備份數據庫文件
比如,用系統拷貝執行了一個users表空間備份
SQL> ALTER TABLESPACE users BEGIN BACKUP;
(用系統拷貝命令將users表空間對應數據文件拷貝到別處)
SQL> ALTER TABLESPACE users END BACKUP;
這時,RMAN的catalog中并沒有記錄到相關信息
我們可以通過下面命令來為catalog添加備份信息
RMAN> CATALOG DATAFILECOPY '/home/oracle/dumptest/users01.dbf';
cataloged datafile copy
datafile copy filename=/home/oracle/dumptest/users01.dbf...
這時候再用RMAN的list copy命令就可以查看到剛剛添加的副本拷貝信息了
同理,catalog命令還可以添加其它備份信息
添加多個備份片信息
RMAN> CATALOG BACKUPPIECE '/09dtq55d_1_2', '/0bdtqdou_1_1';
還可以添加某個目錄下所有未被RMAN記錄的相關文件信息
RMAN> CATALOG START WITH '/home/oracle/oradata/test/';
發現有未記錄的文件,會提示
searching for all files that match the pattern /home/oracle/oradata/test/
List of Files Unknown to the Database
Do you really want to catalog the above files (enter YES or NO)?
如果其中有不符合的文件會報錯
RMAN-07517: Reason: The file header is corrupted
既然有添加信息,就有刪除信息的命令
如果已經存在于catalog的備份信息是無效的(文件不存在或損壞等)
我們可以用CHANGE UNCATALOG命令來清除相關信息
試驗一下,先將datafile 4(users01)做一個副本拷貝
RMAN> backup as copy datafile 4;
rman>backup as copy database format '/oradata/backup_%u.BAK';
RMAN> list datafilecopy all;
此時還可看見相關信息(對應key為647),執行下面命令
此時用系統命令刪除此副本文件
RMAN> change datafilecopy 647 uncatalog;
再次list,此時key為647的副本拷貝信息已經清除了
在這里,要簡單說下和備份信息相關的一些視圖
如果使用了catalog,這些信息會分別存放在catalog和target的相關視圖中
catalog中的視圖,是以RC_開頭,target的視圖,是V$開頭
因為涉及視圖相當多(得幾十個),每個視圖還有許多字段
用到什么說什么吧,就先說剛才的數據文件副本拷貝
catalog下是RC_DATAFILE_COPY,簡單說幾個字段
DB_KEY,區分target用的數據庫主鍵
DBINC_KEY,數據庫化身(incarnation)主鍵
DB_NAME,數據庫名
CDF_KEY,數據文件副本拷貝的主鍵
RECID和STAMP,從target的V$DATAFILE_COPY得來,在target控制文件中具有唯一性
NAME,文件名,含路徑
TAG,副本拷貝的tag名
FILE#,數據文件絕對文件號
BLOCKS,數據文件副本的塊數
BLOCK_SIZE,塊大小,可利用blocks和block_size計算數據文件副本大小
COMPLETION_TIME,副本拷貝創建完成時間
STATUS,副本狀態,包括
A可用(available),U不可用(unavailable),X過期(expired),D刪除(deleted)
target下是V$DATAFILE_COPY,信息來自控制文件
catalog下是RC_DATAFILE_COPY,簡單說幾個字段
不包含DB_KEY,DBINC_KEY,DB_NAME,CDF_KEY
其它主要字段都有
再簡單記錄一些命令
列出包含歸檔日志的備份信息
RMAN>list backup of archivelog all;
of參數可以用來限定查看的類型
比如,list backup of datafile 1;
是列舉包含數據文件1號(一般為system數據文件)的備份
還原按照SCN號還原歸檔日志
RMAN>restore archivelog from scn 898815 until scn 902871;
剛才提了個新名詞INCARNATION,中文個人暫翻譯為化身(可能不太合適)
數據庫resetlogs后,會成為新的開始,以前的備份將不再有用
在resetlogs后,也會生成新的incarnation,數據庫有相關視圖記錄incarnation歷史信息
還會把數據庫日志序號重新設置為1,并分配新的SCN
當前化身下通過執行resetlogs生成新化身,當前化身就稱為父化身(parent incarnation)
父化身和父化身的父化身,成為當前化身的祖化身(ancestor incarnations)
由一個祖化身產生兩個新化身,相互間成為同胞化身(sibling incarnations)
每個化身如果有各自的備份,相互之間是無法用來恢復的,稱為孤備份(Orphaned Backups)
化身在一些復雜的恢復情況下十分有用,今天先簡單了解,以后應用到再說
查看數據庫incarnation命令
RMAN>LIST INCARNATION;
結果如下
List of Database Incarnations
DB Key Inc Key DB Name DB ID STATUS Reset SCN Reset Time
------- ------- -------- ---------------- --- ---------- ----------
1 8 TEST 1969292173 PARENT 1 30-JUN-05
(中間略)
1 69 TEST 1969292173 CURRENT 903961 18-JAN-09
如果catalog中注冊了多個target,可以用database參數進行區分
RMAN> LIST INCARNATION OF DATABASE 'TEST';
copy 多一份備份
RMAN> backup as copy copy of database from tag='TAG20120310T095833' format '/oradata/ora10/backup_%f.bk';
關于如何理解catalog命令就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
新聞名稱:如何理解catalog命令
文章轉載:http://vcdvsql.cn/article34/phosse.html
成都網站建設公司_創新互聯,為您提供網站內鏈、定制網站、商城網站、搜索引擎優化、服務器托管、靜態網站
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯