利用RMAN建立10GRAC資料庫的DATA GUARD

yangtingkun發表於2007-11-07

本文介紹如何使用RMAN建立10G的RAC環境的DATA GUARD


由於環境所限,DATA GUARDSTANDBY資料庫是一個單例項資料庫。

首先進行準備工作,在STANDBY資料庫伺服器上安裝Oracle10201軟體,然後打上10203的補丁。

下面利用RMANRAC環境進行備份:

RMAN> run
2> {
3> allocate channel c1 device type disk format '/data1/backup/%U' connect sys/test@testrac1;
4> allocate channel c2 device type disk format '/data1/backup/%U' connect sys/test@testrac2;
5> backup database plus archivelog delete all input;
6> }

釋放的通道: ORA_DISK_1釋放的通道: ORA_DISK_2分配的通道: c1通道 c1: sid=311 例項=testrac1 devtype=DISK

分配的通道: c2通道 c2: sid=311 例項=testrac2 devtype=DISK

啟動 backup 30-6 -07當前日誌已存檔通道 c1: 正在啟動存檔日誌備份集通道 c1: 正在指定備份集中的存檔日誌輸入存檔日誌執行緒 =1 序列 =551 記錄 ID=1869 時間戳=626640738輸入存檔日誌執行緒 =1 序列 =552 記錄 ID=1872 時間戳=626641030通道 c1: 正在啟動段 1 30-6 -07通道 c2: 正在啟動存檔日誌備份集通道 c2: 正在指定備份集中的存檔日誌輸入存檔日誌執行緒 =2 序列 =328 記錄 ID=1871 時間戳=626640739輸入存檔日誌執行緒 =2 序列 =329 記錄 ID=1874 時間戳=626641032通道 c2: 正在啟動段 1 30-6 -07通道 c1: 已完成段 1 30-6 -07段控制程式碼=/data1/backup/u9ilji10_1_1 標記=TAG20070630T185712 註釋=NONE通道 c1: 備份集已完成, 經過時間:00:00:01通道 c1: 正在刪除存檔日誌存檔日誌檔名 =/data1/archivelog/1_551_626291662.dbf 記錄 ID=1869 時間戳 =626640738存檔日誌檔名 =/data1/archivelog/1_551_626291662.dbf 記錄 ID=1870 時間戳 =626640633存檔日誌檔名 =/data1/archivelog/1_552_626291662.dbf 記錄 ID=1872 時間戳 =626641030存檔日誌檔名 =/data1/archivelog/1_552_626291662.dbf 記錄 ID=1873 時間戳 =626640924通道 c2: 已完成段 1 30-6 -07段控制程式碼=/data1/backup/uailji49_1_1 標記=TAG20070630T185712 註釋=NONE通道 c2: 備份集已完成, 經過時間:00:00:01通道 c2: 正在刪除存檔日誌存檔日誌檔名 =/data1/archivelog/2_328_626291662.dbf 記錄 ID=1871 時間戳 =626640739存檔日誌檔名 =/data1/archivelog/2_329_626291662.dbf 記錄 ID=1874 時間戳 =626641032完成 backup 30-6 -07

啟動 backup 30-6 -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=00002 name=+DISK/testrac/datafile/undotbs1.263.618591197輸入資料檔案 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-6 -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=00015 name=+DISK/testrac/datafile/gpo.367.624623443輸入資料檔案 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-6 -07通道 c2: 已完成段 1 30-6 -07段控制程式碼=/data1/backup/ucilji4d_1_1 標記=TAG20070630T185716 註釋=NONE通道 c2: 備份集已完成, 經過時間:00:12:56通道 c1: 已完成段 1 30-6 -07段控制程式碼=/data1/backup/ubilji13_1_1 標記=TAG20070630T185716 註釋=NONE通道 c1: 備份集已完成, 經過時間:00:17:32完成 backup 30-6 -07

