RMAN備份之備份多個備份集到帶庫(三)

yangtingkun發表於2007-07-21

使用RMAN備份到帶庫時,同時備份多個備份集,需要注意一些問題。

RMAN備份之備份多個備份集到帶庫(一):http://yangtingkun.itpub.net/post/468/309044

RMAN備份之備份多個備份集到帶庫(二):http://yangtingkun.itpub.net/post/468/309049


根據metalink上的文件,似乎備份多個備份集到帶庫只有手工分配一種途徑,而且採用這種方式,在BACKUP的時候指定COPIES N就無法在正常工作。而解決這個問題的唯一方式就是採用自動分配CHANNEL的方式。

由手工分配得到的提示,應該先設定BACKUP COPIES的數量,然後在傳送NETBACKUP所需配置引數,所以,這裡先配置帶庫上DATAFILE和ARCHIVELOG的COPIES值:

RMAN> CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE SBT TO 2;

新的 RMAN 配置引數:
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE 'SBT_TAPE' TO 2;
已成功儲存新的 RMAN 配置引數

RMAN> CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE SBT TO 2;

新的 RMAN 配置引數:
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE 'SBT_TAPE' TO 2;
已成功儲存新的 RMAN 配置引數

下面就可以配置自動CHANNEL了,首先設定並行度,並設定帶庫為預設備份裝置:

RMAN> CONFIGURE DEFAULT DEVICE TYPE TO SBT;

新的 RMAN 配置引數:
CONFIGURE DEFAULT DEVICE TYPE TO 'SBT_TAPE';
已成功儲存新的 RMAN 配置引數

RMAN> CONFIGURE DEVICE TYPE SBT PARALLELISM 2;

新的 RMAN 配置引數:
CONFIGURE DEVICE TYPE 'SBT_TAPE' PARALLELISM 2 BACKUP TYPE TO BACKUPSET;
已成功儲存新的 RMAN 配置引數

考慮到CONFIGURE CHANNEL N語句也可以跟SEND語句,所以嘗試在配置CHANNEL的時候就指定NETBACKUP所需的引數:

RMAN> CONFIGURE CHANNEL 1 DEVICE TYPE SBT SEND 'NB_ORA_CLIENT=backup,CPF1_POLICY=testoracle,CPF1_SCHED=Default-Application-Backup,CPF2_POLICY=testoracle,CPF2_SCHED=test_multi_copy';

新的 RMAN 配置引數:
CONFIGURE CHANNEL 1 DEVICE TYPE 'SBT_TAPE' SEND 'NB_ORA_CLIENT=backup,CPF1_POLICY=testoracle,CPF1_SCHED=Default-Application-Backup,CPF2_POLICY=testoracle,CPF2_SCHED=test_multi_copy';
已成功儲存新的 RMAN 配置引數

RMAN> CONFIGURE CHANNEL 2 DEVICE TYPE SBT SEND 'NB_ORA_CLIENT=backup,CPF1_POLICY=testoracle,CPF1_SCHED=Default-Application-Backup,CPF2_POLICY=testoracle,CPF2_SCHED=test_multi_copy';

新的 RMAN 配置引數:
CONFIGURE CHANNEL 2 DEVICE TYPE 'SBT_TAPE' SEND 'NB_ORA_CLIENT=backup,CPF1_POLICY=testoracle,CPF1_SCHED=Default-Application-Backup,CPF2_POLICY=testoracle,CPF2_SCHED=test_multi_copy';
已成功儲存新的 RMAN 配置引數

RMAN> BACKUP TABLESPACE USERS;

