RMAN備份恢復——RAC環境資料庫的備份(一)

yangtingkun發表於2007-05-03

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


這個區別主要體現在RAC環境的特殊性上。

根據OracleRAC環境的不同,RMAN備份、恢復操作也是不同的。如果RAC環境是建立在CLUSTER檔案系統上的,或者是建立在ASM上的,那麼備份和恢復過程可能會很簡單,基本上和普通的資料庫環境沒有太多的區別。如果RAC環境是建立在裸裝置上的,由於歸檔日誌無法儲存在裸裝置上,那麼歸檔日誌檔案必須放在多個節點的本地硬碟上,這時備份和恢復就變得和普通的資料庫環境有所差異。

這裡先討論一下ASM環境上建立的RAC資料庫的備份。如果將歸檔日誌放在ASM上,那麼兩個節點都是可以備份的,這個時候,備份和普通的單例項資料庫沒有差別。

SQL> SHOW PARAMETER LOG_ARCHIVE_DEST_1

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest_1 string LOCATION=+DISK/testrac/
log_archive_dest_10 string

$ rman target /

恢復管理器: Release 10.2.0.3.0 - Production on 星期三 4 25 17:23:01 2007

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

連線到目標資料庫: TESTRAC (DBID=4291216984)

RMAN> configure channel device type disk format '/data1/backup/%U';

使用目標資料庫控制檔案替代恢復目錄舊的 RMAN 配置引數:
CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT '/data/backup/testrac/%U';
新的 RMAN 配置引數
:
CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT '/data1/backup/%U';
已成功儲存新的 RMAN 配置引數

RMAN> backup database plus archivelog delete all input;

啟動 backup 25-4 -07當前日誌已存檔分配的通道: ORA_DISK_1通道 ORA_DISK_1: sid=312 例項=testrac1 devtype=DISK通道 ORA_DISK_1: 正在啟動存檔日誌備份集通道 ORA_DISK_1: 正在指定備份集中的存檔日誌輸入存檔日誌執行緒 =1 序列 =134 記錄 ID=220 時間戳=620832208輸入存檔日誌執行緒 =1 序列 =135 記錄 ID=221 時間戳=620846651輸入存檔日誌執行緒 =2 序列 =56 記錄 ID=219 時間戳=620831921輸入存檔日誌執行緒 =2 序列 =57 記錄 ID=222 時間戳=620846652通道 ORA_DISK_1: 正在啟動段 1 25-4 -07通道 ORA_DISK_1: 已完成段 1 25-4 -07段控制程式碼=/data1/backup/08ig2nhv_1_1 標記=TAG20070425T172413 註釋=NONE通道 ORA_DISK_1: 備份集已完成, 經過時間:00:00:07通道 ORA_DISK_1: 正在刪除存檔日誌存檔日誌檔名 =+DISK/testrac/1_134_618591128.dbf 記錄 ID=220 時間戳 =620832208存檔日誌檔名 =+DISK/testrac/1_135_618591128.dbf 記錄 ID=221 時間戳 =620846651存檔日誌檔名 =+DISK/testrac/2_56_618591128.dbf 記錄 ID=219 時間戳 =620831921存檔日誌檔名 =+DISK/testrac/2_57_618591128.dbf 記錄 ID=222 時間戳 =620846652完成 backup 25-4 -07

啟動 backup 25-4 -07使用通道 ORA_DISK_1通道 ORA_DISK_1: 啟動全部資料檔案備份集通道 ORA_DISK_1: 正在指定備份集中的資料檔案輸入資料檔案 fno=00006 name=+DISK/testrac/datafile/zhejiang01.dbf輸入資料檔案 fno=00007 name=+DISK/testrac/datafile/zhejiang02.dbf輸入資料檔案 fno=00009 name=+DISK/testrac/datafile/zhejiang03.dbf輸入資料檔案 fno=00011 name=+DISK/testrac/datafile/zhejiang04.dbf輸入資料檔案 fno=00012 name=+DISK/testrac/datafile/zhejiang05.dbf輸入資料檔案 fno=00014 name=+DISK/testrac/datafile/zhejiang06.dbf輸入資料檔案 fno=00008 name=+DISK/testrac/datafile/ndmain01.dbf輸入資料檔案 fno=00002 name=+DISK/testrac/datafile/undotbs1.263.618591197輸入資料檔案 fno=00004 name=+DISK/testrac/datafile/undotbs2.266.618591249輸入資料檔案 fno=00010 name=+DISK/testrac/datafile/ndindex01.dbf輸入資料檔案 fno=00013 name=+DISK/testrac/datafile/lt_index_ts01.dbf輸入資料檔案 fno=00001 name=+DISK/testrac/datafile/system.262.618591167輸入資料檔案 fno=00003 name=+DISK/testrac/datafile/sysaux.264.618591225輸入資料檔案 fno=00005 name=+DISK/testrac/datafile/users.267.618591279通道 ORA_DISK_1: 正在啟動段 1 25-4 -07通道 ORA_DISK_1: 已完成段 1 25-4 -07段控制程式碼=/data1/backup/09ig2ni9_1_1 標記=TAG20070425T172424 註釋=NONE通道 ORA_DISK_1: 備份集已完成, 經過時間:00:15:05通道 ORA_DISK_1: 啟動全部資料檔案備份集通道 ORA_DISK_1: 正在指定備份集中的資料檔案備份集中包括當前控制檔案在備份集中包含當前的 SPFILE通道 ORA_DISK_1: 正在啟動段 1 25-4 -07通道 ORA_DISK_1: 已完成段 1 25-4 -07段控制程式碼=/data1/backup/0aig2oej_1_1 標記=TAG20070425T172424 註釋=NONE通道 ORA_DISK_1: 備份集已完成, 經過時間:00:00:03完成 backup 25-4 -07

