RMAN相容性、控制檔案自動備份、儲存時間、備份策略、備份指令碼(二)

張衝andy發表於2017-04-16

RMAN 程式的相容性

RMAN 環境由以下5部分組成:
(1) RMAN executable
(2) Recovery catalog database
(3) Recovery catalog schema in the recovery catalog database
(4) Target database
(5) Auxiliary database (used forduplicate, duplicate for standby or tablespace point-in-time recovery)
說明: 1 、 4 是必須存在的。

一般來說,RMAN相容性規則如下:
(1)RMAN 可執行檔案的版本要和目標資料庫的版本一致,但也有例外,具體參考下表。

表中的 目錄模式版本 可以從RCVER 表中檢視:

SQL> conn rman/rman@orcl; -- 用catalog 使用者登入

已連線。

SQL> select * from rcver;

VERSION

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

11.02.00.01

(2)RMAN catalog schema 的版本必須大於等於RMAN 可執行檔案的版本。
(3)RMAN catalog對target database目標資料庫向後相容,支援早期版本的目標資料庫
--當遇到相容性問題時,會報如下錯誤:
RMAN-6186 -associated message: "PL/SQL package %s.%s version %s in %s database is too old"
RMAN-6429 -associated message: "%s database is not compatible with this version of RMAN".

RMAN 支援混合平臺之間支援如下操作:
+ Active Database DUPLICATE
+ Backup-based DUPLICATE using image copies or backup sets
+ RESTORE and RECOVER using image copies or backup sets
(1)在Oracle 10gR2 之後的版本,支援如下作業系統之間的RMAN 操作:
Solaris x86-64 <-> Linux x86-64
HP-PA <-> HP-IA
Windows IA (64-bit) / Windows (64-bitItanium) <-> Windows 64-bit for AMD / Windows (x86-64)
(2) 在Oracle 11gR1 之後的版本,支援如下作業系統之間的RMAN 操作,當然這裡也包含第一條裡提到的10gR2後的組合。
Linux <-> Windows
(3)在11.2.0.2以上版本中,因為Bug 12702521的存在,SolarisSPARC (64-bit) <-> AIX (64-bit) 這2個版本之間不能進行RMAN 操作。


1 修改控制檔案自動備份

rman中有一個比較好用的功能就是自動備份控制檔案,而且同時還備份spfile檔案。這對於不使用恢復目錄而使用控制檔案作為儲存恢復資訊的備份策略來說,尤為重要!

一般情況下有兩種事件觸發控制檔案自動備份。
1、每個rman的backup或copy命令都會觸發自動備份。也就是說每次執行部分備份或者完全備份時,都會執行控制檔案和spfile檔案的自動備份。備份資訊輸出中有 :完成 Control File and SPFILE Autobackup 。
2、資料庫結構發生變化,比如增加表空間、改變表空間大小、增加日誌檔案組等等。alert日誌中有,Starting control autobackup 。。
--檢視資料庫是否開啟控制檔案自動備份。
RMAN> show controlfile autobackup; 
--rman開啟控制檔案自動備份
RMAN> configure controlfile autobackup on;

2 修改控制檔案儲存的時間

控制檔案儲存的時間由引數CONTROL_FILE_RECORD_KEEP_TIME決定,預設值是7天。 我們可以改成0到365之間的任意值。 
SQL> select name,value from v$parameter where name='control_file_record_keep_time'; 
SQL> alter system set control_file_record_keep_time=20; 
SQL> show parameter control_file_record_keep_time

說明:如果控制檔案裡的記錄被覆蓋了,可以重新 catalog 註冊。 如:
---ASM:
CATALOG START WITH '+disk'; # catalog allfiles from an ASM disk group 
--本地目錄:最後一定要加/
CATALOG START WITH '/fs1/datafiles/'; #catalog all files in directory

3 配置備份預設的儲存策略

3.1 通過recovery window
如:configure retention policy to recovery window of 7 days;
recover window是保持所有足夠的備份,可以將資料庫系統恢復到最近七天內的任意時刻。任何超過最近七天的資料庫備份將被標記為obsolete。 
3.2 通過redundancy
備份保留策略的REDUNDANCY的值,就是最終備份保留的值。
configure retention policy to redundancy 5;
如果REDUNDANCY設定為5,那麼Oracle會保留5個備份。

--儲存策略重置為預設值(冗餘為1)
configure retention policy clear;
--不應用任何儲存策略。
CONFIGURE RETENTION POLICY TO NONE;

注意: 
配置儲存策略不會導致自動刪除備份,需要使用delete obsolete 命令才能刪除過期的備份集。 在report obsolete 命令時顯示到期的備份集。 如果列出的某個檔案不能被刪除,需要使用crosscheck 命令,否則,Oracle 刪除delete obsolete命令輸出的所有項。如:
report obsolete; 
delete noprompt obsolete; 
crosscheck backup; 
delete noprompt expired backup;

4 Nocatalog下的RMAN 增量備份指令碼

4.1 全庫加歸檔0級增量備份。
run{
sql 'alter system archive log current';
allocate channel ch1 type disk;
allocate channel ch2 type disk;
backup incremental level 0 database plus archivelog delete input
format '/u01/app/oracle/rmanbak/db_%d_%U'
tag=db_inc_0;
release channel ch1;
release channel ch2;
}

4.2 全庫加歸檔1級增量備份。
run{
sql 'alter system archive log current';
allocate channel ch1 type disk;
allocate channel ch2 type disk;
backup incremental level 1 database plus archivelog delete input
format '/u01/app/oracle/rmanbak/db1_%d_%U'
tag=db_inc_1;
release channel ch1;
release channel ch2;
}

 

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

相關文章