Database JUNKY

MySQL,MariaDBを中心としたブログです

DB2:オンラインバックアップ&リダイレクトリストア&ロールフォワードの三段技

db2

IBM DB2にオンラインバックアップからリダイレクトリストアを実施し、更にアーカイブログからロールフォワード回復する手順をまとめました、この手法は、障害からの復旧のみならずデータベースの移動にも役立ちます。

①オンラインバックアップの確認(既存)

  • /home/develop/sqllib/bin/db2 backup database RESTOREDB online to /home/develop/backup compress include logs without  prompting
  • /bin/mv /home/develop/backup/develop /usr/local/export/backup/BACKUP-DATA
  • /bin/chmod 777 -R /usr/local/export/backup/BACKUP-DATA/

②テーブルスペースを作成するディレクトリの作成

  • $ mkdir /db2/RESTORE_SOURCE/
  • $ chmod 777 /db2/RESTORE_SOURCE/

③ログターゲットディレクトリを作成

  • $ mkdir /home/develop/logtarget

④DBのリストアを実施

  • $ db2 "restore db RESTOREDB from /home/develop/backup/ taken at 20101203043003 to /db2/RESTORE_SOURCE/ logtarget /home/develop/logtarget/ redirect without prompting"

  • オプション説明

  • from リストアする対象のディレクトリを指定
  • taken at バックアップのタイム・スタンプを必要とする。同じディレクトリーに複数のバックアップ・イメージがある場合、こ のパラメーターが必須である。タイム・スタンプは、バックアップが正常に完了した後に表示された形式(yyyymmddhhnnss)で指定 する。また、バックアップ・イメージを一意に識別するものであれば、部分的なタイム・スタンプであっても構わない。
  • logtarget 通常のリストアでは、LOGTARGETオプションを指定されない場合、ログ・ファイルはバックアップ・イメージからリス トアされません。バックアップ・イメージからログ・ファイルを抽出する際のターゲット・ディレクトリーとして使用する、  デ ータベース・サーバー上の既存のディレクトリーの絶対パス名。
  • redirect リダイレクトしたリストア操作を指定します。リダイレクトしたリストア操作を完了するには、 このコマンドの後に  1 つまたは複数の SET TABLESPACE CONTAINERS コマンドを続け、 次に CONTINUE オプションを指定して RESTORE DATABASE コマ ンドを続ける必要があります。
  • without prompting リストア操作を無人で実行するように指定します。通常はユーザー介入を必要とするアクションでは、エラー・メッセージが戻されます。テープやディスケットなどの取り外し可能メディア装置を使用している場合、 このオプションを指定していても、その装置が終わるとプロンプトが出されます。

実行結果 SQL1277N  復元で、1 つ以上の表スペース・コンテナーがアクセス不能であると検出されたか、または、「記憶域を定義しなくてはならない」状態に設定されています。 DB20000I  RESTORE DATABASE コマンドが正常に終了しました。 ⑤リダイレクトする対象のテーブルスペースを作成しておく。

  • $ db2 "set tablespace containers for 3 using (FILE '/db2/RESTORE_SOURCE/RESTORE_TABLESPACE1.ts' 5000000)"
  • $ db2 "set tablespace containers for 5 using (FILE '/db2/RESTORE_SOURCE/RESTORE_TABLESPACE2.ts' 5000000)"

  • オプション説明

  • using ([FILE or PATH] '[FILEならファイルの絶対パス、PATHならディレクトリの絶対パス]' [ページサイズ])

⑥リストアできなかったテーブルスペースに対して再度リストアをかける。 ※without promptingでリストアできなかった部分のリストア

  • $ db2 restore db RESTOREDB continue
DB20000I  SET TABLESPACE CONTAINERS コマンドが正常に終了しました。 ⑦ロールフォワード回復の実施
  • $ db2 "rollforward db RESTOREDB to end of logs and stop overflow log path (/home/develop/logtarget) noretrieve"

  • オプション説明

  • to end of logs データベース構成パラメーター logpath にリストされたすべてのオンライン・アーカイブ・ログ・ファイルにある、コミットされたすべてのトランザクションが適用されることを指定します。
  • and stop ログ・レコードのロールフォワードを停止し、未完了トランザクションロールバックし、データベースのロールフォワード・ペンディング状態をオフにすることによって、ロールフォワード・リカバリー処理を完了します。これによって、ロールフォワードされているデータベースまたは表スペースにアクセスできるようになります。これらのキーワードは同等です。いずれかを指定し、両方は指定しないでください。キーワード AND を使用すると、 一度に複数の操作を指定することができます (例えば、 db2 rollforward db sample to end of logs and complete)。ある時点まで表スペースをロールフォワードする場合、この表スペースはバックアップ・ペンディング状態になります。
  • overflow log path リカバリー中に、アーカイブ・ログを検索する代替のログ・パスを指定します。
  • logpath データベース構成パラメーターによって指定されている以外の場所にログ・ファイルが移動された場合には、このパラメーターを使用してください。パーティション・データベース環境では、これはすべてのデータベース・パーティションの (完全修飾) デフォルト・オーバーフロー・ログ・パスになります。単一パーティション・データベースには、相対オーバーフロー・ログ・パスを指定できます。OVERFLOW LOG PATH コマンド・パラメーターは、 データベース構成パラメーター overflowlogpath の値 (存在する場合) を上書きします。
  • noretrieve 既存のログ以上のログを検索しようとしないオプション

db2 "rollforward db RESTOREDB to 2010-12-03-13.39.00.0000 using local time overflow log path (/home/develop/logtarget)"は使えない。リダイレクトリストアではポイントインタイム指定のリカバリは使えないとのこと。

※リダイレクトリストアするためにはテーブルスペースの情報が必要。 既存のものが故障した際にどの故障パターンでどこまで確認できるかどうかは調査中。 カテゴリー: DB2, Database, V8系, V9系   タグ: DB2, RESTORE, rollforward, rollingforward, テーブルスペース, リストア, リダイレクト, ロールフォワード, 回復, 移動   この投稿のパーマリンクVNC Serverの画面解像度を変更する 1444 * 900に OpenFilerの話:② NFSサーバの構築