啟動 backup 於 21-6月 -07
分配的通道: ORA_SBT_TAPE_1
通道 ORA_SBT_TAPE_1: sid=285 例項=testrac2 devtype=SBT_TAPE
通道ORA_SBT_TAPE_1: VERITAS NetBackup for Oracle - Release 6.0 (2006110304)
分配的通道: ORA_SBT_TAPE_2
通道 ORA_SBT_TAPE_2: sid=294 例項=testrac2 devtype=SBT_TAPE
通道ORA_SBT_TAPE_2: VERITAS NetBackup for Oracle - Release 6.0 (2006110304)
通道 ORA_SBT_TAPE_1: 啟動全部資料檔案備份集
通道 ORA_SBT_TAPE_1: 正在指定備份集中的資料檔案
輸入資料檔案 fno=00005 name=+DISK/testrac/datafile/users.267.618591279
通道 ORA_SBT_TAPE_1: 正在啟動段 1 於 21-6月 -07
MAN-03009: backup 命令 (ORA_SBT_TAPE_1 通道上, 在 06/21/2007 13:40:34 上) 失敗
ORA-19506: 無法建立順序檔案, 名稱 = "mkikr80e_1_2", 引數 = ""
ORA-27028: skgfqcre: sbtbackup 返回錯誤
ORA-19511: 從介質管理器層接收到錯誤, 錯誤文字為:
No policy or schedule name is explicitly specified for copy number <2>.
通道 ORA_SBT_TAPE_1 已禁用, 將在另一個通道上執行該通道上失敗的作業
通道 ORA_SBT_TAPE_2: 啟動全部資料檔案備份集
通道 ORA_SBT_TAPE_2: 正在指定備份集中的資料檔案
輸入資料檔案 fno=00005 name=+DISK/testrac/datafile/users.267.618591279
通道 ORA_SBT_TAPE_2: 正在啟動段 1 於 21-6月 -07
MAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03009: backup 命令 (ORA_SBT_TAPE_2 通道上, 在 06/21/2007 13:41:41 上) 失敗
ORA-19506: 無法建立順序檔案, 名稱 = "mlikr86j_1_2", 引數 = ""
ORA-27028: skgfqcre: sbtbackup 返回錯誤
ORA-19511: 從介質管理器層接收到錯誤, 錯誤文字為:
No policy or schedule name is explicitly specified for copy number <2>.

備份仍然失敗,看來試圖在CONFIGURE的時候發現SEND資訊是走不通的,那麼是否可以對自動CONFIGURE的CHANNEL透過SEND傳送配置引數呢。

先清除剛才的CONFIGURE CHANNEL設定:

RMAN> CONFIGURE CHANNEL 1 DEVICE TYPE SBT CLEAR;

舊的 RMAN 配置引數:
CONFIGURE CHANNEL 1 DEVICE TYPE 'SBT_TAPE' SEND 'NB_ORA_CLIENT=backup,CPF1_POLICY=testoracle,CPF1_SCHED=Default-Application-Backup,CPF2_POLICY=testoracle,CPF2_SCHED=test_multi_copy';
已成功刪除舊的 RMAN 配置引數
釋放的通道: ORA_SBT_TAPE_1
釋放的通道: ORA_SBT_TAPE_2

RMAN> CONFIGURE CHANNEL 2 DEVICE TYPE SBT CLEAR;

舊的 RMAN 配置引數:
CONFIGURE CHANNEL 2 DEVICE TYPE 'SBT_TAPE' SEND 'NB_ORA_CLIENT=backup,CPF1_POLICY=testoracle,CPF1_SCHED=Default-Application-Backup,CPF2_POLICY=testoracle,CPF2_SCHED=test_multi_copy';
已成功刪除舊的 RMAN 配置引數

在傳送配置引數前,還面臨一個問題,這個時候CHANNEL還沒有被分配,直接傳送會失敗的。而且,經過多次測試發現,只有在備份多個備份集出現錯誤時,傳送配置資訊才會生效,此後的備份多個備份集操作才能成功:

RMAN> BACKUP TABLESPACE USERS;