啟動 backup 30-6 -07當前日誌已存檔通道 c1: 正在啟動存檔日誌備份集通道 c1: 正在指定備份集中的存檔日誌輸入存檔日誌執行緒 =1 序列 =553 記錄 ID=1875 時間戳=626642093通道 c1: 正在啟動段 1 30-6 -07通道 c2: 正在啟動存檔日誌備份集通道 c2: 正在指定備份集中的存檔日誌輸入存檔日誌執行緒 =2 序列 =330 記錄 ID=1877 時間戳=626642093通道 c2: 正在啟動段 1 30-6 -07通道 c1: 已完成段 1 30-6 -07段控制程式碼=/data1/backup/udiljj28_1_1 標記=TAG20070630T191457 註釋=NONE通道 c1: 備份集已完成, 經過時間:00:00:01通道 c1: 正在刪除存檔日誌存檔日誌檔名 =/data1/archivelog/1_553_626291662.dbf 記錄 ID=1875 時間戳 =626642093存檔日誌檔名 =/data1/archivelog/1_553_626291662.dbf 記錄 ID=1876 時間戳 =626641988通道 c2: 已完成段 1 30-6 -07段控制程式碼=/data1/backup/ueiljj5i_1_1 標記=TAG20070630T191457 註釋=NONE通道 c2: 備份集已完成, 經過時間:00:00:01通道 c2: 正在刪除存檔日誌存檔日誌檔名 =/data1/archivelog/2_330_626291662.dbf 記錄 ID=1877 時間戳 =626642093完成 backup 30-6 -07

啟動 Control File and SPFILE Autobackup 30-6 -07 handle=+DISK/testrac/autobackup/2007_06_30/s_626641994.377.626641997 comment=NONE完成 Control File and SPFILE Autobackup 30-6 -07釋放的通道: c1釋放的通道: c2

還可以利用RMAN備份STANDBY CONTROLFILE

RMAN> run
2> {
3> allocate channel c1 device type disk format '/data1/backup/%U';
4> backup current controlfile for standby;
5> }

分配的通道: c1通道 c1: sid=295 例項=testrac2 devtype=DISK

啟動 backup 30-6 -07通道 c1: 啟動全部資料檔案備份集通道 c1: 正在指定備份集中的資料檔案備份集中包括備用控制檔案通道 c1: 正在啟動段 1 30-6 -07通道 c1: 已完成段 1 30-6 -07段控制程式碼=/data1/backup/ugilk27m_1_1 標記=TAG20070630T233206 註釋=NONE通道 c1: 備份集已完成, 經過時間:00:00:02完成 backup 30-6 -07

啟動 Control File and SPFILE Autobackup 30-6 -07 handle=+DISK/testrac/autobackup/2007_06_30/s_626657528.388.626657531 comment=NONE完成 Control File and SPFILE Autobackup 30-6 -07釋放的通道: c1

然後透過ftp將備份檔案複製到STANDBY資料庫的等同位置上。複製密碼檔案,根據STANDBY資料庫的DB_UNIQUE_NAME,對其重新命名。

設定PRIMARY資料庫的FORCE LOGGING:

SQL> ALTER DATABASE FORCE LOGGING;

資料庫已更改。

配置主庫的初始化引數

SQL> ALTER SYSTEM SET LOG_ARCHIVE_CONFIG='DG_CONFIG=(testrac,testrac_standby)';

系統已更改。

SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_1='LOCATION=/data1/archivelog VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=testrac';

系統已更改。

SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='SERVICE=testrac_standby LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=testrac_standby';

系統已更改。

SQL> ALTER SYSTEM SET FAL_SERVER=testrac_standby;

系統已更改。

SQL> ALTER SYSTEM SET FAL_CLIENT=testrac;

系統已更改。

SQL> ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT=AUTO;

系統已更改。

然後利用CREATE PFILE建立STANDBY資料庫所需的初始化檔案。將初始化引數ftpSTANDBY伺服器的$ORACLE_HOME/dbs目錄下,並編輯初始化檔案。

主要編輯兩方面的內容,一方面是修改STANDBYDATA GUARD相關內容,另一方面是去掉和RAC相關的初始化資訊。

一個簡單的修改後的初始化引數例子如下:

