rman的配置和備份

----------------------------------------------------------------------------------------------------------------------------
鏈接rman總是以sysdba身份鏈接到目標數據庫。
創建口令文件,以便可以通過oracle net來執行遠程備份操作
orapwd file=orapworcl.ora  password=oracle   entries=20;
alter system set remote_login_passwordfile=exclusive  scope=spfile;
remote_login_passwordfile參數不是可動態改變的,所以不能在數據庫啓動和運行時更改這個參數。需要更改spfile(使用alter system 命令的scope=spfile參數更改),然後關閉並重啓數據庫
none 忽略口令文件,並且sysdba訪問只給予本地特許的登錄
shared 多個數據庫可以使用相同的口令文件
exclusive只有一個數據庫可以使用這個口令文件

control_file_record_keep_time參數
rman配置數據庫時,應當考慮在控制文件中存儲備份記錄的時間。備份記錄包括數據庫備份記錄,以及指定的數據文件,控制文件,參數文件,歸檔目錄的備份記錄。

----------------------------------------------------------------------------------------------------------------------------------------------
configure
1.配置信道默認設置
configure default device type to dsik;
backup database device tpye disk;
2.一旦配置了默認的設備類型,就可以配置特定備份類型的默認值
configure device type disk backup type to backupset;
configure device type disk backup type to compressed backupset;
configure device type disk backup type to copy;
configure device type disk parallelism 2;
3.在自動備份或恢復操作期間配置分配信道數
configure channel 1 device type disk format 'd:\backup\robt\backup_%U';
configure channel 2 device type disk format 'E:\backup\robt\backup_%U';
configure channel 1 device type disk maxpiecesize 100m maxopenfiles 8 rate 100MB;
限定信道1創建的每個備份片最大爲100MB,並限定rman在該信道上最多打開8個文件,最後,信道被限制爲只允許擁有100MB以內的吞吐量。
maxpiecesize 可以控制備份集片的大小
maxopenfiles 可以控制rman一次最多可以打開的文件數
rate 參數用於限制rman並控制備份時讀取字節的比率爲B/S KB/S MB/S GB/S
maxsetsize 參數可以限定備份的整體大小。
4.configure maxsetsize to 7500k;
backup database maxsetsize=50m;
configure maxsetsize clear(最大尺寸設置爲默認值,即沒有限制)
5.創建雙路備份,也就是說在不同的位置創建同一個備份的多個副本
configure datafile backup copies for device type disk to 2;
任何備份到磁盤上的備份都被複制,擁有2個副本。
6.排除一個表空間
configure exclude for tablespace old_date;
backup database noexclude keep forever tag='test backup'
排除上一次備份以來沒有發生變化的數據文件。
7.啓用備份優化時,它會使oracle跳過在備份設備上已有相同備份文件的備份
configure backup optimization on;
8.快照控制文件設置,定義一個新的位置
configure snapshot controlfile name to 'd:\oracle\backup\scontril_mydb';
9.使用格式串
configure channel 1 device type disk format '/u01/opt/oracle/backup_%U';
10.控制文件和數據庫參數文件的自動備份
configure controlfile autobackup on;
在run程序塊之外執行每個rman的backup 或copy命令時,都會自動備份控制文件和服務器參數文件;
如果使用了run程序塊而且該程序塊的最後一條命令不是backup或copy命令,則在run程序塊結尾處會備份控制文件和參數文件
另一種特殊的控制控制文件備份類型只在磁盤上發生:在數據庫結構變化對控制文件產生影響的自動備份控制文件,變化可能包括添加新的表空間,改變表空間或數據文件的狀態,添加新的聯機重做日誌,重命名文件,添加新的重做線程等。
configure controlfile autobackup for device type disk to 'd:\back\robt_%F';

