RMAN備份恢復--RAC環境資料庫的備份(十)

yangtingkun發表於2007-05-31

RAC環境的備份、恢復和普通資料庫的備份、恢復是有一些區別的。

RMAN備份恢復——RAC環境資料庫的備份(一):http://yangtingkun.itpub.net/post/468/285260

RMAN備份恢復——RAC環境資料庫的備份(二):http://yangtingkun.itpub.net/post/468/287076

RMAN備份恢復——RAC環境資料庫的備份(三):http://yangtingkun.itpub.net/post/468/287617

RMAN備份恢復——RAC環境資料庫的備份(四):http://yangtingkun.itpub.net/post/468/288295

RMAN備份恢復——RAC環境資料庫的備份(五):http://yangtingkun.itpub.net/post/468/288557

RMAN備份恢復——RAC環境資料庫的備份(六):http://yangtingkun.itpub.net/post/468/288973

RMAN備份恢復——RAC環境資料庫的備份(七):http://yangtingkun.itpub.net/post/468/289665

RMAN備份恢復——RAC環境資料庫的備份(八):http://yangtingkun.itpub.net/post/468/290599

RMAN備份恢復——RAC環境資料庫的備份(九):http://yangtingkun.itpub.net/post/468/291018

這篇介紹基於裸裝置RAC備份透過STANDBY機制來解決遠端歸檔問題。


上兩篇文章分別介紹了透過建立ASMNFS MOUNT來解決歸檔日誌的備份問題,這篇文章介紹透過配置LOG_ARCHIVE_DEST_NSERVICE引數來實現遠端歸檔。這樣就解決了RAC的本地歸檔問題。從而使備份和恢復變成了單例項資料庫的方式。

首先設定歸檔引數:

SQL> alter system set log_archive_dest_1 = 'LOCATION=/data1/archivelog';

系統已更改。

SQL> alter system set log_archive_dest_2 = 'SERVICE=testrac2' sid = 'testrac1';

系統已更改。

SQL> alter system set standby_archive_dest = '/data1/archivelog' sid = 'testrac2';

系統已更改。

然後備份目前的歸檔日誌,使得新的歸檔設定對於新的備份可以生效:

RMAN> run
2> {
3> allocate channel c1 device type sbt connect sys/test@testrac1;
4> allocate channel c2 device type sbt connect sys/test@testrac2;
5> backup archivelog all delete all input;
6> }

分配的通道: c1通道 c1: sid=297 例項=testrac1 devtype=SBT_TAPE通道c1: VERITAS NetBackup for Oracle - Release 6.0 (2006110304)

分配的通道: c2通道 c2: sid=294 例項=testrac2 devtype=SBT_TAPE通道c2: VERITAS NetBackup for Oracle - Release 6.0 (2006110304)

啟動 backup 30-5 -07當前日誌已存檔通道 c1: 正在啟動存檔日誌備份集通道 c1: 正在指定備份集中的存檔日誌輸入存檔日誌執行緒 =1 序列 =267 記錄 ID=660 時間戳=623936056通道 c1: 正在啟動段 1 30-5 -07通道 c2: 正在啟動存檔日誌備份集通道 c2: 正在指定備份集中的存檔日誌輸入存檔日誌執行緒 =2 序列 =183 記錄 ID=662 時間戳=623936056通道 c2: 正在啟動段 1 30-5 -07通道 c1: 已完成段 1 30-5 -07段控制程式碼=89ij10hr_1_1 標記=TAG20070530T113419 註釋=API Version 2.0,MMS Version 5.0.0.0通道 c1: 備份集已完成, 經過時間:00:03:26通道 c1: 正在刪除存檔日誌存檔日誌檔名 =/data1/archivelog/1_267_618591128.dbf 記錄 ID=660 時間戳 =623936056存檔日誌檔名 =/data1/archivelog/1_267_618591128.dbf 記錄 ID=661 時間戳 =623936056通道 c2: 已完成段 1 30-5 -07段控制程式碼=8aij10hr_1_1 標記=TAG20070530T113419 註釋=API Version 2.0,MMS Version 5.0.0.0通道 c2: 備份集已完成, 經過時間:00:04:01通道 c2: 正在刪除存檔日誌存檔日誌檔名 =/data1/archivelog/2_183_618591128.dbf 記錄 ID=662 時間戳 =623936056完成 backup 30-5 -07釋放的通道: c1釋放的通道: c2