*.audit_file_dest='/data/oracle/admin/testrac/adump'
*.background_dump_dest='/data/oracle/admin/testrac/bdump'
*.backup_tape_io_slaves=TRUE
*.compatible='10.2.0.1.0'
*.control_files='/export/home/oracle/oradata/testrac/current.256.618591133','/export/home/oracle/oradata/testrac/current.257.618591137'
*.core_dump_dest='/data/oracle/admin/testrac/cdump'
*.db_block_size=8192
*.db_create_file_dest='/data1/oradata/testrac'
*.db_domain=''
*.db_file_multiblock_read_count=16
*.db_name='testrac'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=testracXDB)'
*.fal_client='TESTRAC_STANDBY'
*.fal_server='TESTRAC'
*.job_queue_processes=10
*.log_archive_config='DG_CONFIG=(testrac,testrac_standby)'
*.log_archive_dest_1='LOCATION=/data1/archivelog VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=testrac_standby'
*.log_archive_dest_2='SERVICE=testrac1 LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=testrac'
*.log_archive_dest_state_2='ENABLE'
*.log_archive_format='%t_%s_%r.dbf'
*.log_archive_local_first=FALSE
*.open_cursors=5000
*.pga_aggregate_target=536870912
*.processes=300
*.remote_login_passwordfile='EXCLUSIVE'
*.session_max_open_files=20
*.sga_target=2147483648
*.standby_archive_dest='/data1/archivelog'
*.standby_file_management='AUTO'
*.streams_pool_size=50331648
*.undo_management='AUTO'
*.undo_tablespace='UNDOTBS1'
*.user_dump_dest='/data/oracle/admin/testrac/udump'
db_unique_name='testrac_standby'
log_file_name_convert=('+DISK/testrac/onlinelog','/export/home/oracle/oradata/testrac/')
db_file_name_convert=('+DISK/testrac/datafile/g', '/data1/oradata/testrac/g', '+DISK/testrac/datafile/l', '/data/oradata/testrac/l', '+DISK/testrac/datafile/n', '/data1/oradata/testrac/n', '+DISK/testrac/datafile/s', '/data1/oradata/testrac/s', '+DISK/testrac/datafile/u', '/data1/oradata/testrac/u', '+DISK/testrac/tempfile/t', '/export/home/oracle/oradata/testrac/t', '+DISK/testrac/datafile/zhejiang01.dbf', '/export/home/oracle/oradata/testrac/zhejiang01.dbf', '+DISK/testrac/datafile/zhejiang02.dbf', '/export/home/oracle/oradata/testrac/zhejiang02.dbf', '+DISK/testrac/datafile/zhejiang03.dbf', '/export/home/oracle/oradata/testrac/zhejiang03.dbf', '+DISK/testrac/datafile/zhejiang04.dbf', '/export/home/oracle/oradata/testrac/zhejiang04.dbf', '+DISK/testrac/datafile/zhejiang05.dbf', '/data1/oradata/testrac/zhejiang05.dbf', '+DISK/testrac/datafile/zhejiang06.dbf', '/opt/oracle/oradata/testrac/zhejiang06.dbf')

例子中設定log_file_name_convertdb_file_name_convert是出於兩方面考慮,一是將ASM轉化為檔案系統,另一方面是測試環境空間不足。

建立STANDBY資料庫所需的目錄結構,包括udumpbdumpcdumpadump目錄。

設定網路配置檔案tnsnames.oralistener.ora,並啟動監聽。

透過PFILE建立STANDBYSPFILE,並將資料庫啟動到NOMOUNT狀態:

$ sqlplus "/ as sysdba"

SQL*Plus: Release 10.2.0.3.0 - Production on 星期四 8 30 18:59:27 2007

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

已連線到空閒例程。

SQL> CREATE SPFILE FROM PFILE = '/data/oracle/product/10.2/database/dbs/inittestrac.ora';

檔案已建立。

SQL> STARTUP NOMOUNT
ORACLE
例程已經啟動。

Total System Global Area 2147483648 bytes
Fixed Size 2031480 bytes
Variable Size 520093832 bytes
Database Buffers 1610612736 bytes
Redo Buffers 14745600 bytes
SQL>

在主庫上配置從庫的網路服務名,然後就可以利用RMAN進行STANDBY的恢復了:

$ rman target / auxiliary sys/test@testrac_standby

恢復管理器: Release 10.2.0.3.0 - Production on 星期日 7 1 18:06:06 2007

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

連線到目標資料庫: TESTRAC (DBID=4291216984)已連線到輔助資料庫: TESTRAC (未裝載)

RMAN> run
2> {
3> allocate channel c1 device type disk format '/data1/backup/%U' connect sys/test@testrac1;
4> allocate channel c2 device type disk format '/data1/backup/%U' connect sys/test@testrac2;
5> allocate auxiliary channel ac1 device type disk format '/data1/backup/%U';
6> allocate auxiliary channel ac2 device type disk format '/data1/backup/%U';
7> duplicate target database for standby;
8> }

使用目標資料庫控制檔案替代恢復目錄分配的通道: c1通道 c1: sid=296 例項=testrac1 devtype=DISK

分配的通道: c2通道 c2: sid=311 例項=testrac2 devtype=DISK

分配的通道: ac1通道 ac1: sid=320 devtype=DISK

分配的通道: ac2通道 ac2: sid=319 devtype=DISK