11.配置默認保留策略
基於窗口
configure retention policy to recovery window of 3 days;
基於冗餘
configure retention policy to redundancy 3;
無保留策略
configure retention policy to none;
如果使用fra配置了保留策略,則當備份過時後,oracle rman將會按照需要自動刪除這些過時的備份。若未使用fra,配置的保留策略不會自動刪除。執行report obsolete 會列出過時的備份集。使用delete obsolete命令刪除他們。如果列出的某個對象不能被刪除,就需要運行crosscheck。
可以查詢V$recovery_File_dest視圖的space_reclaimable的列時確定過時的備份所佔用的fra空間數量。利用這個視圖,能確定是否已經爲fra分配充足的空間。
select * from V$recovery_File_dest;
當然在查看備份時,也可能需要更改它的保留策略。在這種情況下,可以使用帶有keep參數的rman的change命令修改需要保留的備份的保留策略。使用這個命令時,其保留策略被修改的備份會被認爲是一個長期備份,且不受相應的保留策略的影響。
可以使用change命令將一個備份修改爲歸檔備份,這個備份的結果將永久保留(這需要恢復目錄)
使用change命令創建一個歸檔備份的示例
change backupset 267 keep forever;
change backupset 267 keep until time 'sysdate+7' logs;
change backupset 33 nokeep;
修改備份集的保留策略
rman backup命令中的keep參數用於重寫默認保留策略並建立稱爲歸檔備份的備份。歸檔備份是一個自包含的備份(意味着它包含用於建立一致性備份的歸檔重做日誌)
backup database keep forever;指示歸檔備份被永遠保存,除非手動方式刪除它,利用keep forerver 需使用恢復目錄,因爲控制文件記錄可能會因爲時間過長而不存在。
keep until time:該選項定義用於備份的可選保留策略,如果超過365天,控制文件記錄可能消失。
backup database format '' keep until time ='system+180' tag keep_backup;


12.配置歸檔日誌刪除策略:
configure archive log deletion policy to backed up 3 times to device type disk;
所以備份超過3次的歸檔重做日誌將會被刪除。
歸檔重做日誌被標記爲obsolete時,oracle不會立即將其刪除,在fra中的空間被耗盡時,這時歸檔重做日誌纔會被刪除,也就是說歸檔重做日誌將盡可能被保留在fra中。


注:rman不能使用共享服務器鏈接到數據庫,必須使用server=dedicated語法來爲服務器配置oracle net的專用鏈接。



-------------------------------------------------------------------恢復目錄----------------------------------------


1.創建恢復目錄用戶
create user rcat_user identified by rcat_password default tablespace catalog;
grant connect,resource,recovery_catalog_owner to rcat_user;
2.創建恢復目錄
rman>catalog=rcat_user/rcat_paassword
create catalog tablespace catalog_tbs
3.使用恢復目錄註冊數據庫
rman target=sys/oracle catlog=rcat_user/rcat_password
rman>register database;
rman>report schema; 驗證是否成功註冊數據庫
4.刪除恢復目錄
drop catalog
5.在恢復目錄中添加rman備份
如果已經在沒有恢復目錄的情況下執行了rman備份,並且希望在後面將這些備份添加到恢復目錄,則可以使用catalog。我們可以將數據文件副本,備份集片,歸檔日誌備份,甚至整個歸檔備份目錄添加到目錄中。
rman>catalog datafilecopy 'd:\oracle\orcl11g\database\system01.dbf';
rman>catalog archivelog 'd:\oracle\orcl11g\database\arch_988.arc';
rman>catalog backuppiece 'd:\oracle\orcl11g\database\backup_820.bkp'
rman>catalog start with 'd:\oracle\orcl11g\database'
6.取消數據庫註冊
取消已存在的數據庫註冊:unregister database;
如果已經刪除數據庫,並希望從目錄中刪除該數據庫:unregister database orcl11g;
7.對恢復目錄升級
upgrade catalog
8.重新設置對應物
如果手動執行resetlogs命令(通過sql*plus),則需要重新設置恢復目錄中的數據庫對應物
reset database to incatnation 5;
9:手到執行恢復目錄再同步操作
resync catalog;
10.清除恢復目錄記錄
11.備份恢復目錄
12.恢復目錄視圖


可以通過查看生成的日誌文件來監控rman操作,或者使用v$視圖的v$rman_outpue監控rman操作
select output from v$rman_output order by stamp;


-------------------------------------------------------------------脫機備份(數據庫加載,但沒有打開)------------------------------------
shutdown
startup mount
backup database;
alter database open;

shutdown
startup mount
backup as compressed backupset database;(壓縮備份集備份)
alter database open;

不使用默認設置執行脫機備份
shutdown
startup mount
run{
allocate channel c1 device type disk format 'd:\backup\robt\robt_%U';
backup as compressed backupset database;
backup current controlfile;
}
這裏的backup database 命令被限定在run命令代碼塊中,由於使用allocate channel命令分配信道,所以必須使用run代碼塊執行備份操作。
如果備份數據文件1,backup命令也會備份控制文件和服務器參數文件,控制文件備份存儲位置取決於contrilfile autobackup參數設置。如果contrilfile autobackup被設置爲off ,控制文件和服務器參數文件會被包含在數據庫備份集中,如果爲on,會生成一個獨立的控制文件備份。可以在backup database命令中加入include current controlfile 子句,迫使rman控制文件放入數據庫備份集。


null數據塊壓縮
1.從未使用過的數據庫不會被備份
2.在給定的特定標準下使用過一次的數據塊不會被備份
(以前有數據,現在被drop的數據塊)