由於只設定了節點1向節點2進行歸檔的傳播,下面就可以在節點2上進行備份了,如果需要在任意一個節點上進行備份,那麼可以在節點2上進行類似的設定。

需要配置log_archive_max_processes的值大於等於歸檔目錄設定的個數。確保本地歸檔和遠端歸檔同時進行。

在10g中還要注意,Oracle增加了一個新的初始化引數:log_archive_local_first,這個引數預設為true,如果不更改這個設定,會導致BACKUP的時候ARCHIVE LOG CURRENT操作執行完成後,而遠端歸檔還未完成,會造成類似下面的問題:

MAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: backup plus archivelog
命令 ( 05/30/2007 11:56:18 ) 失敗
RMAN-06059:
沒有找到預期的歸檔日誌, 歸檔日誌的丟失將影響可恢復性
ORA-19625:
識別檔案/data1/archivelog/1_269_618591128.dbf時出錯
ORA-27037:
無法獲得檔案狀態
SVR4 Error: 2: No such file or directory
Additional information: 3

或者出現這種錯誤:

MAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: backup plus archivelog
命令 ( 05/30/2007 13:27:56 ) 失敗
ORA-19563:
標題 (檔案 ) 驗證失敗

修改引數log_archive_local_first

SQL> alter system set log_archive_local_first = false;

系統已更改。

下面可以開始備份:

RMAN> run
2> {
3> allocate channel c1 device type sbt;
4> allocate channel c2 device type sbt;
5> backup database plus archivelog delete all input;
6> }

分配的通道: c1通道 c1: sid=288 例項=testrac2 devtype=SBT_TAPE通道c1: VERITAS NetBackup for Oracle - Release 6.0 (2006110304)

分配的通道: c2通道 c2: sid=287 例項=testrac2 devtype=SBT_TAPE通道c2: VERITAS NetBackup for Oracle - Release 6.0 (2006110304)

