Oracle RAC環境中歸檔日誌的存放方式有如下幾種方式:
1. 本地檔案系統
2. 叢集檔案系統
3. 網路檔案系統(NFS)
4. 自動儲存管理(ASM)
歸檔日誌的存放方式決定了歸檔日誌可以採用的備份方式。對於方式2、3、4,歸檔日誌的備份與單一實例歸檔日誌的備份是一樣的,對於方式1,歸檔日誌的備份要複雜一些,可以通過每個節點各自進行備份,也可在備份軟體(這裡只Veritas Netbackup)端進行一定的設定,然後統一備份所有節點的歸檔日誌。但要注意歸檔日誌的恢複,應該讓所有thread產生的歸檔對應用歸檔的執行個體可見。
方式2、3、4,RMAN指令碼如下:
RUN {
ALLOCATE CHANNEL ch00 device type sbt;
sql 'alter system archive log current';
BACKUP
FORMAT 'arch_%d_%s_%p_%t'
(archivelog all delete input);
RELEASE CHANNEL ch00;
}
備忘:在採用NFS方式進行歸檔記錄備份時可能會遇到如下錯誤:
ORA-27054: NFS file system where the file is created or resides is not mounted with correct options
該錯誤的解決方案有兩種:
1.在進行NFS檔案系統mount的時候指定rszie、wsize大於等於32768
2.通過在資料庫參數檔案中加入*.event='10298 trace name context forever, level 32',跳過oracle10g對NFS檔案系統的檢查
對於方式1,RMAN指令碼如下:
方法一:其中like後指定的路徑可區分出不同thread的歸檔即可,RMAN指令碼如下:
RUN {
ALLOCATE CHANNEL ch00 device type sbt;
sql 'alter system archive log current';
BACKUP
FORMAT 'arch_%d_%s_%p_%t'
(archivelog like '/archive2/%' delete input);
RELEASE CHANNEL ch00;
}
方法二:在Veritas Netbackup中進行特定設定
首先設定TNS可以串連到不同的節點,然後在NBU中建立兩個Policy,policy1指定備份指令碼,policy2的備份指令碼為空白,policy2的只設定Application Backup類型的schedule。RMAN指令碼如下:
RUN {
ALLOCATE CHANNEL ch00 device type sbt connect'sys/sys@node1'parms \"ENV=(NB_ORA_POLICY=node1_policy, NB_ORA_CLIENT=node1_vip)\";
ALLOCATE CHANNEL ch01 device type sbt connect'sys/sys@node2'parms \"ENV=(NB_ORA_POLICY=node2_policy, NB_ORA_CLIENT=node2_vip) \";
sql 'alter system archive log current';
BACKUP
FORMAT 'arch_%d_%s_%p_%t'
(archivelog all);
RELEASE CHANNEL ch00;
RELEASE CHANNEL ch01;
}