リダイレクト・リストア操作の実行

データベースのリストア操作では、データベースを再作成するために、データベースのバックアップ・イメージを使用します。

次の状況では、リダイレクト・リストア操作を使用します。
  • ソース・マシンとは別のターゲット・マシンにバックアップ・イメージをリストアする場合
  • 表スペース・コンテナーを異なる物理ロケーションにリストアする場合
  • 1 つ以上のコンテナーがアクセス不能であるためにリストア操作に失敗した場合
  • 定義済みのストレージ・グループのパスを再定義する場合
制約事項:
リダイレクト・リストアは、データを 1 つのオペレーティング・システムから別のオペレーティング・システムに移動するのに使うことはできません。
リストア処理中にストレージ・グループを作成したりドロップしたりすることはできません。
ストレージ・グループに関連付けられているすべての表スペースをリストアする場合でも、表スペースのリストア処理中にそのストレージ・グループのパスを変更することはできません。
増分バックアップ・イメージを使用したリダイレクト・リストアを実行するためのプロセスは、非増分バックアップ・イメージを使用したリダイレクト・リストアを実行するためのプロセスに類似しています。 以下のいずれかの方法を使用します。
  • REDIRECT パラメーターを指定して RESTORE DATABASE コマンドを発行し、データベースの増分リストアに使用するバックアップ・イメージを指定します。
  • バックアップ・イメージからリダイレクト・リストア・スクリプトを生成してから、必要に応じてこのスクリプトを変更します。
RESTORE DATABASE コマンドのアプローチは、2 段階のデータベース・リストア・プロセスで、表スペース・コンテナーまたはストレージ・グループのパスを定義する段階が途中にあります。 リダイレクト・リストアを実行するには、以下のようにします。
  1. REDIRECT パラメーターを指定して RESTORE DATABASE コマンドを発行します。
  2. 以下のいずれかのステップを実行します。
    • SET TABLESPACE CONTAINERS コマンドを発行して、表スペース・コンテナーを定義する。
    • SET STOGROUP PATHS コマンドを発行して、リストアするデータベースのストレージ・グループ・パスを定義する。
  3. 再び RESTORE DATABASE コマンドを発行します。今回は CONTINUE パラメーターを指定します。

RESTORE CONTINUE コマンドを発行すると、新しいパスが、関連するすべての表スペース用の表スペース・コンテナー・パスになります。 LIST TABLESPACE CONTAINERS コマンドまたは GET SNAPSHOT FOR TABLESPACES コマンドを、SET STOGROUP PATHS の後、かつ RESTORE CONTINUE コマンドの前に発行すると、表スペース・コンテナー・パスの出力は、SET STOGROUP PATHS コマンドを使用して指定した新規パスを反映しません。

リダイレクト・リストア操作中に、ディレクトリー・コンテナーおよびファイル・コンテナーは、 存在していなければ自動的に作成されます。 データベース・マネージャーは、デバイス・コンテナーを自動的には作成しません。

Db2® データベース製品は、表スペース・コンテナーの非自動ストレージ DMS 表スペース、および自動ストレージ表スペースのストレージ・グループ・パスを追加、変更、または除去するための SQL ステートメントを提供します。 リダイレクト・リストアは、非自動ストレージ SMS 表スペース・コンテナー構成を変更する唯一の方法です。

REDIRECT パラメーターを指定して RESTORE DATABASE コマンドを発行することにより、表スペース・コンテナーを再定義したり、ストレージ・グループ・パスを変更したりすることができます。

表スペース・コンテナーのリダイレクトにより、表スペース・コンテナーを管理するうえで非常に柔軟な対応ができます。 表スペース・コンテナー・パスをリダイレクトするのと似た方法で、バックアップ・イメージからデータ・ページをリストアする前に、データベースのストレージ・グループ構成を変更できます。 バックアップ・イメージの作成後にストレージ・グループの名前を変更した場合、 SET STOGROUP PATHS コマンドによって指定されるストレージ・グループ名は、最新の名前ではなく、バックアップ・イメージのストレージ・グループ名を参照します。