啟動 Duplicate Db 01-7 -07

記憶體指令碼的內容:
{
restore clone standby controlfile;
sql clone 'alter database mount standby database';
}
正在執行記憶體指令碼

啟動 restore 01-7 -07

通道 ac1: 正在開始恢復資料檔案備份集通道 ac1: 正在復原控制檔案通道 ac1: 正在讀取備份段 /data1/backup/ugilk27m_1_1通道 ac1: 已恢復備份段 1段控制程式碼 = /data1/backup/ugilk27m_1_1 標記 = TAG20070630T233206通道 ac1: 恢復完成, 用時: 00:00:04輸出檔名=/export/home/oracle/oradata/testrac/current.256.618591133輸出檔名=/export/home/oracle/oradata/testrac/current.257.618591137完成 restore 01-7 -07

sql 語句: alter database mount standby database

記憶體指令碼的內容:
{
set newname for tempfile 1 to
"/export/home/oracle/oradata/testrac/temp.265.618591239";
switch clone tempfile all;
set newname for datafile 1 to
"/data1/oradata/testrac/system.262.618591167";
set newname for datafile 2 to
"/data1/oradata/testrac/undotbs1.263.618591197";
set newname for datafile 3 to
"/data1/oradata/testrac/sysaux.264.618591225";
set newname for datafile 4 to
"/data1/oradata/testrac/undotbs2.266.618591249";
set newname for datafile 5 to
"/data1/oradata/testrac/users.267.618591279";
set newname for datafile 6 to
"/export/home/oracle/oradata/testrac/zhejiang01.dbf";
set newname for datafile 7 to
"/export/home/oracle/oradata/testrac/zhejiang02.dbf";
set newname for datafile 8 to
"/data1/oradata/testrac/ndmain01.dbf";
set newname for datafile 9 to
"/export/home/oracle/oradata/testrac/zhejiang03.dbf";
set newname for datafile 10 to
"/data1/oradata/testrac/ndindex01.dbf";
set newname for datafile 11 to
"/export/home/oracle/oradata/testrac/zhejiang04.dbf";
set newname for datafile 12 to
"/data1/oradata/testrac/zhejiang05.dbf";
set newname for datafile 13 to
"/data/oradata/testrac/lt_index_ts01.dbf";
set newname for datafile 14 to
"/opt/oracle/oradata/testrac/zhejiang06.dbf";
set newname for datafile 15 to
"/data1/oradata/testrac/gpo.367.624623443";
restore
check readonly
clone database
;
}
正在執行記憶體指令碼

正在執行命令: SET NEWNAME

臨時檔案 1 在控制檔案中已重新命名為 /export/home/oracle/oradata/testrac/temp.265.618591239

正在執行命令: SET NEWNAME

正在執行命令: SET NEWNAME

正在執行命令: SET NEWNAME

正在執行命令: SET NEWNAME

正在執行命令: SET NEWNAME

正在執行命令: SET NEWNAME

正在執行命令: SET NEWNAME

正在執行命令: SET NEWNAME

正在執行命令: SET NEWNAME

正在執行命令: SET NEWNAME

正在執行命令: SET NEWNAME

正在執行命令: SET NEWNAME

正在執行命令: SET NEWNAME

正在執行命令: SET NEWNAME

正在執行命令: SET NEWNAME

啟動 restore 01-7 -07

通道 ac1: 正在開始恢復資料檔案備份集通道 ac1: 正在指定從備份集恢復的資料檔案正將資料檔案00003恢復到/data1/oradata/testrac/sysaux.264.618591225正將資料檔案00004恢復到/data1/oradata/testrac/undotbs2.266.618591249正將資料檔案00007恢復到/export/home/oracle/oradata/testrac/zhejiang02.dbf正將資料檔案00011恢復到/export/home/oracle/oradata/testrac/zhejiang04.dbf正將資料檔案00013恢復到/data/oradata/testrac/lt_index_ts01.dbf正將資料檔案00014恢復到/opt/oracle/oradata/testrac/zhejiang06.dbf正將資料檔案00015恢復到/data1/oradata/testrac/gpo.367.624623443通道 ac1: 正在讀取備份段 /data1/backup/ucilji4d_1_1通道 ac2: 正在開始恢復資料檔案備份集通道 ac2: 正在指定從備份集恢復的資料檔案正將資料檔案00001恢復到/data1/oradata/testrac/system.262.618591167正將資料檔案00002恢復到/data1/oradata/testrac/undotbs1.263.618591197正將資料檔案00005恢復到/data1/oradata/testrac/users.267.618591279正將資料檔案00006恢復到/export/home/oracle/oradata/testrac/zhejiang01.dbf正將資料檔案00008恢復到/data1/oradata/testrac/ndmain01.dbf正將資料檔案00009恢復到/export/home/oracle/oradata/testrac/zhejiang03.dbf正將資料檔案00010恢復到/data1/oradata/testrac/ndindex01.dbf正將資料檔案00012恢復到/data1/oradata/testrac/zhejiang05.dbf通道 ac2: 正在讀取備份段 /data1/backup/ubilji13_1_1通道 ac1: 已恢復備份段 1段控制程式碼 = /data1/backup/ucilji4d_1_1 標記 = TAG20070630T185716通道 ac1: 恢復完成, 用時: 00:38:55通道 ac2: 已恢復備份段 1段控制程式碼 = /data1/backup/ubilji13_1_1 標記 = TAG20070630T185716通道 ac2: 恢復完成, 用時: 00:40:30完成 restore 01-7 -07

