Hitachi

インナレプリカ機能 HiRDB Staticizer Option Version 10


付録F.3 HiRDBが異常終了する事例

次のメッセージが出力され,HiRDBが異常終了しました。

よくある原因
  • 大規模な表の再編成でログを大量に出力したため,ログファイルが不足しました。

  • 更新可能なオンライン再編成を実行したことでログファイルが「更新可能なオンライン再編成の上書き禁止状態」となりましたが,スワップ先のシステムログファイルがなかったため,ログファイル不足になりました。

対処方法は次の二つがあります。

対処方法1

必要なログファイルを追加します。

対処手順

必要なログファイルの追加手順は,表「システムログファイルに関連する障害の対策方法」を参照してください。

対処方法2(業務を再開させるための非常手段)

ログファイルを追加できない場合で,業務を再開しなければならないときは,システムのステータスファイルを初期化してオンライン再編成状態を解除します。ただし,オリジナルRDエリアのデータ回復が必要になります。この対処方法を取る場合は,システム管理者に連絡してください。

対処手順

手順

操作

確認方法

1

システムログをアンロードします。

pdlogunldコマンドを実行します。

マニュアル「HiRDB コマンドリファレンス」の「システム単位の回復をする場合」を参照してください。

2

ユニットとサーバのステータスファイルをすべて初期化(再作成)します。

pdstsinitコマンドを実行します。

3

HiRDBを回復モードで開始します。

pdstart -rコマンドを実行します。

4

バックアップと手順1で取得したアンロードログを使用してマスタディレクトリ用RDエリアを回復します。

pdrstrコマンドでマスタディレクトリ用RDエリアの回復を実行します。

5

HiRDBを正常終了します。

pdstopコマンドを実行します。

6

HiRDBを正常開始します。

pdstartコマンドを実行します。

7

マスタディレクトリ用RDエリア以外のRDエリアを,コマンド閉塞かつクローズ状態にします。

pdhold -r ALL -cコマンドを実行します。

8

バックアップと手順1で取得したアンロードログを使用して,マスタディレクトリ用RDエリア以外のRDエリアを回復します。

バックアップとアンロードログでRDエリアを回復しない場合,手順10に進んでください。

pdrstr -q 0 -x cコマンドを実行します。

参考 通常,RDエリア更新ログは更新したRDエリアに適用しますが,pdrstrの-xオプションに「c(カレント)」を指定すると,カレント状態のRDエリア(レプリカRDエリア)の更新で取得されたログを適用してオリジナルRDエリアを回復できます。

9

オンライン再編成の対象外のRDエリアの閉塞を解除します。

「pdrels -r RDエリア名-o」コマンドを実行します。

次のメッセージを確認します。

  • KFPH00130-I RDAREA released, RDAREA = "RDエリア名"

  • KFPH00130-I RDAREA opened, RDAREA = "RDエリア名"

10

手順8,9でオリジナルRDエリアを回復しない場合,レプリカRDエリアのデータをオリジナルRDエリアにコピーします。

データのコピー方法は任意ですが,次のような方法があります。

  • pdcopyコマンドでデータをコピーし,pdrstrコマンドで回復する。

  • pdrorgコマンドでデータをアンロード,リロードする。

  • pdrorgコマンドでデータをアンロードし,pdloadコマンドでリロードする。

コマンドによって実行できるRDエリアの状態が異なります。実行できるRDエリアの状態については,マニュアル「HiRDB コマンドリファレンス」の「RDエリアの状態によるユティリティ及びUAPの実行可否」を参照してください。

pdrorgコマンド,pdloadコマンド,またはUAPでデータをアンロード,リロードする場合,オリジナルRDエリアとレプリカRDエリアをオープン状態にする必要があるため,データをアンロードする前に「pdopen -r RDエリア」コマンドを実行します。ただし,更新業務の実行は抑止する必要があるため,閉塞状態はそのままにしてください。

11

カレントRDエリアをオリジナルRDエリアに戻します。

「pddbchg -q 0 -r オリジナルRDエリア名」コマンドを実行します。

次のメッセージを確認します。

  • KFPH00130-I RDAREA current changed, RDAREA = "RDエリア名"

その後,pddblsコマンドを実行して,次の表示結果を確認します。

  • オリジナルRDエリアのREPLICA-STATUS:C(カレントRDエリア)

  • レプリカRDエリアのREPLICA-STATUS:S(サブRDエリア)

12

オリジナルRDエリアのコマンド閉塞を解除します。

「pdrels -r オリジナルRDエリア名 -o」コマンドを実行します。

次のメッセージを確認します。

  • KFPH00130-I RDAREA released, RDAREA = "RDエリア名"

  • KFPH00130-I RDAREA opened, RDAREA = "RDエリア名"

13

手順10でレプリカRDエリアをオープンしている場合は,クローズします。

「pdclose -r レプリカRDエリア」コマンドを実行します。

次のメッセージを確認します。

  • KFPH00130-I RDAREA closed, RDAREA = "RDエリア名"

14

追い付き状態管理表を初期化するため,いったん削除します。

pdorcreate -dコマンドを実行します。

次のメッセージを確認します。

  • KFPT02020-I Pdorcreate:reflection management table dropped

  • KFPT02014-I Pdorcreate terminated, return code=0

15

追い付き状態管理表を再作成します。

pdorcreateコマンドを実行します。

次のメッセージを確認します。

  • KFPT02020-I Pdorcreate:reflection management table created

  • KFPT02014-I Pdorcreate terminated, return code=0

16

システムのバックアップを取得します。

マニュアル「HiRDB システム運用ガイド」の「バックアップ取得」を参照してください。

17

HiRDBを正常終了します。

pdstopコマンドを実行します。

18

HiRDBを開始します(業務を受け付けます)。

pdstartコマンドを実行します。

19

データディクショナリLOB用RDエリアおよびリスト用RDエリアの回復を行います。

pdmodコマンドの「initialize rdarea データディクショナリLOB用RDエリア;」文および「initialize rdarea リスト用RDエリア;」文を実行します。

マニュアル「HiRDB コマンドリファレンス」の「データベース構成変更ユティリティ(pdmod)」を参照してください。