啟動 backup 30-5 -07當前日誌已存檔通道 c1: 正在啟動存檔日誌備份集通道 c1: 正在指定備份集中的存檔日誌輸入存檔日誌執行緒 =2 序列 =184 記錄 ID=664 時間戳=623937328輸入存檔日誌執行緒 =2 序列 =185 記錄 ID=665 時間戳=623937372輸入存檔日誌執行緒 =2 序列 =186 記錄 ID=670 時間戳=623942876輸入存檔日誌執行緒 =2 序列 =187 記錄 ID=672 時間戳=623942974輸入存檔日誌執行緒 =2 序列 =188 記錄 ID=676 時間戳=623946124通道 c1: 正在啟動段 1 30-5 -07通道 c2: 正在啟動存檔日誌備份集通道 c2: 正在指定備份集中的存檔日誌輸入存檔日誌執行緒 =1 序列 =268 記錄 ID=667 時間戳=623937389輸入存檔日誌執行緒 =1 序列 =269 記錄 ID=668 時間戳=623937419輸入存檔日誌執行緒 =1 序列 =270 記錄 ID=669 時間戳=623942876輸入存檔日誌執行緒 =1 序列 =271 記錄 ID=674 時間戳=623942975輸入存檔日誌執行緒 =1 序列 =272 記錄 ID=675 時間戳=623946124輸入存檔日誌執行緒 =1 序列 =273 記錄 ID=679 時間戳=623946256輸入存檔日誌執行緒 =1 序列 =274 記錄 ID=683 時間戳=623947390通道 c2: 正在啟動段 1 30-5 -07通道 c1: 已完成段 1 30-5 -07段控制程式碼=8mij1bju_1_1 標記=TAG20070530T144309 註釋=API Version 2.0,MMS Version 5.0.0.0通道 c1: 備份集已完成, 經過時間:00:03:56通道 c1: 正在刪除存檔日誌存檔日誌檔名 =/data1/archivelog/2_184_618591128.dbf 記錄 ID=664 時間戳 =623937328存檔日誌檔名 =/data1/archivelog/2_185_618591128.dbf 記錄 ID=665 時間戳 =623937372存檔日誌檔名 =/data1/archivelog/2_186_618591128.dbf 記錄 ID=670 時間戳 =623942876存檔日誌檔名 =/data1/archivelog/2_187_618591128.dbf 記錄 ID=672 時間戳 =623942974存檔日誌檔名 =/data1/archivelog/2_188_618591128.dbf 記錄 ID=676 時間戳 =623946124通道 c1: 正在啟動存檔日誌備份集通道 c1: 正在指定備份集中的存檔日誌輸入存檔日誌執行緒 =2 序列 =189 記錄 ID=678 時間戳=623946254輸入存檔日誌執行緒 =2 序列 =190 記錄 ID=681 時間戳=623947388通道 c1: 正在啟動段 1 30-5 -07通道 c2: 已完成段 1 30-5 -07段控制程式碼=8nij1bju_1_1 標記=TAG20070530T144309 註釋=API Version 2.0,MMS Version 5.0.0.0通道 c2: 備份集已完成, 經過時間:00:04:13通道 c2: 正在刪除存檔日誌存檔日誌檔名 =/data1/archivelog/1_268_618591128.dbf 記錄 ID=667 時間戳 =623937389存檔日誌檔名 =/data1/archivelog/1_268_618591128.dbf 記錄 ID=663 時間戳 =623937323存檔日誌檔名 =/data1/archivelog/1_269_618591128.dbf 記錄 ID=668 時間戳 =623937419存檔日誌檔名 =/data1/archivelog/1_269_618591128.dbf 記錄 ID=666 時間戳 =623937378存檔日誌檔名 =/data1/archivelog/1_270_618591128.dbf 記錄 ID=669 時間戳 =623942876存檔日誌檔名 =/data1/archivelog/1_270_618591128.dbf 記錄 ID=671 時間戳 =623942876存檔日誌檔名 =/data1/archivelog/1_271_618591128.dbf 記錄 ID=674 時間戳 =623942975存檔日誌檔名 =/data1/archivelog/1_271_618591128.dbf 記錄 ID=673 時間戳 =623942975存檔日誌檔名 =/data1/archivelog/1_272_618591128.dbf 記錄 ID=675 時間戳 =623946124存檔日誌檔名 =/data1/archivelog/1_272_618591128.dbf 記錄 ID=677 時間戳 =623946124存檔日誌檔名 =/data1/archivelog/1_273_618591128.dbf 記錄 ID=679 時間戳 =623946256存檔日誌檔名 =/data1/archivelog/1_273_618591128.dbf 記錄 ID=680 時間戳 =623946256存檔日誌檔名 =/data1/archivelog/1_274_618591128.dbf 記錄 ID=683 時間戳 =623947390存檔日誌檔名 =/data1/archivelog/1_274_618591128.dbf 記錄 ID=682 時間戳 =623947389通道 c1: 已完成段 1 30-5 -07段控制程式碼=8oij1brb_1_1 標記=TAG20070530T144309 註釋=API Version 2.0,MMS Version 5.0.0.0通道 c1: 備份集已完成, 經過時間:00:01:01通道 c1: 正在刪除存檔日誌存檔日誌檔名 =/data1/archivelog/2_189_618591128.dbf 記錄 ID=678 時間戳 =623946254存檔日誌檔名 =/data1/archivelog/2_190_618591128.dbf 記錄 ID=681 時間戳 =623947388完成 backup 30-5 -07

