テストおよび実稼働環境における増分リストアの使用

プロダクション・データベースの増分バックアップとリカバリーを使用可能にした後は、 増分または差分バックアップ・イメージを使用してテスト用データベースを作成またはリフレッシュできます。 手動または自動増分リストアを使用してこのことを行えます。
実動データベースからテスト・データベースにバックアップ・イメージをリストアするには、 RESTORE DATABASE コマンドで INTO target-database-alias オプションを使用します。 例えば、以下のバックアップ・イメージを持つプロダクション・データベースがあるとします。
   backup db prod
   Backup successful. The timestamp for this backup image is : ts1

   backup db prod incremental
   Backup successful. The timestamp for this backup image is : ts2
以下は、手動増分リストアの 1 例です。
   restore db prod incremental taken at ts2 into test without 
   prompting
   DB20000I  The RESTORE DATABASE command completed successfully.

   restore db prod incremental taken at ts1 into test without 
   prompting
   DB20000I  The RESTORE DATABASE command completed successfully.

   restore db prod incremental taken at ts2 into test without 
   prompting
   DB20000I  The RESTORE DATABASE command completed successfully.

データベース TEST がすでにある場合には、リストア操作により、すでにそこにあるすべてのデータは上書きされます。 データベース TEST がない場合には、リストア・ユーティリティーは、そのデータベースを作成した後、バックアップ・イメージからのデータを用いてそれを移植します。

自動増分リストア操作はデータベース履歴に依存しているため、テスト用データベースがあるかどうかによってリストアのステップは多少変わります。 データベース TEST への自動増分リストアを実行するためには、 その履歴がデータベース PROD のバックアップ・イメージ履歴を含んでいなくてはなりません。 バックアップ・イメージのデータベース履歴は、以下のいずれかが当てはまるときに、既に存在しているデータベース TEST 用の任意のデータベース履歴を置き換えます。
  • RESTORE DATABASE コマンドが出されたときにデータベース TEST が存在しない。
  • RESTORE DATABASE コマンドが出された時にデータベース TEST が存在するが、データベース TEST の履歴にレコードが含まれていない。
以下の例は、存在しないデータベース TEST への自動増分リストアを示しています。
   restore db prod incremental automatic taken at ts2 into test without 
   prompting
   DB20000I  The RESTORE DATABASE command completed successfully.
リストア・ユーティリティーは、TEST データベースを作成し、それにデータを設定します。
データベース TEST が存在し、データベース履歴が空でないならば、 以下のようにして、自動増分リストア操作の前にデータベースをドロップする必要があります。
   drop db test
   DB20000I  The DROP DATABASE command completed successfully.

   restore db prod incremental automatic taken at ts2 into test without 
   prompting
   DB20000I  The RESTORE DATABASE command completed successfully.
データベースをドロップしない場合は、 RESTORE DATABASE コマンドを発行する前に、遠い将来のタイム・スタンプと WITH FORCE OPTION パラメーターを指定して PRUNE HISTORY コマンドを発行できます。
   connect to test
   Database Connection Information
   
   Database server            = server_id
   SQL authorization ID       = id
   Local database alias       = TEST

   prune history 9999 with force option
   DB20000I  The PRUNE command completed successfully.

   connect reset
   DB20000I  The SQL command completed successfully.
   restore db prod incremental automatic taken at ts2 into test without 
   prompting
   SQL2540W  Restore is successful, however a warning "2539" was 
   encountered during Database Restore while processing in No 
   Interrupt mode.
この場合、 RESTORE DATABASE コマンドは、データベース TEST が存在しない場合と同じように動作します。
データベース TEST が存在し、データベース履歴が空の場合、 自動増分リストア操作の前にデータベース TEST をドロップする必要はありません。
   restore db prod incremental automatic taken at ts2 into test without 
   prompting
   SQL2540W  Restore is successful, however a warning "2539" was 
   encountered during Database Restore while processing in No 
   Interrupt mode.

フル・データベース・バックアップを最初に取らずに、 テスト用データベースの増分または差分バックアップを取り続けることができます。 とはいえ、増分または差分イメージの 1 つをリストアする必要がある場合には、手動増分リストアを実行する必要があるでしょう。 この要件が存在するのは、自動増分リストア中にリストアされるそれぞれのバックアップ・イメージが同じデータベース別名から作成されることを自動増分リストア操作が要求しているためです。

プロダクション・バックアップ・イメージを使用してリストア操作を完了した後に、 テスト用データベースのフル・データベース・バックアップを取った場合には、 増分または差分バックアップを取ることができ、手動または自動モードのいずれかを使用してそれをリストアできます。