パーティション・データベース環境におけるリダイレクト・リストア操作の実行

パーティション・データベース環境では、リダイレクト・データベース・リストア時にストレージ・グループ・パスを新規ストレージ・パスにリダイレクトできるのは、カタログ・データベース・パーティションからリダイレクトする場合のみです。 他のすべてのデータベース・パーティションの場合は、ストレージ・グループ・パスをカタログ・パーティションと同期させる必要があります。

カタログ・パーティション上で ストレージ・グループ・パスを変更すると、すべての非カタログ・パーティションが RESTORE_PENDING 状態になります。 ストレージ・グループ・パスをリダイレクトすると、他のすべてのデータベース・パーティションより先にカタログ・パーティションをリストアしなければなりません。 カタログ・データベース・パーティションをリストアした後で、カタログ以外のデータベース・パーティションを、ストレージ・パスのリダイレクトなしで、並行してリストアできます。 カタログ以外のデータベース・パーティションは、カタログ・データベース・パーティションに指定された新規のストレージ・グループ・パスを自動的に取得します。 異なるデータベース (名前、インスタンス、またはシードが異なる) をリストアするときに、 ストレージ・グループ・パスが暗黙的に変更される場合にも、新規ストレージ・グループ・パスが自動的に取得されます。

最後にバックアップを取った後にストレージ・グループ・パスを変更した場合も、そのバックアップ・イメージを使用して (ただし、ストレージ・グループ・パスは異なる)、任意のデータベース・パーティション上でリストアを実行できます。 このリストアは、リダイレクト・リストアとはみなされません。 このバックアップ・イメージからリストアすると、データベース・パーティションは、バックアップが作成されたときに定義されたストレージ・グループ・パスを一時的に使用するようになります。 ロールフォワード・リカバリーを実行して、ストレージ・グループ・パスの変更を適用し、すべてのデータベース・パーティションを再同期します。

例 1
SET TABLESPACE CONTAINERS コマンドで表スペース・コンテナーを定義することにより、データベース SAMPLE に対して、表スペース・コンテナーのリダイレクト・リストアを実行できます。
   db2 restore db sample redirect without prompting
   SQL1277W A redirected restore operation is being performed. 
   During a table space restore, only table spaces being restored can 
   have their paths reconfigured. During a database restore, storage 
   group storage paths and DMS table space containers can be reconfigured. 

   DB20000I The RESTORE DATABASE command completed successfully.

   db2 set tablespace containers for 2 using (path 'userspace1.0', path    
   'userspace1.1')
   DB20000I The SET TABLESPACE CONTAINERS command completed successfully.

   db2 restore db sample continue
   DB20000I The RESTORE DATABASE command completed successfully.
例 2
SET STOGROUP PATHS コマンドを使用して、以下のように定義済みストレージ・グループのパスを再定義できます。
   RESTORE DB SAMPLE REDIRECT

   SET STOGROUP PATHS FOR sg_hot ON '/ssd/fs1', '/ssd/fs2'
   SET STOGROUP PATHS FOR sg_cold ON '/hdd/path1', '/hdd/path2'

   RESTORE DB SAMPLE CONTINUE
例 3
以下は、別名が MYDB であるデータベースの典型的な非増分リダイレクト・リストアのシナリオです。
  1. 次のように、REDIRECT オプションを指定して RESTORE DATABASE コマンドを発行します。
       db2 restore db mydb replace existing redirect
  2. 再定義するコンテナーを持つ表スペースごとに、SET TABLESPACE CONTAINERS コマンドを発行します。 例えば、Windows 環境の場合は、以下のようにします。
       db2 set tablespace containers for 5 using
              (file 'f:\ts3con1'20000, file 'f:\ts3con2'20000)                
    リストアしたデータベースのコンテナーが、このステップで指定したものであることを検査するために、コンテナーの場所が再定義されているすべての表スペースに対して LIST TABLESPACE CONTAINERS コマンドを発行します。
  3. ステップ 1 および 2 が正常終了した後、次を発行する。
       db2 restore db mydb continue

    これはリダイレクト・リストア操作の最終ステップです。

  4. ステップ 3 が失敗した場合、またはリストア操作を打ち切った場合、 リダイレクト・リストアはステップ 1 から再始動できる。
