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 で、データベース バックアップを処理するために Recovery Manager カタログを使用するかどうかをたずねられたら、「y」を指定します。
Are you planning on using a Recovery Manager catalog to handle database backups (Recommended)?(Y/N) Y
Oracle インスタンスの名前を指定するように求めるメッセージが表示されたら、元のインスタンス ID を指定します。
Oracle instance id to be used by this agent [<Enter> to end]: src この Oracle インスタンス用の ORACLE_HOME 環境変数:(default:/opt/oracle/10gR2):
Recovery Manager サービス名を指定するように求めるメッセージが表示されたら、RMAN カタログ データベースの設定済みの TNS 名を指定します。
Since you have configured the Recovery Manager, please provide the Recovery Manager service name for database src. Recovery Manager service name : catdb
# Node where the original backup was made from SBT_ORIGINAL_CLIENT_HOST=Server-A
sysdba ユーザとして元のデータベース インスタンス src に接続します。
$ sqlplus "/ as sysdba" Generate pfile from spfile. SQL>create pfile from spfile;
init<$ORACLE_SID>.ora という名前のファイルが、パス $ORACLE_HOME/dbs に作成されます。このファイルを、別のサーバ Server-B 上の同じパスにコピーします。
既存のデータベース名が「tmpdb」であると仮定します。
データベース「tmpdb」の spfile から pfile を作成します。
sysdba ユーザとして元のデータベース インスタンス「tmpdb」に接続します。
$export ORACLE_SID=tmpdb $sqlplus "/ as sysdba" Generate pfile from spfile. SQL> create pfile from spfile;
「inittmpdb.ora」というファイルがパス ORACLE_HOME/dbs に作成されます。このファイルを「initsrc.ora」にコピーし、そのファイル内のすべての SID 名「temdb」を「src」に置き換えてファイルを保存します。
$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> }
代わりに、特定のバックアップ ピースから制御ファイルをリストアして Point-in-Time リストアを実行する場合、以下の手順に従います。
$ 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 © 2016 |
|