スケーラブルデータベースサーバ HiRDB Version 8 コマンドリファレンス(Windows(R)用)

[目次][索引][前へ][次へ]

19.2 データベースを回復するために必要な知識

<この節の構成>
(1) データベースの回復単位
(2) 回復対象のRDエリアの状態
(3) バックアップ取得モードとの関係
(4) マスタディレクトリ用RDエリアを回復する場合
(5) 構成変更前に取得したバックアップファイルを使用して,バックアップだけの回復をする場合
(6) 最新の状態への回復
(7) 最新の状態以外に回復する場合
(8) アンロードログファイル又はシステムログファイルを使用してデータベースを回復した場合
(9) アンロードレスシステムログ運用の場合の回復
(10) 差分バックアップ機能を使用してバックアップからの回復
(11) 範囲指定の回復
(12) データベース回復ユティリティを実行するときのHiRDBの状態について

(1) データベースの回復単位

データベースは次に示す単位で回復できます。回復単位はデータベース回復ユティリティのオプションで指定します。データベースの回復単位を次の表に示します。

表19-1 データベースの回復単位

データベースの回復単位 説明 オプション
システム単位 全RDエリアを回復の対象とします。ユーザ用RDエリア以外(例えば,マスタディレクトリ用RDエリアなど)も回復対象になります。 -a
バックアップファイル単位 バックアップファイル中のRDエリアを回復の対象とします。 -c
ユニット単位 ユニット下の全RDエリアを回復の対象とします。 -u
サーバ単位 サーバ下の全RDエリアを回復の対象とします。 -s
RDエリア単位 特定のRDエリアを回復します。RDエリア名を正規表現することで,グループ化したRDエリアを同時に回復できます。 -r

注※
HiRDB/パラレルサーバの場合に該当します。HiRDB/シングルサーバの場合は該当しません。

(2) 回復対象のRDエリアの状態

回復対象のRDエリア(マスタディレクトリ用RDエリアは除きます)は,閉塞かつクローズ状態(pddblsコマンドの実行結果がCLOSE HOLD(CMD)又はCLOSE HOLDの状態)でなければなりません。

インメモリRDエリアを回復する場合は,インメモリRDエリアとインメモリデータバッファが次に示す状態である必要があります。

前記以外の状態の場合は,pdmemdb -k relsコマンドでいったんインメモリ化を解除した後に,pdrstrコマンドを実行してください。

(3) バックアップ取得モードとの関係

データベース複写ユティリティの-Mオプションにsを指定して取得したバックアップファイルの場合は,バックアップファイルだけでは回復できません。この場合,同時にアンロードログファイル又はシステムログファイルも使用する必要があります。

(4) マスタディレクトリ用RDエリアを回復する場合

RDエリアを回復するとき,回復対象RDエリアをpdholdコマンドで閉塞かつクローズ状態にする必要があります。しかし,マスタディレクトリ用RDエリアは閉塞かつクローズ状態にできません。このため,マスタディレクトリ用RDエリアを回復する場合は,いったんHiRDBを終了して,その後pdstart -rコマンドでHiRDBを開始する必要があります。

したがって,全RDエリアを回復する場合はマスタディレクトリ用RDエリアの回復も含まれるため,pdstart -rコマンドでHiRDBを開始する必要があります。

(5) 構成変更前に取得したバックアップファイルを使用して,バックアップだけの回復をする場合

構成変更(HiRDBファイルの追加)前に取得したバックアップファイルを使用して,バックアップだけの回復をする場合は,RDエリアを構成するHiRDBファイルをすべて削除してから回復してください。

(6) 最新の状態への回復

RDエリアを最新の状態に回復するには,バックアップ及びバックアップ取得以降に出力されたシステムログが必要です。したがって,現用のシステムログファイルに格納されているシステムログが必要になります。現用のシステムログファイルはアンロードできないため,pdlogswapコマンドで現用ファイルをいったんスワップしてください。その後,元現用ファイルの内容をアンロードしてください。

(7) 最新の状態以外に回復する場合

障害が発生したRDエリアを最新の状態に回復する場合は,そのRDエリアだけが回復の対象になります。しかし,最新の状態以外(バックアップ取得時点又は任意の同期点)に回復する場合は,障害が発生したRDエリアだけではなく,関連するRDエリアも一緒に回復する必要があります。

例えば,表格納RDエリアに障害が発生し,インデクス格納RDエリアは正常の場合,表格納RDエリアだけをバックアップ取得時点に戻すと,表データはバックアップ取得時点に戻り,インデクスデータは最新の状態となり,両者が不一致な状態になります。そのため,インデクス格納RDエリアも表格納RDエリアと一緒にバックアップ取得時点に回復する必要があります。