注:
  1. ステップ 1 が正常終了した後でステップ 3 が完了する前に、 次を発行してリストア操作を打ち切ることができる。
       db2 restore db mydb abort
  2. ステップ 3 が失敗した場合、またはリストア操作を打ち切った場合、 リダイレクト・リストアはステップ 1 から再始動できる。
例 4
以下は、別名が MYDB であり、以下のバックアップ・イメージを持つデータベースの、 典型的な手動増分リダイレクト・リストアのシナリオです。
   backup db mydb
   Backup successful. The timestamp for this backup image is : <ts1>

   backup db mydb incremental
   Backup successful. The timestamp for this backup image is : <ts2>
  1. 次のように、INCREMENTAL および REDIRECT オプションを指定して RESTORE DATABASE コマンドを発行します。
       db2 restore db mydb incremental taken at <ts2> replace existing redirect
  2. 再定義する必要があるコンテナーを持つ表スペースごとに、 SET TABLESPACE CONTAINERS コマンドを発行します。 例えば、Windows 環境の場合は、以下のようにします。
       db2 set tablespace containers for 5 using
              (file 'f:\ts3con1'20000, file 'f:\ts3con2'20000)
    リストアしたデータベースのコンテナーが、 このステップで指定したものであることを検査するために、 LIST TABLESPACE CONTAINERS コマンドを発行します。
  3. ステップ 1 および 2 が正常終了した後、次を発行する。
       db2 restore db mydb continue
  4. 残りの増分リストア・コマンドは、以下のように発行することができるようになります。
       db2 restore db mydb incremental taken at <ts1>
       db2 restore db mydb incremental taken at <ts2>
    これはリダイレクト・リストア操作の最終ステップです。
注:
  1. ステップ 1 が正常終了した後でステップ 3 が完了する前に、 次を発行してリストア操作を打ち切ることができる。
       db2 restore db mydb abort
  2. ステップ 3 が正常終了した後でステップ 4 のすべての必要なコマンドを実行する前に、 次を発行してリストア操作を打ち切ることができます。
       db2 restore db mydb incremental abort
  3. ステップ 3 が失敗した場合、またはリストア操作を打ち切った場合、 リダイレクト・リストアはステップ 1 から再始動できる。
  4. いずれかのリストア・コマンドがステップ 4 で失敗した場合、 失敗したコマンドを再実行してリストア・プロセスを継続できます。
例 5
以下は、同じデータベースでの典型的な自動増分リダイレクト・リストア・シナリオです。
  1. 次のように、INCREMENTAL AUTOMATIC および REDIRECT オプションを指定して RESTORE DATABASE コマンドを発行します。
       db2 restore db mydb incremental automatic taken at <ts2>
              replace existing redirect
  2. 再定義する必要があるコンテナーを持つ表スペースごとに、 SET TABLESPACE CONTAINERS コマンドを発行します。 例えば、Windows 環境の場合は、以下のようにします。
       db2 set tablespace containers for 5 using
              (file 'f:\ts3con1'20000, file 'f:\ts3con2'20000)
    リストアしたデータベースのコンテナーが、 このステップで指定したものであることを検査するために、 LIST TABLESPACE CONTAINERS コマンドを発行します。
  3. ステップ 1 および 2 が正常終了した後、次を発行する。
       db2 restore db mydb continue
    これはリダイレクト・リストア操作の最終ステップです。
注:
  1. ステップ 1 が正常終了した後でステップ 3 が完了する前に、 次を発行してリストア操作を打ち切ることができる。
       db2 restore db mydb abort
  2. ステップ 3 が失敗した場合、またはリストア操作を打ち切った場合、 リダイレクト・リストアは以下を実行した後ステップ 1 から再始動できます。
       db2 restore db mydb incremental abort