啟動 backup 30-5 -07通道 c1: 啟動全部資料檔案備份集通道 c1: 正在指定備份集中的資料檔案輸入資料檔案 fno=00006 name=+DISK/testrac/datafile/zhejiang01.dbf輸入資料檔案 fno=00009 name=+DISK/testrac/datafile/zhejiang03.dbf輸入資料檔案 fno=00012 name=+DISK/testrac/datafile/zhejiang05.dbf輸入資料檔案 fno=00008 name=+DISK/testrac/datafile/ndmain01.dbf輸入資料檔案 fno=00010 name=+DISK/testrac/datafile/ndindex01.dbf輸入資料檔案 fno=00001 name=+DISK/testrac/datafile/system.262.618591167輸入資料檔案 fno=00005 name=+DISK/testrac/datafile/users.267.618591279通道 c1: 正在啟動段 1 30-5 -07通道 c2: 啟動全部資料檔案備份集通道 c2: 正在指定備份集中的資料檔案輸入資料檔案 fno=00007 name=+DISK/testrac/datafile/zhejiang02.dbf輸入資料檔案 fno=00011 name=+DISK/testrac/datafile/zhejiang04.dbf輸入資料檔案 fno=00014 name=+DISK/testrac/datafile/zhejiang06.dbf輸入資料檔案 fno=00002 name=+DISK/testrac/datafile/undotbs1.263.618591197輸入資料檔案 fno=00004 name=+DISK/testrac/datafile/undotbs2.266.618591249輸入資料檔案 fno=00013 name=+DISK/testrac/datafile/lt_index_ts01.dbf輸入資料檔案 fno=00003 name=+DISK/testrac/datafile/sysaux.264.618591225通道 c2: 正在啟動段 1 30-5 -07通道 c1: 已完成段 1 30-5 -07段控制程式碼=8pij1bt9_1_1 標記=TAG20070530T144808 註釋=API Version 2.0,MMS Version 5.0.0.0通道 c1: 備份集已完成, 經過時間:00:38:06通道 c1: 啟動全部資料檔案備份集通道 c1: 正在指定備份集中的資料檔案備份集中包括當前控制檔案通道 c1: 正在啟動段 1 30-5 -07通道 c2: 已完成段 1 30-5 -07段控制程式碼=8qij1bt9_1_1 標記=TAG20070530T144808 註釋=API Version 2.0,MMS Version 5.0.0.0通道 c2: 備份集已完成, 經過時間:00:38:32通道 c2: 啟動全部資料檔案備份集通道 c2: 正在指定備份集中的資料檔案在備份集中包含當前的 SPFILE通道 c2: 正在啟動段 1 30-5 -07通道 c1: 已完成段 1 30-5 -07段控制程式碼=8rij1e4n_1_1 標記=TAG20070530T144808 註釋=API Version 2.0,MMS Version 5.0.0.0通道 c1: 備份集已完成, 經過時間:00:01:02通道 c2: 已完成段 1 30-5 -07段控制程式碼=8sij1e5h_1_1 標記=TAG20070530T144808 註釋=API Version 2.0,MMS Version 5.0.0.0通道 c2: 備份集已完成, 經過時間:00:01:01完成 backup 30-5 -07

啟動 backup 30-5 -07當前日誌已存檔通道 c1: 正在啟動存檔日誌備份集通道 c1: 正在指定備份集中的存檔日誌輸入存檔日誌執行緒 =2 序列 =191 記錄 ID=684 時間戳=623948095輸入存檔日誌執行緒 =2 序列 =192 記錄 ID=687 時間戳=623950080通道 c1: 正在啟動段 1 30-5 -07通道 c2: 正在啟動存檔日誌備份集通道 c2: 正在指定備份集中的存檔日誌輸入存檔日誌執行緒 =1 序列 =275 記錄 ID=686 時間戳=623948146輸入存檔日誌執行緒 =1 序列 =276 記錄 ID=689 時間戳=623950104通道 c2: 正在啟動段 1 30-5 -07通道 c2: 已完成段 1 30-5 -07段控制程式碼=8uij1e8p_1_1 標記=TAG20070530T152824 註釋=API Version 2.0,MMS Version 5.0.0.0通道 c2: 備份集已完成, 經過時間:00:02:06通道 c2: 正在刪除存檔日誌存檔日誌檔名 =/data1/archivelog/1_275_618591128.dbf 記錄 ID=686 時間戳 =623948146存檔日誌檔名 =/data1/archivelog/1_275_618591128.dbf 記錄 ID=685 時間戳 =623948145存檔日誌檔名 =/data1/archivelog/1_276_618591128.dbf 記錄 ID=689 時間戳 =623950104存檔日誌檔名 =/data1/archivelog/1_276_618591128.dbf 記錄 ID=688 時間戳 =623950104通道 c1: 已完成段 1 30-5 -07段控制程式碼=8tij1e8p_1_1 標記=TAG20070530T152824 註釋=API Version 2.0,MMS Version 5.0.0.0通道 c1: 備份集已完成, 經過時間:00:02:07通道 c1: 正在刪除存檔日誌存檔日誌檔名 =/data1/archivelog/2_191_618591128.dbf 記錄 ID=684 時間戳 =623948095存檔日誌檔名 =/data1/archivelog/2_192_618591128.dbf 記錄 ID=687 時間戳 =623950080完成 backup 30-5 -07釋放的通道: c1釋放的通道: c2

恢復步驟也比較簡單:

$ srvctl stop db -d testrac
$ rman target /

恢復管理器: Release 10.2.0.3.0 - Production on 星期三 5 30 15:36:56 2007

Copyright (c) 1982, 2005, Oracle. All rights reserved.

已連線到目標資料庫 (未啟動)

RMAN> startup mount