啟動 backup 25-4 -07當前日誌已存檔使用通道 ORA_DISK_1通道 ORA_DISK_1: 正在啟動存檔日誌備份集通道 ORA_DISK_1: 正在指定備份集中的存檔日誌輸入存檔日誌執行緒 =1 序列 =136 記錄 ID=223 時間戳=620847576輸入存檔日誌執行緒 =2 序列 =58 記錄 ID=224 時間戳=620847576通道 ORA_DISK_1: 正在啟動段 1 25-4 -07通道 ORA_DISK_1: 已完成段 1 25-4 -07段控制程式碼=/data1/backup/0big2oes_1_1 標記=TAG20070425T173940 註釋=NONE通道 ORA_DISK_1: 備份集已完成, 經過時間:00:00:02通道 ORA_DISK_1: 正在刪除存檔日誌存檔日誌檔名 =+DISK/testrac/1_136_618591128.dbf 記錄 ID=223 時間戳 =620847576存檔日誌檔名 =+DISK/testrac/2_58_618591128.dbf 記錄 ID=224 時間戳 =620847576完成 backup 25-4 -07

資料庫的恢復也很簡單,先修改一些資料:

SQL> CONN TEST/TEST已連線。
SQL> SELECT COUNT(*) FROM T;

COUNT(*)
----------
0

SQL> INSERT INTO T SELECT ROWNUM FROM DBA_OBJECTS;

已建立51880行。

SQL> COMMIT;

提交完成。

下面開始還原和恢復:

$ rman target /

恢復管理器: Release 10.2.0.3.0 - Production on 星期四 4 26 11:21:29 2007

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

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

RMAN> startup mount

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

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

Fixed Size 2031480 位元組
Variable Size 318767240
位元組
Database Buffers 1811939328
位元組
Redo Buffers 14745600
位元組

RMAN> restore database;

啟動 restore 26-4 -07使用通道 ORA_DISK_1

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

RMAN> restore archivelog sequence between 134 and 136 thread 1;

啟動 restore 26-4 -07使用通道 ORA_DISK_1

通道 ORA_DISK_1: 正在啟動到預設目標的存檔日誌恢復通道 ORA_DISK_1: 正在恢復存檔日誌存檔日誌執行緒 =1 序列=134通道 ORA_DISK_1: 正在恢復存檔日誌存檔日誌執行緒 =1 序列=135通道 ORA_DISK_1: 正在讀取備份段 /data1/backup/08ig2nhv_1_1通道 ORA_DISK_1: 已恢復備份段 1段控制程式碼 = /data1/backup/08ig2nhv_1_1 標記 = TAG20070425T172413通道 ORA_DISK_1: 恢復完成, 用時: 00:00:07通道 ORA_DISK_1: 正在啟動到預設目標的存檔日誌恢復通道 ORA_DISK_1: 正在恢復存檔日誌存檔日誌執行緒 =1 序列=136通道 ORA_DISK_1: 正在讀取備份段 /data1/backup/0big2oes_1_1通道 ORA_DISK_1: 已恢復備份段 1段控制程式碼 = /data1/backup/0big2oes_1_1 標記 = TAG20070425T173940通道 ORA_DISK_1: 恢復完成, 用時: 00:00:01完成 restore 26-4 -07

RMAN> restore archivelog sequence between 56 and 58 thread 2;

啟動 restore 26-4 -07使用通道 ORA_DISK_1

通道 ORA_DISK_1: 正在啟動到預設目標的存檔日誌恢復通道 ORA_DISK_1: 正在恢復存檔日誌存檔日誌執行緒 =2 序列=56通道 ORA_DISK_1: 正在恢復存檔日誌存檔日誌執行緒 =2 序列=57通道 ORA_DISK_1: 正在讀取備份段 /data1/backup/08ig2nhv_1_1通道 ORA_DISK_1: 已恢復備份段 1段控制程式碼 = /data1/backup/08ig2nhv_1_1 標記 = TAG20070425T172413通道 ORA_DISK_1: 恢復完成, 用時: 00:00:03通道 ORA_DISK_1: 正在啟動到預設目標的存檔日誌恢復通道 ORA_DISK_1: 正在恢復存檔日誌存檔日誌執行緒 =2 序列=58通道 ORA_DISK_1: 正在讀取備份段 /data1/backup/0big2oes_1_1通道 ORA_DISK_1: 已恢復備份段 1段控制程式碼 = /data1/backup/0big2oes_1_1 標記 = TAG20070425T173940通道 ORA_DISK_1: 恢復完成, 用時: 00:00:01完成 restore 26-4 -07

RMAN> recover database;

啟動 recover 26-4 -07使用通道 ORA_DISK_1

正在開始介質的恢復介質恢復完成, 用時: 00:00:38

完成 recover 26-4 -07

RMAN> alter database open;

資料庫已開啟

檢查恢復是否已經完成:

$ sqlplus "/ as sysdba"

SQL*Plus: Release 10.2.0.3.0 - Production on 星期四 4 26 13:29:14 2007

Copyright (c) 1982, 2006, Oracle. All Rights Reserved.

已連線到空閒例程。

SQL> startup
ORACLE
例程已經啟動。

Total System Global Area 2147483648 bytes
Fixed Size 2031480 bytes
Variable Size 318767240 bytes
Database Buffers 1811939328 bytes
Redo Buffers 14745600 bytes
資料庫裝載完畢。資料庫已經開啟。
SQL> CONN TEST/TEST
已連線。
SQL> SELECT COUNT(*) FROM T;

COUNT(*)
----------
51880

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

相關文章