啟動 backup 於 21-6月 -07
使用目標資料庫控制檔案替代恢復目錄
分配的通道: ORA_SBT_TAPE_1
通道 ORA_SBT_TAPE_1: sid=280 例項=testrac2 devtype=SBT_TAPE
通道ORA_SBT_TAPE_1: VERITAS NetBackup for Oracle - Release 6.0 (2006110304)
分配的通道: ORA_SBT_TAPE_2
通道 ORA_SBT_TAPE_2: sid=276 例項=testrac2 devtype=SBT_TAPE
通道ORA_SBT_TAPE_2: VERITAS NetBackup for Oracle - Release 6.0 (2006110304)
通道 ORA_SBT_TAPE_1: 啟動全部資料檔案備份集
通道 ORA_SBT_TAPE_1: 正在指定備份集中的資料檔案
輸入資料檔案 fno=00005 name=+DISK/testrac/datafile/users.267.618591279
通道 ORA_SBT_TAPE_1: 正在啟動段 1 於 21-6月 -07
MAN-03009: backup 命令 (ORA_SBT_TAPE_1 通道上, 在 06/21/2007 14:56:33 上) 失敗
ORA-19506: 無法建立順序檔案, 名稱 = "noikrcku_1_1", 引數 = ""
ORA-27028: skgfqcre: sbtbackup 返回錯誤
ORA-19511: 從介質管理器層接收到錯誤, 錯誤文字為:
No policy or schedule name is explicitly specified for copy number <1>.
通道 ORA_SBT_TAPE_1 已禁用, 將在另一個通道上執行該通道上失敗的作業
通道 ORA_SBT_TAPE_2: 啟動全部資料檔案備份集
通道 ORA_SBT_TAPE_2: 正在指定備份集中的資料檔案
輸入資料檔案 fno=00005 name=+DISK/testrac/datafile/users.267.618591279
通道 ORA_SBT_TAPE_2: 正在啟動段 1 於 21-6月 -07
MAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03009: backup 命令 (ORA_SBT_TAPE_2 通道上, 在 06/21/2007 14:56:37 上) 失敗
ORA-19506: 無法建立順序檔案, 名稱 = "npikrcl2_1_1", 引數 = ""
ORA-27028: skgfqcre: sbtbackup 返回錯誤
ORA-19511: 從介質管理器層接收到錯誤, 錯誤文字為:
No policy or schedule name is explicitly specified for copy number <1>.

RMAN> SEND 'NB_ORA_CLIENT=backup,CPF1_POLICY=testoracle,CPF1_SCHED=Default-Application-Backup,CPF2_POLICY=testoracle,CPF2_SCHED=test_multi_copy';

向通道發命令: ORA_SBT_TAPE_1
向通道發命令: ORA_SBT_TAPE_2

RMAN> BACKUP TABLESPACE USERS;

啟動 backup 於 21-6月 -07
使用通道 ORA_SBT_TAPE_1
使用通道 ORA_SBT_TAPE_2
通道 ORA_SBT_TAPE_1: 啟動全部資料檔案備份集
通道 ORA_SBT_TAPE_1: 正在指定備份集中的資料檔案
輸入資料檔案 fno=00005 name=+DISK/testrac/datafile/users.267.618591279
通道 ORA_SBT_TAPE_1: 正在啟動段 1 於 21-6月 -07
通道 ORA_SBT_TAPE_1: 已完成段 1 於 21-6月 -07, 有 2 個副本和標記 TAG20070621T145652
段 handle=nqikrclk_1_1 comment=API Version 2.0,MMS Version 5.0.0.0
段 handle=nqikrclk_1_2 comment=API Version 2.0,MMS Version 5.0.0.0
通道 ORA_SBT_TAPE_1: 備份集已完成, 經過時間:00:06:15
完成 backup 於 21-6月 -07

由於設定了DATAFILE BACKUP COPIES,備份多個備份集到帶庫已經生效。而且現在BACKUP COPIES N命令也可以正確執行了:

RMAN> BACKUP COPIES 2 TABLESPACE USERS;

啟動 backup 於 21-6月 -07
使用通道 ORA_SBT_TAPE_1
使用通道 ORA_SBT_TAPE_2
通道 ORA_SBT_TAPE_1: 啟動全部資料檔案備份集
通道 ORA_SBT_TAPE_1: 正在指定備份集中的資料檔案
輸入資料檔案 fno=00005 name=+DISK/testrac/datafile/users.267.618591279
通道 ORA_SBT_TAPE_1: 正在啟動段 1 於 21-6月 -07
通道 ORA_SBT_TAPE_1: 已完成段 1 於 21-6月 -07, 有 2 個副本和標記 TAG20070621T152310
段 handle=nrikre6u_1_1 comment=API Version 2.0,MMS Version 5.0.0.0
段 handle=nrikre6u_1_2 comment=API Version 2.0,MMS Version 5.0.0.0
通道 ORA_SBT_TAPE_1: 備份集已完成, 經過時間:00:05:45
完成 backup 於 21-6月 -07

現在BACKUP COPIES N的問題已經解決,就是不知道如何才能避免第一個備份錯誤的產生。

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

相關文章