記憶體指令碼的內容:
{
switch clone datafile all;
}
正在執行記憶體指令碼

資料檔案 1 已轉換成資料檔案副本輸入資料檔案副本 recid=390 stamp=632054607 檔名=/data1/oradata/testrac/system.262.618591167資料檔案 2 已轉換成資料檔案副本輸入資料檔案副本 recid=391 stamp=632054607 檔名=/data1/oradata/testrac/undotbs1.263.618591197資料檔案 3 已轉換成資料檔案副本輸入資料檔案副本 recid=392 stamp=632054607 檔名=/data1/oradata/testrac/sysaux.264.618591225資料檔案 4 已轉換成資料檔案副本輸入資料檔案副本 recid=393 stamp=632054608 檔名=/data1/oradata/testrac/undotbs2.266.618591249資料檔案 5 已轉換成資料檔案副本輸入資料檔案副本 recid=394 stamp=632054608 檔名=/data1/oradata/testrac/users.267.618591279資料檔案 6 已轉換成資料檔案副本輸入資料檔案副本 recid=395 stamp=632054608 檔名=/export/home/oracle/oradata/testrac/zhejiang01.dbf資料檔案 7 已轉換成資料檔案副本輸入資料檔案副本 recid=396 stamp=632054608 檔名=/export/home/oracle/oradata/testrac/zhejiang02.dbf資料檔案 8 已轉換成資料檔案副本輸入資料檔案副本 recid=397 stamp=632054608 檔名=/data1/oradata/testrac/ndmain01.dbf資料檔案 9 已轉換成資料檔案副本輸入資料檔案副本 recid=398 stamp=632054608 檔名=/export/home/oracle/oradata/testrac/zhejiang03.dbf資料檔案 10 已轉換成資料檔案副本輸入資料檔案副本 recid=399 stamp=632054608 檔名=/data1/oradata/testrac/ndindex01.dbf資料檔案 11 已轉換成資料檔案副本輸入資料檔案副本 recid=400 stamp=632054608 檔名=/export/home/oracle/oradata/testrac/zhejiang04.dbf資料檔案 12 已轉換成資料檔案副本輸入資料檔案副本 recid=401 stamp=632054608 檔名=/data1/oradata/testrac/zhejiang05.dbf資料檔案 13 已轉換成資料檔案副本輸入資料檔案副本 recid=402 stamp=632054609 檔名=/data/oradata/testrac/lt_index_ts01.dbf資料檔案 14 已轉換成資料檔案副本輸入資料檔案副本 recid=403 stamp=632054609 檔名=/opt/oracle/oradata/testrac/zhejiang06.dbf資料檔案 15 已轉換成資料檔案副本輸入資料檔案副本 recid=404 stamp=632054609 檔名=/data1/oradata/testrac/gpo.367.624623443完成 Duplicate Db 01-7 -07釋放的通道: c1釋放的通道: c2釋放的通道: ac1釋放的通道: ac2

資料庫恢復完成,下面就可以在STANDBY伺服器上啟動服務日誌的應用了:

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;

資料庫已更改。

SQL> SELECT SEQUENCE#, THREAD# FROM V$ARCHIVED_LOG ORDER BY FIRST_TIME;

未選定行

SQL> CONN SYS/TEST@TESTRAC1 AS SYSDBA已連線。
SQL> ALTER SYSTEM ARCHIVE LOG CURRENT;

系統已更改。