Oracle 例項已啟動資料庫已裝載

系統全域性區域總計 2147483648 位元組

Fixed Size 2031480 位元組
Variable Size 335544456
位元組
Database Buffers 1795162112
位元組
Redo Buffers 14745600
位元組

RMAN> run
2> {
3> allocate channel c1 device type sbt;
4> allocate channel c2 device type sbt;
5> restore database;
6> recover database;
7> }

使用目標資料庫控制檔案替代恢復目錄分配的通道: c1通道 c1: sid=306 例項=testrac2 devtype=SBT_TAPE通道c1: VERITAS NetBackup for Oracle - Release 6.0 (2006110304)

分配的通道: c2通道 c2: sid=305 例項=testrac2 devtype=SBT_TAPE通道c2: VERITAS NetBackup for Oracle - Release 6.0 (2006110304)

啟動 restore 30-5 -07

通道 c1: 正在開始恢復資料檔案備份集通道 c1: 正在指定從備份集恢復的資料檔案正將資料檔案00001恢復到+DISK/testrac/datafile/system.262.618591167正將資料檔案00005恢復到+DISK/testrac/datafile/users.267.618591279正將資料檔案00006恢復到+DISK/testrac/datafile/zhejiang01.dbf正將資料檔案00008恢復到+DISK/testrac/datafile/ndmain01.dbf正將資料檔案00009恢復到+DISK/testrac/datafile/zhejiang03.dbf正將資料檔案00010恢復到+DISK/testrac/datafile/ndindex01.dbf正將資料檔案00012恢復到+DISK/testrac/datafile/zhejiang05.dbf通道 c1: 正在讀取備份段 8pij1bt9_1_1通道 c2: 正在開始恢復資料檔案備份集通道 c2: 正在指定從備份集恢復的資料檔案正將資料檔案00002恢復到+DISK/testrac/datafile/undotbs1.263.618591197正將資料檔案00003恢復到+DISK/testrac/datafile/sysaux.264.618591225正將資料檔案00004恢復到+DISK/testrac/datafile/undotbs2.266.618591249正將資料檔案00007恢復到+DISK/testrac/datafile/zhejiang02.dbf正將資料檔案00011恢復到+DISK/testrac/datafile/zhejiang04.dbf正將資料檔案00013恢復到+DISK/testrac/datafile/lt_index_ts01.dbf正將資料檔案00014恢復到+DISK/testrac/datafile/zhejiang06.dbf通道 c2: 正在讀取備份段 8qij1bt9_1_1通道 c1: 已恢復備份段 1段控制程式碼 = 8pij1bt9_1_1 標記 = TAG20070530T144808通道 c1: 恢復完成, 用時: 00:40:27通道 c2: 已恢復備份段 1段控制程式碼 = 8qij1bt9_1_1 標記 = TAG20070530T144808通道 c2: 恢復完成, 用時: 00:40:42完成 restore 30-5 -07

啟動 recover 30-5 -07

正在開始介質的恢復

通道 c1: 正在啟動到預設目標的存檔日誌恢復通道 c2: 正在啟動到預設目標的存檔日誌恢復通道 c1: 正在恢復存檔日誌存檔日誌執行緒 =1 序列=275通道 c2: 正在恢復存檔日誌存檔日誌執行緒 =2 序列=191通道 c1: 正在恢復存檔日誌存檔日誌執行緒 =1 序列=276通道 c1: 正在讀取備份段 8uij1e8p_1_1通道 c2: 正在恢復存檔日誌存檔日誌執行緒 =2 序列=192通道 c2: 正在讀取備份段 8tij1e8p_1_1通道 c1: 已恢復備份段 1段控制程式碼 = 8uij1e8p_1_1 標記 = TAG20070530T152824通道 c1: 恢復完成, 用時: 00:01:45通道 c2: 已恢復備份段 1段控制程式碼 = 8tij1e8p_1_1 標記 = TAG20070530T152824通道 c2: 恢復完成, 用時: 00:01:45存檔日誌檔名 =/data1/archivelog/2_191_618591128.dbf 執行緒 =2 序列 =191存檔日誌檔名 =/data1/archivelog/1_275_618591128.dbf 執行緒 =1 序列 =275介質恢復完成, 用時: 00:02:34完成 recover 30-5 -07釋放的通道: c1釋放的通道: c2

根據個人感覺,採用這種方式備份和恢復資料庫不但方便而且代價也比較小。

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

相關文章