テストおよび実稼働環境における増分リストアの使用
プロダクション・データベースの増分バックアップとリカバリーを使用可能にした後は、
増分または差分バックアップ・イメージを使用してテスト用データベースを作成またはリフレッシュできます。 手動または自動増分リストアを使用してこのことを行えます。
実動データベースからテスト・データベースにバックアップ・イメージをリストアするには、 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 つをリストアする必要がある場合には、手動増分リストアを実行する必要があるでしょう。 この要件が存在するのは、自動増分リストア中にリストアされるそれぞれのバックアップ・イメージが同じデータベース別名から作成されることを自動増分リストア操作が要求しているためです。
プロダクション・バックアップ・イメージを使用してリストア操作を完了した後に、 テスト用データベースのフル・データベース・バックアップを取った場合には、 増分または差分バックアップを取ることができ、手動または自動モードのいずれかを使用してそれをリストアできます。