當直接使用 RMAN 將資料庫還原至替代伺服器時,需要下列先決條件:
例如,請考慮下列案例:
附註:下列程序中的案例,係假設要將 <Server-A> 備份的資料庫還原到 <Server-B>,並保留原資料庫名稱。此外亦假設原始主機與目標主機的目錄結構相同。本案例另外還會假設您使用的是 Oracle 10gR2。
若要將資料庫還原至替代伺服器,請執行下列步驟:
src:/opt/oracle/10gR2:N
例如:
$cd $ORACLE_BASE/admin $mkdir src $mkdir adump bdump cdump dpdump pfile udump $mkdir -p $ORACLE_BASE/oradata/src $mkdir -p $ORACLE_BASE/flash_recovery_area/SRC
# /opt/CA/ABoraagt/orasetup
當 orasetup 提示您使用「復原管理員」目錄來處理資料庫備份時,指定「y」。
您打算使用「復原管理員」目錄來處理資料庫備份嗎?(建議)(Y/N) Y
當 orasetup 提示您指定 Oracle 執行個體的名稱時,請指定原始的執行個體 ID。
此代理程式將使用的 Oracle 執行個體 ID [按 <Enter> 結束]:src 此 Oracle 執行個體的 ORACLE_HOME 環境值:(預設:/opt/oracle/10gR2):
當 orasetup 提示您指定「復原管理員」服務名稱時,請指定已配置的 RMAN 目錄資料庫的 TNS 名稱。
您已配置「復原管理員」,因此請提供資料庫 src 的「復原管理員」服務名稱。 「復原管理員」服務名稱:catdb
# 製作原始備份的來源節點 SBT_ORIGINAL_CLIENT_HOST=Server-A.
以 sysdba 使用者的身分連線至原始資料庫執行個體 src。
$ sqlplus "/ as sysdba" 從 spfile 產生 pfile。 SQL>create pfile from spfile;
$ORACLE_HOME/dbs 路徑中會建立名為 init<$ORACLE_SID>.ora 的檔案,請將該檔案複製到替代目標伺服器 B 上的相同路徑中。
假設現有的資料庫名稱為 'tmpdb'。
從 spfile 為資料庫 'tmpdb' 建立 pfile。
以 sysdba 使用者的身分連線至資料庫執行個體 'tmpdb'。
$export ORACLE_SID=tmpdb $sqlplus "/ as sysdba" 從 spfile 產生 pfile。 SQL> create pfile from spfile;
ORACLE_HOME/dbs 路徑中會建立 "inittmpdb.ora" 檔案。請將該檔案複製到 "initsrc.ora",並在此檔案中以 'src' 取代所有 SID 名稱 'temdb',然後儲存檔案。
$export ORACLE_SID=src $sqlplus /nolog SQL>conn sys/passw0rd as sysdba SQL>startup nomount pfile=$ORACLE_HOME/dbs/init$ORACLE_SID.ora SQL>exit
$rman catalog rman/rman@catdb RMAN> set dbid=<source database db_id value> RMAN> connect target system/passw0rd; RMAN>run { 2>allocate channel ch1 type sbt parms='SBT_LIBRARY=/opt/Arcserve/ABoraagt/libobk64.so'; 3>restore spfile; 4>release channel ch1; 5>}
附註:若為 32 位元 Oracle 資料庫,SBT_LIBRARY 會使用 libobk32.so。若為 64 位元 Oracle 資料庫,SBT_LIBRARY 會使用 libobk64.so。
還原工作會在 Arcserve Backup 伺服器工作佇列上執行。工作完成後,spfile 資料庫會還原至 $ORACLE_HOME/dbs 路徑。
關閉資料庫。
RMAN>shutdown immediate; RMAN>exit
使用您剛還原的 spfile,以 "nomount" 選項重新啟動資料庫。
$sqlplus /nolog SQL>conn sys/passw0rd as sysdba SQL>startup nomount SQL>quit
$rman catalog rman/rman@catdb RMAN> set dbid=<source database db_id value> RMAN> connect target system/passw0rd; RMAN> run { 2> allocate channel dev1 type 'sbt_tape' parms='SBT_LIBRARY=/opt/Arcserve/ABoraagt/libobk64.so'; 3> restore controlfile; 4> release channel dev1; 5> }
或者,如果您要從特定備份片段還原控制檔案,以便執行特定時點還原,請執行下列步驟:
$ rman catalog rman/rman@catdb RMAN> set dbid=<source database db_id value> RMAN> connect target system/passw0rd; RMAN> run { 2> allocate channel dev1 type 'sbt_tape' parms='SBT_LIBRARY=/opt/Arcserve/ABoraagt/libobk64.so'; 3> restore controlfile from ‘Y’; 4> release channel dev1; 5> }
若要取得 'Y' (表示備份片段資訊),請執行下列指令:
RMAN> set dbid=<dbid>; RMAN> list backup of controlfile;
還原工作會在 Arcserve Backup 伺服器工作佇列上執行。工作完成後,資料庫控制檔案會還原至 $ORACLE_HOME/oradata/$ORACLE_SID 路徑。
$sqlplus / as sysdba SQL>alter database mount; SQL>exit
$rman catalog rman/rman@catdb RMAN> set dbid=<source database db_id value> RMAN> connect target system/passw0rd; RMAN>run { 2>allocate channel ch1 type sbt parms='SBT_LIBRARY=/opt/Arcserve/ABoraagt/libobk64.so'; 3>restore database; 4>restore archivelog all; 5>release channel ch1; 6>}
還原工作會在 Arcserve Backup 伺服器工作佇列上執行。工作完成後,資料庫檔案與封存日誌便已還原。
$sqlplus / as sysdba SQL> recover database using backup controlfile until cancel
SQL> alter database open resetlogs;
Copyright © 2017 |
|