SQL> CONN / AS SYSDBA已連線。
SQL> SELECT SEQUENCE#, THREAD# FROM V$ARCHIVED_LOG ORDER BY FIRST_TIME;

SEQUENCE# THREAD#
---------- ----------
554 1
331 2

至此,RAC環境的DATA GUARD配置初步完成。

為了保證切換後檔案的修改可以自動同步到現在的主庫,還需要修改一下PRIMARY資料庫的初始化引數log_file_name_convertdb_file_name_convert

SQL> ALTER SYSTEM SET LOG_FILE_NAME_CONVERT = '/export/home/oracle/oradata/testrac/', '+DISK/testrac/onlinelog' SCOPE = SPFILE;

系統已更改。

SQL> ALTER SYSTEM SET DB_FILE_NAME_CONVERT='/data1/oradata/testrac/g', '+DISK/testrac/datafile/g',
2 '/data/oradata/testrac/l', '+DISK/testrac/datafile/l',
3 '/data1/oradata/testrac/n', '+DISK/testrac/datafile/n',
4 '/data1/oradata/testrac/s', '+DISK/testrac/datafile/s',
5 '/data1/oradata/testrac/u', '+DISK/testrac/datafile/u',
6 '/export/home/oracle/oradata/testrac/t', '+DISK/testrac/tempfile/t',
7 '/export/home/oracle/oradata/testrac/zhejiang01.dbf', '+DISK/testrac/datafile/zhejiang01.dbf',
8 '/export/home/oracle/oradata/testrac/zhejiang02.dbf', '+DISK/testrac/datafile/zhejiang02.dbf',
9 '/export/home/oracle/oradata/testrac/zhejiang03.dbf', '+DISK/testrac/datafile/zhejiang03.dbf',
10 '/export/home/oracle/oradata/testrac/zhejiang04.dbf', '+DISK/testrac/datafile/zhejiang04.dbf',
11 '/data1/oradata/testrac/zhejiang05.dbf', '+DISK/testrac/datafile/zhejiang05.dbf',
12 '/opt/oracle/oradata/testrac/zhejiang06.dbf', '+DISK/testrac/datafile/zhejiang06.dbf'
13 SCOPE = SPFILE;

系統已更改。

最後總結一下可能會碰到錯誤,以及整個過程需要注意的地方。

首先,由於是RAC環境到單例項的STANDBY,利用RAC環境重建的初始化引數需要將所有RAC相關的內容去掉,確保單例項資料庫可以正常啟動。

第二,對於RAC環境的每個例項,都必須能歸檔到STANDBY資料庫,否則DATA GUARD配置會存在問題。檢查初始化引數,確保對全體例項初始化引數的修改沒有被指定例項初始化引數修改所覆蓋。

第三,根據Oracle RAC環境的備份情況,決定DUPLICATE過程中channel的分配。如果備份過程是兩個例項同時完成,那麼DUPLICATE的時候也需要透過連線RAC的兩個過程,否則很可能會報錯。

第四,對於RUN模式下記得分配AUXILIARY CHANNEL,這個CHANNEL的分配最好和備份時CHANNEL的分配數量一致,這樣可以獲得最佳的效能。如果忘記分配AUXILIARY CHANNEL可能會導致錯誤:

RMAN-05503: 必須至少分配一個輔助通道來執行此命令

第五,記得在STANDBY伺服器上啟動資料庫到NOMOUNT模式。否則可能會報錯:

RMAN-03002: Duplicate Db 命令 ( 07/01/2007 02:52:39 ) 失敗
RMAN-06403:
無法獲得完全授權的會話
RMAN-04006:
來自輔助資料庫的錯誤: ORA-01034: ORACLE 不可用

第六,如果出現下面的錯誤,說明密碼檔案設定有問題,確認密碼檔案已經複製到STANDBY資料庫的$ORACLE_HOME/dbs目錄下,並且檔名複合orapw + $ORACLE_SID

RMAN-00554: 內部恢復管理器程式包初始化失敗
RMAN-04006:
來自輔助資料庫的錯誤: ORA-01031: insufficient privileges

最後,如果備份全庫的時候將歸檔日誌一起備份,並從主機刪除,那麼在建立好DATA GUARD環境後,需要認為的在PRIMARY資料庫恢復已經備份的歸檔,否則會導致ARCHIVELOG GAP的產生,除非指定UNTIL語句,否則RMAN進行DUPLICATE的時候是不會應用已經被歸檔的日誌的。

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

相關文章