標記:該名稱能在還原操作期間被引用以指示使用特定備份。
backup database tag='test backup';

還原點:標記與特定備份相關聯時,還原點與特定時間點相關聯。
sql "create restore point charlie_one"

限定備份的影響
backup duration 00:30 database;
超過指定的持續事件,備份取消,duration參數不可以使用backup database plus archivelog;
當使用partia參數時,如果備份超出duration持續時間而終止,rman不會將還有認爲失敗的備份進行處理。因此,任何run代碼塊中的剩餘部分將繼續執行。如果接下來backup命令,例如歸檔重做日誌備份,這個參數非常方便。無論partia參數設置是什麼,即使整個備份過程沒有完成,oracle也會將已完成的備份集認爲是可用的。
backup duration 00:30 minimize time database;
rman將區分備份的數據文件的優先級,最近備份的數據文件有較低的優先級。
backup duration 00:30 minimize load database;
rman嘗試將備份的I/O操作分佈到持續時間內的各個時間點上,從而消除備份對系統的整體影響。


跳過:
backup database skip readonly;
backup database skip offline;
backup database skip inaccessible;(不可訪問的)
backup database skip readonly skip offline skip inaccessible;


強制備份只讀的數據文件:
備份優化會使rman默認不備份沒有發生變化的表空間(例如只讀表空間)
backup database force;



基於上次備份時間來備份數據文件
1.只備份添加的數據文件
backup database not backed up;
2.備份指定時間週期內沒有被備份的數據文件
backup database not backed up since time='system-2';
備份最近兩天內沒有備份過的那些數據文件
backup archivelog all not backed up 1 times;
backup as compressed backupset database plus archivelog not backed up 1 times delete input;


備份期間檢查邏輯損壞
backup validate check logical database;


生成備份副本
backup database copies=2

鋪獲隱藏的控制文件
backup database device type disk include current controlfile;


set命令



-------------------------------------------------------------聯機備份----------------------------------------------------
backup database plus arachivelog;
backup tablespace users;
backup tablespace users plus arachivelog;
backup tablespace users include current controlfile plus archivelog;
backup datafile 2;
backup datafile 'd:\oracle\oradata\users01.dbf' plus archivelog;
backup archivelog all;
backup archivelog from time 'system -1';
backup archivelog fron sequence 353 delete input;
一旦備份了歸檔重做日誌,就可能會使用rman刪除這些歸檔的重做日誌,delete input可以完成這一操作。該選項也可以刪除數據文件副本或備份集副本。
backup archivelog not backed up 3 times;
not backed up n times 參數確保至少備份3次重做日誌,並且不會再次備份已經備份過3次的歸檔重做日誌文件。
backup archivelog until time 'sysdate-2' delete all input;
until time 參數來確保歸檔的重做日誌在磁盤上保留一定的天數

控制文件和服務器參數文件備份
backup current controlfile;
sql "alter database backup controlfile to "d:\backup\contf_back.ctl""
backup controlfilecopy 'd:\backup\contf_back.ctl';

備份集備份
backup backupset all;
backup backupset completed before 'sysdate-2' delete input;

副本:
文件的映像副本時與數據文件,控制文件或歸檔日誌文件完全相同的副本,結果就好像使用操作系統使用程序複製的,但機制不同,rman讀寫oracle塊。而不是操作系統塊。這意味着許多功能不能使用。
但它意味着還原時非常快速的,因爲不需要從備份集中提取文件。可以更新目標數據庫控制文件開定位映像副本,而不是受損的文件;事實上,如果最近的映像副本可用,就不需要還原。oracle公司的建議
時將數據庫以及自備份以來的歸檔日誌的完整映像副本放到閃回恢復區;這將意味着完整還原可以時瞬時的,恢復也會很快。
可在不執行還原操作的情況下立即使用映像副本。備份到備份集的文件在使用前必須由rman從備份集中還原。
映像副本可由數據文件,控制文件,和歸檔日誌組成,它不能由spfile組成。
backup as copy database;將所有數據文件和控制文件複製到閃回恢復區。
backup as copy tablespace users;
backup as copy datafile 1;
backup as copy  current controlfile format '' reuser;
backup as copy standby controlfile;
backup as copy archivelog all;
backup as copy archivelog all delete all input;將所有歸檔日誌文件移入閃回恢復區。