ポイント
関連するRDエリアはまとめてバックアップを取得し,まとめて回復してください。ここでいう関連するRDエリアとは,データの整合性を守る必要があるRDエリアのことです。例えば,次に示すRDエリアが該当します。
  • インデクス格納RDエリア(インデクスが定義されている場合)
  • ユーザLOB用RDエリア(LOB列が定義されている場合)
  • システム用RDエリア(定義系SQLを実行した場合など)
  • 横分割表を格納しているすべてのRDエリア(表を横分割している場合)
データの整合性を守る必要があるRDエリア(関連するRDエリア)については,マニュアル「HiRDB Version 8 システム運用ガイド」の「同時にバックアップを取得する必要があるRDエリア」を参照してください。
参考
インメモリRDエリアを最新の状態以外に回復する場合も,ここで説明した内容が適用されます。

(8) アンロードログファイル又はシステムログファイルを使用してデータベースを回復した場合

アンロードログファイル又はシステムログファイルを使用してデータベースを回復した場合,回復完了後に必ず回復したRDエリアのバックアップを取得してください。ここでバックアップを取得しないと,その後障害が発生したときに,データベース回復ユティリティでデータベースを障害発生直前の同期点まで回復できなくなります。

アンロードログファイルを使用して回復する場合,必要なアンロードログファイルをすべて指定する必要があります。必要なアンロードログファイルが足りない場合,メッセージ(KFPR16203-E,KFPR16301-E)が出力され,エラー終了します。

(9) アンロードレスシステムログ運用の場合の回復

アンロードレスシステムログ運用の回復では,システムログをアンロードしなくても,データベースの障害発生時に,直接システムログをデータベース回復ユティリティの入力情報にしてデータベースを回復します。この運用方法をアンロードレスシステムログ運用といいます。

アンロードレスシステムログ運用には,ログポイントという概念があります。データベースに障害が発生してデータベースを回復する場合,バックアップ取得時点よりも前のシステムログは必要ありません。このデータベースの回復に必要なシステムログと必要のないシステムログを区別する位置をログポイントといいます。ログポイントは,データベース複写ユティリティでバックアップを取得すると設定されます。

アンロードレスシステムログ運用の回復をする場合,-L及び-zオプションを指定します。

アンロードレスシステムログ運用については,マニュアル「HiRDB Version 8 システム運用ガイド」を参照してください。

(10) 差分バックアップ機能を使用してバックアップからの回復

差分バックアップ機能を使用して取得したバックアップから回復する場合,-g及び-Kオプションを指定します。

差分バックアップ機能については,マニュアル「HiRDB Version 8 システム運用ガイド」を参照してください。

(11) 範囲指定の回復

アンロードログファイル又はシステムログファイルを指定して回復する場合,回復対象とする時間の範囲を指定できます。この範囲指定は,回復対象のRDエリアごとにも指定できます。範囲指定をした場合,指定した範囲内で同期点を迎えたトランザクションが出力するログだけが回復対象となります。範囲指定の回復をする場合に対象となるログの例を次に示す。範囲指定の回復については,マニュアル「HiRDB Version 8 システム運用ガイド」を参照してください。

範囲指定の回復の概要を次の図に示します。

図19-4 範囲指定の回復の概要

[図データ]

〔説明〕
トランザクション1のように,開始時点で実行中のトランザクションがある場合は,開始時点以降のログを使用して回復します。
トランザクション3のように,回復終了時刻までに同期点のないトランザクションについては回復しません。指定した範囲内で同期点を迎えたトランザクションについては,同期点までのログを使用して回復します。なお,トランザクション3のように,同期点のないトランザクションがある場合にはその旨ワーニングメッセージを出力します。

(12) データベース回復ユティリティを実行するときのHiRDBの状態について

  1. データベース回復ユティリティは,HiRDBが稼働中のときだけ実行できます。
  2. データベース回復ユティリティは,シングルサーバ又はシステムマネジャがあるサーバマシンで実行してください。
  3. データベース回復ユティリティを実行する場合,回復対象のRDエリアがあるユニット,及びアンロードログファイル,システムログファイル,又はバックアップファイルを入力するユニットが開始されていなければなりません。また,回復対象のRDエリアがあるサーバは,バックアップファイルだけを入力とする場合は開始されていなくてもよいが,アンロードログファイル又はシステムログファイルを入力とする場合は開始されていなければなりません。