RMAN備份之備份多個備份集到帶庫(一)
使用RMAN備份到帶庫時,同時備份多個備份集,需要注意一些問題。
首先是Oracle的初始化引數BACKUP_TAPE_IO_SLAVES必須設定為TRUE,否則備份會報錯:
RMAN> run
2> {
3> allocate channel c1 device type sbt;
4> backup copies 2 tablespace users;
5> }
使用目標資料庫控制檔案替代恢復目錄
分配的通道: c1
通道 c1: sid=293 例項=testrac2 devtype=SBT_TAPE
通道c1: VERITAS NetBackup for Oracle - Release 6.0 (2006110304)
啟動 backup 於 12-6月 -07
通道 c1: 啟動全部資料檔案備份集
通道 c1: 正在指定備份集中的資料檔案
輸入資料檔案 fno=00005 name=+DISK/testrac/datafile/users.267.618591279
釋放的通道: c1
MAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03009: backup 命令 (c1 通道上, 在 06/12/2007 18:20:51 上) 失敗
ORA-19565: 對順序裝置進行雙工時 BACKUP_TAPE_IO_SLAVES 禁用
這個引數設定只對資料檔案和歸檔檔案等資料庫檔案有效,對已經備份到磁碟的結果集不需要進行設定:
RMAN> run
2> {
3> allocate channel c1 device type sbt;
4> backup copies 2 backupset all;
5> }
分配的通道: c1
通道 c1: sid=293 例項=testrac2 devtype=SBT_TAPE
通道c1: VERITAS NetBackup for Oracle - Release 6.0 (2006110304)
啟動 backup 於 12-6月 -07
輸入備份集 count==483 stamp=625076895 creation_time=12-6月 -07
通道 c1: 正在啟動段 1 於 12-6月 -07
通道 c1: 備份段 /data1/backup/f3ik3qkv_1_1
段 handle=f3ik3qkv_1_5 comment=API Version 2.0,MMS Version 5.0.0.0
通道 c1: 備份段 /data1/backup/f3ik3qkv_1_1
段 handle=f3ik3qkv_1_6 comment=API Version 2.0,MMS Version 5.0.0.0
通道 c1: 已完成段 1 於 12-6月 -07, 有 2 個副本
通道 c1: 備份集已完成, 經過時間:00:01:35
輸入備份集 count==484 stamp=625076911 creation_time=12-6月 -07
通道 c1: 正在啟動段 1 於 12-6月 -07
通道 c1: 備份段 /data1/backup/f4ik3qlf_1_1
段 handle=f4ik3qlf_1_5 comment=API Version 2.0,MMS Version 5.0.0.0
通道 c1: 備份段 /data1/backup/f4ik3qlf_1_1
段 handle=f4ik3qlf_1_6 comment=API Version 2.0,MMS Version 5.0.0.0
通道 c1: 已完成段 1 於 12-6月 -07, 有 2 個副本
通道 c1: 備份集已完成, 經過時間:00:01:05
完成 backup 於 12-6月 -07
釋放的通道: c1
下面設定初始化引數,並重啟資料庫:
RMAN> exit
恢復管理器完成。
$ sqlplus "/ as sysdba"
SQL*Plus: Release 10.2.0.3.0 - Production on 星期三 6月 13 10:11:40 2007
Copyright (c) 1982, 2006, Oracle. All Rights Reserved.
連線到:
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production
With the Partitioning, Real Application Clusters, OLAP and Data Mining options
SQL> show parameter backup_tape_io_slaves
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
backup_tape_io_slaves boolean FALSE
SQL> alter system set backup_tape_io_slaves = true scope = spfile;
系統已更改。
SQL> exit
從 Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production
With the Partitioning, Real Application Clusters, OLAP and Data Mining options 斷開
$ srvctl stop db -d testrac
$ srvctl start db -d testrac
但是修改了這個初始化引數並不意味著解決了問題:
$ rman target /
恢復管理器: Release 10.2.0.3.0 - Production on 星期三 6月 13 10:15:43 2007
Copyright (c) 1982, 2005, Oracle. All rights reserved.
連線到目標資料庫: TESTRAC (DBID=4291216984)
RMAN> run
2> {
3> allocate channel c1 device type sbt;
4> backup copies 2 tablespace users;
5> }
使用目標資料庫控制檔案替代恢復目錄
分配的通道: c1
通道 c1: sid=291 例項=testrac2 devtype=SBT_TAPE
通道c1: VERITAS NetBackup for Oracle - Release 6.0 (2006110304)
啟動 backup 於 13-6月 -07
通道 c1: 啟動全部資料檔案備份集
通道 c1: 正在指定備份集中的資料檔案
輸入資料檔案 fno=00005 name=+DISK/testrac/datafile/users.267.618591279
通道 c1: 正在啟動段 1 於 13-6月 -07
釋放的通道: c1
MAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03009: backup 命令 (c1 通道上, 在 06/13/2007 10:16:30 上) 失敗
ORA-19506: 無法建立順序檔案, 名稱 = "f6ik5p7q_1_1", 引數 = ""
ORA-27028: skgfqcre: sbtbackup 返回錯誤
ORA-19511: 從介質管理器層接收到錯誤, 錯誤文字為:
No policy or schedule name is explicitly specified for copy number <1>.
備份多個備份集到帶庫,還要受到netbackup的策略制約。
利用root在圖形化介面下啟動jnbSA:
# jnbSA
然後在NetBackup Management的Policies中找到當前客戶端的策略,雙擊開啟,並定位到Schedules標籤頁,選擇目前的策略,並點選修改,選擇Multiple copies,並確定。
但是發現設定這個引數後,不指定COPIES,Oracle也會備份多個備份集,如果指定COPIES仍然會報錯。
無奈查詢METALINK,發現Oracle在這裡還需要進行額外的設定,只有使用下面的備份方法才可以成功:
RMAN> run
2> {
3> set duplex=2;
4> allocate channel c1 device type sbt;
5> allocate channel c2 device type sbt;
6> send 'NB_ORA_CLIENT=backup,CPF1_POLICY=testoracle,CPF1_SCHED=Default-Application-Backup';
7> send 'NB_ORA_CLIENT=backup,CPF2_POLICY=testoracle,CPF2_SCHED=test_multi_copy';
8> backup tablespace users;
9> }
正在執行命令: SET BACKUP COPIES
分配的通道: c1
通道 c1: sid=308 例項=testrac2 devtype=SBT_TAPE
通道c1: VERITAS NetBackup for Oracle - Release 6.0 (2006110304)
分配的通道: c2
通道 c2: sid=285 例項=testrac2 devtype=SBT_TAPE
通道c2: VERITAS NetBackup for Oracle - Release 6.0 (2006110304)
向通道發命令: c1
向通道發命令: c2
向通道發命令: c1
向通道發命令: c2
啟動 backup 於 14-6月 -07
通道 c1: 啟動全部資料檔案備份集
通道 c1: 正在指定備份集中的資料檔案
輸入資料檔案 fno=00005 name=+DISK/testrac/datafile/users.267.618591279
通道 c1: 正在啟動段 1 於 14-6月 -07
通道 c1: 已完成段 1 於 14-6月 -07, 有 2 個副本和標記 TAG20070614T110417
段 handle=ggik8gdh_1_1 comment=API Version 2.0,MMS Version 5.0.0.0
段 handle=ggik8gdh_1_2 comment=API Version 2.0,MMS Version 5.0.0.0
通道 c1: 備份集已完成, 經過時間:00:04:15
完成 backup 於 14-6月 -07
釋放的通道: c1
釋放的通道: c2
為了使用這種方法進行備份,必須建立兩個SCHEDULE,每個CHANNEL指定一個SCHEDULE。而且需要注意的是,這種方式對BACKUP COPIES 2這種語句無效,只對SET BACKUP COPIES,這種方式有效,而且SET BACKUP COPIES必須在ALLOCATE CHANNEL命令之前發出,否則會出錯。
RMAN> run
2> {
3> allocate channel c1 device type sbt;
4> allocate channel c2 device type sbt;
5> send 'NB_ORA_CLIENT=backup,CPF1_POLICY=testoracle,CPF1_SCHED=Default-Application-Backup';
6> send 'NB_ORA_CLIENT=backup,CPF2_POLICY=testoracle,CPF2_SCHED=test_multi_copy';
7> backup copies 2 tablespace users;
8> }
分配的通道: c1
通道 c1: sid=308 例項=testrac2 devtype=SBT_TAPE
通道c1: VERITAS NetBackup for Oracle - Release 6.0 (2006110304)
分配的通道: c2
通道 c2: sid=285 例項=testrac2 devtype=SBT_TAPE
通道c2: VERITAS NetBackup for Oracle - Release 6.0 (2006110304)
向通道發命令: c1
向通道發命令: c2
向通道發命令: c1
向通道發命令: c2
啟動 backup 於 13-6月 -07
通道 c1: 啟動全部資料檔案備份集
通道 c1: 正在指定備份集中的資料檔案
輸入資料檔案 fno=00005 name=+DISK/testrac/datafile/users.267.618591279
通道 c1: 正在啟動段 1 於 13-6月 -07
MAN-03009: backup 命令 (c1 通道上, 在 06/13/2007 17:19:10 上) 失敗
ORA-19506: 無法建立順序檔案, 名稱 = "g6ik6huc_1_2", 引數 = ""
ORA-27028: skgfqcre: sbtbackup 返回錯誤
ORA-19511: 從介質管理器層接收到錯誤, 錯誤文字為:
No policy or schedule name is explicitly specified for copy number <2>.
通道 c1 已禁用, 將在另一個通道上執行該通道上失敗的作業
通道 c2: 啟動全部資料檔案備份集
通道 c2: 正在指定備份集中的資料檔案
輸入資料檔案 fno=00005 name=+DISK/testrac/datafile/users.267.618591279
通道 c2: 正在啟動段 1 於 13-6月 -07
釋放的通道: c1
釋放的通道: c2
MAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03009: backup 命令 (c2 通道上, 在 06/13/2007 17:20:15 上) 失敗
ORA-19506: 無法建立順序檔案, 名稱 = "g7ik6i0e_1_2", 引數 = ""
ORA-27028: skgfqcre: sbtbackup 返回錯誤
ORA-19511: 從介質管理器層接收到錯誤, 錯誤文字為:
No policy or schedule name is explicitly specified for copy number <2>.
同樣的設定對於SET BACKUP COPIES 2有效,但是由於BACKUP COPIES 2 TABLESPACE USERS語句就會報錯。
RMAN> run
2> {
3> allocate channel c1 device type sbt;
4> allocate channel c2 device type sbt;
5> send 'NB_ORA_CLIENT=backup,CPF1_POLICY=testoracle,CPF1_SCHED=Default-Application-Backup';
6> send 'NB_ORA_CLIENT=backup,CPF2_POLICY=testoracle,CPF2_SCHED=test_multi_copy';
7> set backup copies 2;
8> backup archivelog all;
9> }
分配的通道: c1
通道 c1: sid=308 例項=testrac2 devtype=SBT_TAPE
通道c1: VERITAS NetBackup for Oracle - Release 6.0 (2006110304)
分配的通道: c2
通道 c2: sid=285 例項=testrac2 devtype=SBT_TAPE
通道c2: VERITAS NetBackup for Oracle - Release 6.0 (2006110304)
向通道發命令: c1
向通道發命令: c2
向通道發命令: c1
向通道發命令: c2
正在執行命令: SET BACKUP COPIES
啟動 backup 於 14-6月 -07
當前日誌已存檔
通道 c1: 正在啟動存檔日誌備份集
通道 c1: 正在指定備份集中的存檔日誌
輸入存檔日誌執行緒 =1 序列 =330 記錄 ID=853 時間戳=625244218
輸入存檔日誌執行緒 =1 序列 =331 記錄 ID=855 時間戳=625244420
通道 c1: 正在啟動段 1 於 14-6月 -07
通道 c2: 正在啟動存檔日誌備份集
通道 c2: 正在指定備份集中的存檔日誌
輸入存檔日誌執行緒 =2 序列 =245 記錄 ID=851 時間戳=625244214
輸入存檔日誌執行緒 =2 序列 =246 記錄 ID=856 時間戳=625244419
通道 c2: 正在啟動段 1 於 14-6月 -07
MAN-03009: backup 命令 (c2 通道上, 在 06/14/2007 15:03:16 上) 失敗
ORA-19506: 無法建立順序檔案, 名稱 = "heik8u84_1_2", 引數 = ""
ORA-27028: skgfqcre: sbtbackup 返回錯誤
ORA-19511: 從介質管理器層接收到錯誤, 錯誤文字為:
No policy or schedule name is explicitly specified for copy number <2>.
通道 c2 已禁用, 將在另一個通道上執行該通道上失敗的作業
釋放的通道: c1
釋放的通道: c2
MAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03009: backup 命令 (c1 通道上, 在 06/14/2007 15:03:41 上) 失敗
ORA-19506: 無法建立順序檔案, 名稱 = "hdik8u84_1_2", 引數 = ""
ORA-27028: skgfqcre: sbtbackup 返回錯誤
ORA-19511: 從介質管理器層接收到錯誤, 錯誤文字為:
No policy or schedule name is explicitly specified for copy number <2>.
將SET BACKUP COPIES 2放到ALLOCATE CHANNEL命令之後,也會報錯。
最後注意一下,前面提到的修改POLICY中的MULTIPLE COPIES是不需要修改的,這個設定對所有的備份都是生效的。也就是說,即使不指定SET BACKUP COPIES或者BACKUP COPIES N,備份也會自動備份多個備份集。這顯然不是預期的結果。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4227/viewspace-69355/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- RMAN備份之備份多個備份集到帶庫(三)
- RMAN備份之備份多個備份集到帶庫(二)
- RMAN備份多個備份集到帶庫的小bug
- RMAN備份恢復——備份到帶庫的效能
- RMAN備份恢復——備份到帶庫的效能(二)
- RMAN備份到帶庫被阻塞
- RMAN筆記之備份集和備份片筆記
- Backup And Recovery User's Guide-備份RMAN備份-使用RMAN備份備份集GUIIDE
- Backup And Recovery User's Guide-RMAN備份概念-RMAN備份的多個拷貝-備份的備份GUIIDE
- Backup And Recovery User's Guide-RMAN備份概念-備份集-備份集和備份片GUIIDE
- RMAN備份與恢復之加密備份加密
- RMAN說,我能備份(3)--RMAN全庫備份和表空間備份
- Backup And Recovery User's Guide-RMAN備份概念-備份集-備份集塊壓縮GUIIDE
- Backup And Recovery User's Guide-RMAN備份概念-備份undo(備份集加密)GUIIDE加密
- rman 備份 全庫
- Backup And Recovery User's Guide-備份RMAN備份-用RMAN備份映象拷貝備份GUIIDE
- oracle之rman備份Oracle
- RMAN說,我能備份(9)--RMAN增量備份與備份保留策略
- RMAN說,我能備份(11)--RMAN中的備份集屬性
- RMAN備份恢復——備份集儲存位置改變
- 【RMAN】使用增量備份更新資料庫備份映象資料庫
- Backup And Recovery User's Guide-備份RMAN備份-備份集的多重拷貝GUIIDE
- Oracle備份之RMAN工具(一)Oracle
- 備份之全庫一致性備份
- 揭祕ORACLE備份之----RMAN之二(備份方式)Oracle
- rman備份和增量備份指令碼指令碼
- 如何刪除控制檔案中過去rman備份到磁帶的歸檔備份集
- Backup And Recovery User's Guide-備份RMAN備份-關於備份的備份GUIIDE
- Backup And Recovery User's Guide-RMAN備份概念-增量備份-多級增量備份GUIIDE
- RMAN備份恢復——RAC環境資料庫的備份(一)資料庫
- Oracle裡邏輯備份、物理備份、Rman備份的區別Oracle
- Backup And Recovery User's Guide-備份RMAN備份-備份保留期對備份的備份的影響GUIIDE
- Oracle 11g RMAN備份-一致備份Oracle
- RMAN備份恢復整個庫
- rman全庫備份備份歸檔日誌檔案
- RMAN 全庫備份和 0級備份的區別
- 【原】Oracle學習系列—資料庫備份—RMAN備份Oracle資料庫
- Backup And Recovery User's Guide-備份資料庫-RMAN備份概覽-RMAN備份的目的GUIIDE資料庫