RMAN命令詳解和常用彙總轉摘彙集,日後使用本文鏈接:https://blog.csdn.net/EVISWANG/article/details/50448370http://blog.itpub.net/25904686/viewspace-742701/https://blog.csdn.ne ...
RMAN命令詳解和常用彙總
轉摘彙集,日後使用
本文鏈接:https://blog.csdn.net/EVISWANG/article/details/50448370
http://blog.itpub.net/25904686/viewspace-742701/
https://blog.csdn.net/zq9017197/article/details/6869579
https://www.cnblogs.com/polestar/archive/2013/02/06/2902598.html
--HQ_顯示RMAN備份信息及日誌
http://blog.itpub.net/30126024/viewspace-2128114/
【輸出日誌】
[oracle@tiger script]$ cat rman_db.sh
exportORACLE_HOME=/u01/oracle/product/11.2.0.4
export ORACLE_SID=TIGER
rman target / cmdfile=/u01/rman/script/rman_db.rcv msglog=/u01/rman/script/rman_full_`date+%Y-%m-%d`.log
[oracle@tiger script]$
【Catalog】
1、註冊副本
catalog datafilecopy 'c:\user01.bak';
2、註冊備份片
catalog backuppiece 'c:\demo_10.dbf' ;
3、註冊特定目錄的所有備份文件
catalog start with 'c:\bak';
4、註銷備份記錄
change datafilecopy 'c:\user01.bak' uncatalog;
change controlfilecopy 'c:\demo.ctl' uncatalog;
change backuppiece 'c:\demo_10.bak' uncatalog;
5、註冊歸檔日誌
catalog archivelog '/u01/CCBPROD/oracle/oradata/archive/thread_2_seq_12307.2161.899944423';
cataloged archived log
archived log file name=/u01/CCBPROD/oracle/oradata/archive/thread_2_seq_12307.2161.899944423 RECID=9578 STAMP=900068071
【Crosscheck】
crosscheck backup 核對所有備份集;
crosscheck backup of database 核對所有數據文件的備份集;
crosscheck backup of tablespace users 核對特定表空間的備份集;
crosscheck backup of datafile 4 核對特定數據文件的備份集;
crosscheck backup of controlfile 核對控制文件的備份集;
crosscheck backup of spfile 核對SPFILE的備份集;
crosscheck backup of archivelog sequence 3 核對歸檔日誌的備份集;
crosscheck copy 核對所有映像副本;
crosscheck copy of database 核對所有數據文件的映像副本;
crosscheck copy of tablespace users 核對特定表空間的映像副本;
crosscheck copy of datafile 6 核對特定數據文件的映像副本;
crosscheck copy of archivelog sequence 4 核對歸檔日誌的映像副本;
crosscheck copy of controlfile 核對控制文件的映像副本;
crosscheck backup tag='SAT_BACKUP';
crosscheck backup completed after 'sysdate - 2'
crosscheck backup completed between 'sysdate - 5' and 'sysdate -2 '
crosscheck backup device type sBT;
crosscheck archivelog all;
crosscheck archivelog like '%ARC00012.001'
crosscheck archivelog from sequence 12;
crosscheck archivelog until sequence 522;
expired: 對象不存在於磁碟或磁帶。當一個備份集處於expired狀態,則該備份集中所有的備份片同樣處於expired狀態
available: 對象處於可用狀態。當一個備份集可用,則該備份集內的所有備份片同樣可用
unavailabe: 對象處於不可用狀態。當一個備份集不可用,則該備份集內的所有備份片同樣不可用
註:expired不等同於obsolette。兩者的差異請參考:文檔
【Delete】
1、刪除陳舊備份
delete obsolete; #提示
delete noprompt obsolete; #不提示
2、刪除EXPIRED備份集
delete noprompt expired backup;
3、刪除EXPIRED副本
delete noprompt expired copy ;
4、刪除特定備份集
delete noprompt backupset 19;
5、刪除特定備份片
delete noprompt backuppiece 'c:\test\demo1.bak';
6、刪除所有備份集
delete noprompt backup ; 或者
delete noprompt backupset;
7、刪除特定映像副本
delete noprompt datafilecopy 'c:\test\demo.bak'; 刪除數據文件
delete noprompt controlfilecopy 'c:\test\controlfile_bak.ctl'; 刪除控制文件
delete noprompt archivelog 'c:\test\arc.bak'; 刪除歸檔日誌
delete noprompt ?force archivelog all completed before 'sysdate - 7';
8、刪除所有映像副本
delete noprompt copy;
9、在備份後刪除輸入對象
backup archivelog all delete input ;
backup backupset 22 format='c:\test\%u.bak' delete input ;
10、delete expired archivelog all;就是同步控制文件的信息和實際物理文件的信息。
【Report】
RMAN> report schema 報告目標資料庫的物理結構;
RMAN> report need backup days=3; 報告最近3天沒有被備份的數據文件;
RMAN> report need backup days 3 tablespace users; 在USERS表空間上3天未備份的數據文件;
RMAN> report need backup incremental 3; 報告恢複數據文件需要的增量備份個數超過3次的數據文件;
RMAN> report need backup redundancy 2 database; 報告備份文件低於2份的所有數據文件;
RMAN> report need backup redundancy=2;
RMAN> report need backup recovery window of 6 days; 報告文件報表的恢復需要超過6天的歸檔日誌的數據文件;
RMAN> report unrecoverable; 報告資料庫所有不可恢復的數據文件;
RMAN> report obsolete redunndancy 2; 報告備份次數超過2次的陳舊備份;
RMAN> report obsolete; 報告多餘的備份;
【List】
列出數據文件備份集
RMAN> list backup 列出詳細備份;
RMAN> list expired backup; 列出過期備份;
RMAN> list backup of database; 列出所有數據文件的備份集;
RMAN> list backup of tablespace user01; 列出特定表空間的所有數據文件備份集;
RMAN> list backup of controlfile 列出控制文件備份集;
RMAN> list backup of archivelog all 列出歸檔日誌備份集詳細信息;
RMAN> list archivelog all; 列出歸檔日誌備份集簡要信息
RMAN> list backup of spfile 列出SPFILE備份集;
RMAN> list copy of datafile 5 列出數據文件映像副本;
RMAN> list copy of controlfile 列出控制文件映像副本;
RMAN> list copy of archivelog all 列出歸檔日誌映像副本;
RMAN> list incarnation of database 列出對應物/列出資料庫副本;
RMAN> list backup summary; 概述可用的備份;
RMAN> list backup of datafile { n | <dir>}
RMAN> list copy of archive from time = 'sysdate - 7';
RMAN> list backup of archivelog from sequence 1000 until sequence 1020;
RMAN> list backupset tag=TAG20101014T155753;
表示backup
表示FULL
表示archive log
表示incremental backup
說明備份狀態(A AVAILABLE X EXPIRED )
MAN> list backup by file 按備份類型列出備份;
按照數據文件備份,歸檔日誌備份,控制文件備份,伺服器參數文件備份 列出
【Show】
RMAN> show all;
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;
CONFIGURE BACKUP OPTIMIZATION OFF; # default
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP OFF; # default
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT 'C:...%d_DB_%u_%s_%p';
CONFIGURE SNAPSHOT CONTROLFILE NAME TO 'D:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\SNCFORCL.ORA'; # default
RMAN configuration parameters for database with db_unique_name PRODS are:
註釋:#default表示該配置仍然是初始的預設值。回到預設配置configure..clear。
1.CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
是用來決定那些備份不再需要了,它一共有三種可選項,分別是
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;
CONFIGURE RETENTION POLICY TO REDUNDANCY 5;
CONFIGURE RETENTION POLICY TO NONE;
第一種recover window是保持所有足夠的備份,可以將資料庫系統恢復到最近七天內的任意時刻。任何超過最近七天的資料庫備份將被標記為obsolete。
第二種redundancy 是為了保持可以恢復的最新的5份資料庫備份,任何超過最新5份的備份都將被標記為redundancy。它的預設值是1份。
第三種不需要保持策略,clear將恢復回預設的保持策略。
一般最安全的方法是採用第二種保持策略
其中前兩種是互斥關係
2.CONFIGURE BACKUP OPTIMIZATION OFF; # default
預設值為關閉,如果打開,rman將對備份的數據文件及歸檔等文件進行一種優化的演算法。
理論上,備份優化僅對於只讀表空間或offline表空間起作用。當然,對於已經備份過的歸檔日誌文件也會跳過。
3.CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
是指定所有I/O操作的設備類型是硬碟或者磁帶,預設值是硬碟DISK
磁帶的設置是CONFIGURE DEFAULT DEVICE TYPE TO SBT;
4.CONFIGURE CONTROLFILE AUTOBACKUP OFF; # default
強制資料庫在備份文件或者執行改變資料庫結構的命令之後將控制文件自動備份,預設值為關閉。這樣可以避免控制文件和catalog丟失後,控制文件仍然可以恢復。
當autobackup設置為on時,rman做任何備份操作,都會自動對控制文件進行備份。
5.CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
是配置控制文件的備份路徑和備份格式
比如:configure controlfile autobackup format for device type disk to 'e:\backupcontrol\%F'
6.CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default
配置資料庫設備類型的並行度。並行度決定通道數。
7.CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
是配置資料庫的每次備份的copy數量,oracle的每一次備份都可以有多份完全相同的拷貝。
是否啟動複合備份,向指定的i/o設備中指定的位置生成指定的份數。預設為1.
這個配置僅用於數據文件和歸檔文件,並且,只有在自動分配通道時才會生效!
8.CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
是設置資料庫的歸檔日誌的存放設備類型
9.CONFIGURE MAXSETSIZE TO UNLIMITED; # default
備份集大小 maxsetsize
configure maxsetsize to 1G|1000M|1000000K|unlimited;
configure maxsetsize clear;
配置備份集的大小。一般是配置maxpiecesize,對備份片進行限制。
10.CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
配置加密備份集。可以具體到某個表空間:
configure encryption for tablespace users on;
如果我們執行set encryption on indentified by think only,緊接其後所創建的備份就需要該密碼才能進行正常的恢復
11.CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
指定加密演算法,還有一個是 ‘AES256'
12.CONFIGURE COMPRESSION ALGORITHM 'BASIC' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE ; # default
13.CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
指定歸檔文件的刪除策略,預設是none,即:歸檔備份完之後就可以被刪除
但是,在DG環境,DBA要保證歸檔文件在standby端成功接收並且應用之前,primary端始終保存該文件
so,DG環境當設為:applied on standby
14.CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/u01/CCBPROD/oracle/product/11.2.0.4/dbs/snapcf_PROD.f'; # default
配置控制文件的快照文件的存放路徑和文件名,這個快照文件是在備份期間產生的,用於控制文件的讀一致性
另外,CONFIGURE EXCLUDE FOR TABLESPACE <tablespace> [CLEAR];此命令用於將指定的表空間不備份到備份集中, 此命令對只讀表空間是非常有用的。
15.CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT 'C:...%d_DB_%u_%s_%p';
是配置備份文件的備份路徑和備份格式
CONFIGURE CHANNEL DISK CLEAR;用於清除上面的通道配置
CONFIGURE EXCLUDE FOR TABLESPACE <tablespace> [CLEAR];此命令用於將指定的表空間不備份到備份集中, 此命令對只讀表空間是非常有用的。
1.將備份文件存儲到指定路徑,如e:\backupb
configure channel device type disk format 'e:\backupb\%d_db_%u';
後面的%d_db_%u是存儲格式
2.我們也可以單獨指定control file存儲在另一個路徑:如e:\backupcontrol
configure controlfile autobackup format for device type disk to 'e:\backupcontrol\%F';
後面的%F是存儲格式
進入RMAN:
$ rman target sys/oracle@orcl?? --遠程連接到rman
$ rman target sys/oracle@orcl @backup_db.ram?? --遠程連接到rman並執行指定腳本
$ rman target sys/oracle@orcl cmdfile=backup_db.ram?? --遠程連接到rman並執行指定腳本
$ rman target / log rman.log?? --記錄rman的輸出
RMAN> @backup_db.ram?? --rman裡面執行腳本
或者
/u01/oracle/product/10/u01/oracle/product/10.2.0/bin/rman target system/oracle@ora10g(/) msglog=/u01/rmanbak/bakl1.log cmdfile=/u01/rmanbak/bakl0
備份命令:
RMAN> backup database format '.../%d_%U';?? --備份資料庫並指定備份路徑
RMAN> backup database;?? --備份資料庫
RMAN> backup database include current controlfile plus archivelog delete all input;? --備份數據文件、控制文件、歸檔日誌
RMAN> backup incremental level 0 database;?? --差異增量備份資料庫
RMAN> backup incremental level 0 cumulative database;?? --累積增量備份資料庫
RMAN> backup as compressed backupset database;?? --壓縮備份資料庫
RMAN> backup database include current controlfile;?? --備份資料庫並備份控制文件
RMAN> backup tablespace users;?? --備份表空間
RMAN> backup datafile n;?? --備份數據文件
RMAN> backup datafiel '/opt/oracle/oradata/orcl/users01.dbf';?? --備份數據文件
RMAN> backup current controlfile;?? --備份控制文件
RMAN> backup current controlfile plus archivelog;?? --備份控制文件並歸檔然後備份歸檔日誌
RMAN> backup archivelog all;?? --備份歸檔日誌
RMAN> backup archivelog all delete all input;?? --備份歸檔日誌並刪除
RMAN> backup spfile;?? --備份參數文件
RMAN> backup backupset all;?? --備份全部備份集
RMAN> backup backupset n;?? --備份指定備份集
還原、恢覆命令:
RMAN> restore database;?? --還原資料庫
RMAN> restore tablespace users;?? --還原表空間
RMAN> restore datafile n;?? --還原數據文件
RMAN> restore archivelog sequence between 10 and 20;?? --還原歸檔日誌
RMAN> restore controlfile from autobackup;?? --還原控制文件
RMAN> restore spfile to '/tmp/spfile.ora' from autobackup;?? --還原參數文件
RMAN> recover database;?? --恢複數據庫
RMAN> recover tablespace users;?? --恢復表空間
RMAN> recover datafile n;?? --恢複數據文件
RMAN> restore validate database;????? --驗證資料庫可恢復性
RMAN> restore validate controlfile;?? --驗證控制文件可恢復性
RMAN> restore validate spfile;??????? --驗證參數文件可恢復性
查看備份集命令:
RMAN> list backup;?? --列出資料庫中所有的備份集
RMAN> list backup of database;?? --查看資料庫備份集
RMAN> list backup of tablespace users;?? --查看表空間備份集
RMAN> list backup of datafile n;?? --查看備份的數據文件
RMAN> list backup of controlfile;?? --查看控制文件備份集
RMAN> list backup of archivelog all;?? --查看歸檔日誌備份集
RMAN> list archivelog all;?? --查看當前所有歸檔日誌
RMAN>?list expired backup;?? --列出所有無效備份
管理備份集命令:
RMAN> crosscheck backup;?? --檢查所有備份集
RMAN> crosscheck archivelog all;?? --檢查所有歸檔文件
RMAN> delete [noprompt] obsolete;?? --刪除過期備份
RMAN> delete expired backup;?? --刪除無效備份
RMAN> delete expired archivelog all;? --刪除所有無效歸檔文件
RMAN> delete backupset 1;?? --刪除指定備份
RMAN> delete backup;?? --刪除所有備份
RMAN> change backupset 3 unavailable;?? --更改備份集3為無效
RMAN> change backupset 3 available;???? --更改備份集3為有效
RMAN> change backup of controlfile unavailable;?? --更改控制文件為無效
RMAN> change backup of controlfile available;???? --更改控制文件為有效
RMAN> report schema;?? --查看資料庫備份結構
RMAN> report need backup;?? --查看所以需要備份的文件
RMAN> report need backup tablespace system;?? --查看指定表空間是否需要備份
RMAN> report obsolete;?? --查看過期備份