很多情況下,您可能更希望增量備份能塊些。這可以通過啓用塊變更跟蹤來實現。
塊變更跟蹤依賴於啓動一個額外的後臺進程CTWR(變更跟蹤寫入器)。這個進程在名爲“變更跟蹤文件”的文件中記錄每個已更改的塊的地址。如果啓用了塊變更跟蹤,rman將在執行增量備份時讀取變更跟蹤文件以確定哪些塊需要備份。
變更跟蹤文件將在DBA指定的位置創建,默認位置時DB_CREAT_FILE_DEST目錄。
變更跟蹤文件時位圖格式,每位包含32個數據庫塊,啓用塊變更跟蹤會有一個最低的性能開銷,經驗表明這並不重要,要啓用塊變更跟蹤並指定跟蹤文件的名稱和位置,可使用下列命令
 alter database enable block change tracking using file '/u01/../change_tracking.dbf' ;
要監控塊變更跟蹤的有效性,可查詢V$BACKUP_DATAFILE視圖。這個視圖在每次將數據文件備份到備份集時填充。
datafile_blocks列是數據文件的大小。
blocks_Read是上一次備份讀取的塊數。這寫比率將顯示塊變更跟蹤減少了這性增量備份必須讀取的塊數。
select file# ,datafile_blocks,(blocks_Read/datafile_blocks)*100 as pct_Read_for_backup from v$backup_Datafile where used_change_tracking='YES' and incremental_level>0;
增量備份
塊更改跟蹤文件
 alter database enable block change tracking using file '' ;如果文件已存在,可以加參數reuse。
基本備份
backup as backupset incremental level=0 database;
backup incremental level=0 database;
差異
backup incremnetal level=1 database;
累積
backup incremnetal level=0 cumulative database;


backup incremental level=0 tabelspace users;
backup incremnetal level=1 tablespace users;

backup incremental level=0 datafile 4;
backup incremnetal level=1 datafile 4;


backup incremnetal level=1 database plus archivelog;
增量更新備份
映像副本的另一個作用是通過應用增量備份更新他們。這種用增量備份更新副本的技術採用完整備份作爲起點,然後通過應用增量前滾副本。這要求將數據庫的完整副本(可以在數據庫打開時創建)作爲起點,
之後創建增量備份,採用的語法允許將他們應用至副本。


run{
backup incremental level 1 for recover of copy with tag 'incr_update' database;
recover copy of database with tag 'incr_update'
}
這個腳本首次運行時,backup嘗試級別1備份。但因爲之前沒有級別0備份,所以執行級別0備份。這一語法將導致rman時這作爲一個副本,而不是備份集。recover命令將失敗,因爲即沒有數據庫副本又沒有增量備份可應用。腳本第二次運行時,第一個命令將執行級別1備份,提取自第一次運行後所有的變更塊。第二個命令將把這個增量備份應用至副本。這一行爲將在所有後續運行中延續。

基於增量更新備份的策略可以使恢復非常快,而且可以最小化使用的數據庫上的備份工作負荷:只有一個完整備份,如果腳本每天都運行,那最差的情況是副本落後一天。這就有必要備份該副本(例如,如果副本已定向到閃回恢復區,使用backup recovery area)和歸檔日誌文件,因爲沒有這些備份,則無法通過時間點恢復恢復到最近一次運行腳本之前的任意時間點。



保護備份:
rman可備份使用中的數據庫及其歸檔日誌文件,它還可以備份其自己的備份。這些數據在任何情況下都可通過雙重備份得到保護。
backup as backupset device type disk copies 2 database plus archvielog;
這將會使用默認通道數將整個數據庫及歸檔日誌備份到默認磁盤目標。不過,將會生成兩個備份集。
一個由一個備份片構成(默認情況)
另一個包含整個數據庫及其歸檔日誌。以這種方式在磁盤上多路複用備份提供了一定的保護,但最終還是要將備份轉移到磁帶。這可通過下列命令完成
backuo device type sbt_tape backupset all delete all input;
這個命令將定位磁盤上所有已知備份集的備份片,將他們複製到磁帶庫上的另一個備份集中,同時將他們從磁盤中刪除。另一個選擇時使用下列命令之一,他們只在磁帶庫可用時有效
backup recovery area;
backup recovery files;
第一個命令使用默認通道,備份集和備份片數,將閃回恢復區備份到磁帶。包括在備份中的文件時完整增量備份集,控制文件自動備份,數據文件和歸檔日誌映像副本,以及歸檔重做日誌
第二個命令備份所有這些與恢復相關的文件。

使用三層存儲實現備份策略的簡單腳本如下所示:
run{
backuo recovery files delete all input;
backup database plus archivelog all delete input;
}
第一個命令將所有現有備份移到磁帶,第二個命令將創建數據庫和任意歸檔日誌的一個新的備份,同時從log_archive_Dest_n位置刪除日誌。



delete all input 子句不應用與使用的數據庫,它只應用於歸檔日誌和備份。







 




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章