3.2 アンロードログ運用でのバックアップとリカバリー

障害などが発生した場合,バックアップファイルとアンロードログファイルを使用してデータベースを回復させます。

<この節の構成>
(1) バックアップファイルの取得方法
(2) バックアップファイルの取得タイミング
(3) バックアップファイルおよびアンロードログファイルの管理
(4) バックアップファイルの取得手順
(5) 障害発生時のデータベースの回復手順

(1) バックアップファイルの取得方法

アンロードログ運用の場合,バックアップファイル取得方法には,次の2とおりがあります。

それぞれのバックアップ方法の特徴を次の表に示します。

表3-1 バックアップ方法の特徴

バックアップ方法長所短所
JP1/AJS3サービス停止中にバックアップファイルを取得する方法
  • アンロードログファイルの有無に関係なく,スケジューラーデータベースを回復できる。
  • バックアップ時点の状態に回復できる。
  • アンロードログファイルを使用すると,バックアップ時点以降の更新情報についても回復できる。
バックアップファイルを取得する前に,JP1/AJS3の運用を停止する必要がある。
JP1/AJS3サービス稼働中にバックアップファイルを取得する方法JP1/AJS3の運用中でも,バックアップファイルを取得できる。
  • バックアップ時点以降のアンロードログファイルを失った場合は,この方法で取得したバックアップファイルからの回復はできない。
  • バックアップ時点の状態には回復できない。

(2) バックアップファイルの取得タイミング

JP1/AJS3の環境に障害が発生した場合は,JP1/AJS3の環境とスケジューラーデータベースの環境を,同期を取って回復する必要があります。そのため,JP1/AJS3の運用を停止できるときは,JP1/AJS3のバックアップファイルを取得するとともに,-sオプションを指定しないajsembdbbackupコマンドを実行して,スケジューラーデータベースのバックアップファイルを取得してください。JP1/AJS3運用中の場合は,定期的に-sオプションを指定したajsembdbbackupコマンドを実行して,スケジューラーデータベースのバックアップファイルを取得してください。

バックアップファイルの取得は,少なくてもアンロードログファイル作成ディレクトリを含むディスクが満杯になる前に実施してください。アンロードログファイル作成ディレクトリを含むディスクが満杯の状態で実施すると,バックアップファイルの取得に失敗します。バックアップファイルを取得するタイミングで,少なくてもアンロードログファイル1個分の空き容量が必要になります。

なお,これより早いタイミングで実施しても問題ありません。

バックアップファイルを取得した場合,取得時点より前に作成されたアンロードログファイル,および以前取得したバックアップファイルを削除できます。アンロードログファイルおよびバックアップファイルの削除方法については,「(3) バックアップファイルおよびアンロードログファイルの管理」を参照してください。

バックアップファイルの取得タイミングを次の図に示します。

図3-2 バックアップファイルの取得タイミング(アンロードログ運用)

[図データ]

(3) バックアップファイルおよびアンロードログファイルの管理

データベースの回復時に,バックアップファイルとアンロードログファイルが必要になるため,それぞれを保存・管理しておく必要があります。

それぞれのファイルの管理について次に示します。

●アンロードログファイル

JP1/AJS3の運用を続けると,アンロードログファイルが作成され続けるため,アンロードログファイル作成ディレクトリを含むディスクの容量が不足することがあります。このディスク容量の圧迫を回避する方法を次に示します。

●バックアップファイル

アンロードログファイルが使用できなくなると,JP1/AJS3サービス稼働中に取得したバックアップファイルからは回復できなくなります。JP1/AJS3サービス停止中に取得したバックアップファイルについても保存してください。

(4) バックアップファイルの取得手順

取得方法ごとにバックアップ手順を説明します。

(a) JP1/AJS3サービス停止中にバックアップファイルを取得する方法

JP1/AJS3サービス停止中にバックアップファイルを取得する場合の手順を次に示します。

  1. 該当するスケジューラーデータベースを使用するスケジューラーサービス,およびスケジューラーデータベースにアクセスするJP1/AJS3のサービスをすべて停止する。
  2. 操作対象となる組み込みDBを起動する。
    • Windowsの場合
      対象のJP1/AJS3 Database _JFnnは0~9またはA~Zのどれか)サービスが開始していることを確認してください。開始していない場合は,対象のJP1/AJS3 Database _JFnサービスを開始してください。ajsembdbstatusコマンドに-s ust -id _JFnnは0~9またはA~Zのどれか)オプションを指定して実行し,組み込みDBが稼働状態になっていること(UNIT-STATがONLINEになっていること)を確認してください。稼働状態になっていない場合は,ajsembdbstartコマンドに-id _JFnオプションを指定して実行してください。
    • UNIXの場合
      ajsembdbstartコマンドに-id _JFnnは0~9またはA~Zのどれか)オプションを指定して実行してください。ajsembdbstatusコマンドに-s ust -id _JFnnは0~9またはA~Zのどれか)オプションを指定して実行し,組み込みDBが稼働状態になっていること(UNIT-STATがONLINEになっていること)を確認してください。
  3. ajsembdbbackupコマンドを実行し,バックアップファイルを取得する。
    ajsembdbbackupコマンドには,-sオプションを指定しないでください。
  4. ajsembdbstopコマンドを実行し,組み込みDBを停止する。
  5. 手順1で停止したサービスを起動する。

ajsembdbbackupコマンドの詳細については,マニュアル「JP1/Automatic Job Management System 3 コマンドリファレンス1 2. コマンド ajsembdbbackup」を参照してください。

なお,バックアップファイルを取得するときにスケジューラーサービスが稼働中であったり,スケジューラーデータベースを参照および更新していたりすると,ajsembdbbackupコマンドがエラーになる場合があります。

(b) JP1/AJS3サービス稼働中にバックアップファイルを取得する方法

ajsembdbbackupコマンドに,-sオプションを指定して実行してください。

この方法でのバックアップはJP1/AJS3の運用中に実行できますが,ajsembdbbackupコマンドとジョブ実行処理が競合することによって,双方の実行性能が若干低下します。ジョブの実行数ができるだけ少ない時間帯に実施してください。

ajsembdbbackupコマンドの詳細については,マニュアル「JP1/Automatic Job Management System 3 コマンドリファレンス1 2. コマンド ajsembdbbackup」を参照してください。

(5) 障害発生時のデータベースの回復手順

障害のケースごとに回復手順を説明します。

なお,データベースの回復に使用するajsembdboplogコマンド,ajsembdbbackupコマンド,ajsembdbrstrコマンドの詳細については,マニュアル「JP1/Automatic Job Management System 3 コマンドリファレンス1 2. コマンド」を,ajsembdbbuildコマンド,ajsembdbsetupコマンド,ajsembdbunsetコマンドについては,マニュアル「JP1/Automatic Job Management System 3 コマンドリファレンス2 2. セットアップコマンド」を参照してください。

(a) データ領域のディスクに障害が発生した場合

データ領域のディスクに障害が発生した場合の回復手順を次に示します。

なお,クラスタ環境で回復する場合は,次の操作を実行系としてセットアップした環境で実施してください。待機系では実行しないでください。

  1. アンロードログファイルを取得する。
    障害発生直前の更新状態に回復する場合,障害発生直前の更新情報が格納されているシステムログファイルからアンロードログファイルを作成する必要があります。
    アンロードログファイルは,ajsembdboplogコマンドを実行することで作成できます。
    ajsembdboplogコマンドの指定例を次に示します。
    ajsembdboplog -f -g log4※1 -o /unloadlog/unloadlog_file※2
    データベースの回復に使用するバックアップファイルを取得した時点からajsembdboplogコマンドで作成したアンロードログファイルまでを,事前にアンロードログファイル作成ディレクトリから退避してください。
    注※1
    -gオプションの指定値は,ajsembdbstatusコマンドに-lオプションを指定して実行することで,求められます。_JF0の組み込みDB識別子でセットアップした環境がすでに構築されている場合のajsembdbstatusコマンドの実行例を次に示します。

    ajsembdbstatus -l -id _JF0

    Group    Type Server   Gen No.  Status  Run ID    Block No.         Ex-Status
    log1     sys  ajs2            1 os----u 47576555​        1       63  -u------
    log2     sys  ajs2            2 os----u 47576555​       64       64  -u------
    log3     sys  ajs2            3 os----u 47576555​       65       65  -u------
    log4     sys  ajs2            4 oc-d--u 47576555​       66       66  -x------
    log5     sys  ajs2            0 os----u 00000000​        0        0  -u------
    log6     sys  ajs2            0 os----u 00000000​        0        0  -u------
    log7     sys  ajs2            0 os----u 00000000​        0        0  -u------
    log8     sys  ajs2            0 os----u 00000000​        0        0  -u------
    log9     sys  ajs2            0 os----u 00000000​        0        0  -u------
    log10    sys  ajs2            0 os----u 00000000​        0        0  -u------
    log11    sys  ajs2            0 os----u 00000000​        0        0  -u------
    log12    sys  ajs2            0 os----u 00000000​        0        0  -u------

    実行例の場合は,Statusに表示されている文字列(下線部分)のうち,左から2文字目が「c」と表示されている「log4」を-gオプションに指定する必要があります。
    注※2
    この指定例では,出力先ファイル名(アンロードログファイル名)に「/unloadlog/unloadlog_file」を仮定しています。
    なお,バックアップ時点に回復する場合は,この操作は不要です。
  2. 物理ホストおよびすべての論理ホストで,スケジューラーデータベースにアクセスするJP1/AJS3のサービスをすべて停止する。
  3. ajsembdbunsetコマンドを実行し,データベース環境を削除する。
    ajsembdbunsetコマンドに,-eオプションを指定してください。
  4. 障害を取り除く。
  5. ajsembdbbuildコマンドを実行し,データベース環境を再構築する。
    ajsembdbbuildコマンドの実行時,コマンドに指定する内容は,障害発生前のデータベース環境を構築したときと同じ内容にしてください。指定内容が異なると,このあとのスケジューラーデータベースの回復時にエラーが発生し,回復できません。
  6. ajsembdbsetupコマンドを実行し,スケジューラーデータベースをセットアップする。
    ajsembdbsetupコマンドの実行時,コマンドに指定する内容は,障害発生前の組み込みDBへの移行のときと同じ内容にしてください。指定内容が異なると,このあとのスケジューラーデータベースの回復時にエラーが発生し,回復できません。
  7. ajsembdbstopコマンドを実行し,組み込みDBを停止する。
  8. ajsembdbstartコマンドに-rオプションを指定して実行し,システム領域を回復するモードで組み込みDBを起動する。
  9. ajsembdbrstrコマンドに-Mオプションを指定して実行し,組み込みDBのシステム領域を回復する。
  10. ajsembdbstopコマンドを実行し,組み込みDBを停止する。
  11. ajsembdbstartコマンドを実行し,組み込みDBを起動する。
  12. ajsembdbrstrコマンドを実行し,スケジューラーデータベースを回復する。
    障害発生直前の更新状態に回復する場合は,手順1で退避したアンロードログファイルまたは退避先のディレクトリを,ajsembdbrstrコマンドの-lオプションまたは-ldオプションに指定してください。
    データベース環境を再構築したあとに作成されたアンロードログファイルを指定しないでください。
    JP1/AJS3サービス停止中に取得したバックアップファイルの取得時点に回復する場合は,-ldオプションまたは-lオプションを指定する必要はありません。
  13. ajsembdbbackupコマンドを実行する。
    ajsembdbbackupコマンドを実行して,バックアップファイルを取得してください。
  14. ajsembdbstopコマンドを実行し,組み込みDBを停止する。
  15. 手順2で停止したサービスを起動する。

(b) データベースのシステムログファイルのディスクに障害が発生した場合

データベースのシステムログファイルに障害が発生した場合,「(a) データ領域のディスクに障害が発生した場合」と同様にデータベースを再構築する必要があります。

(a) データ領域のディスクに障害が発生した場合」の手順のうち,手順1については,システムログファイルを二重化している場合にだけ実施できます。

(c) JP1/AJS3とデータベースに同時に障害が発生した場合

JP1/AJS3とデータベースに同時に障害が発生した場合の回復手順を次に示します。

なお,クラスタ環境で回復する場合は,次の操作を実行系としてセットアップした環境で実施してください。待機系では実行しないでください。

  1. 障害を取り除く。
  2. JP1/AJS3をバックアップファイルからリカバリーする。
    JP1/AJS3のリカバリーについては,「2. バックアップとリカバリー」を参照してください。
  3. 該当するスケジューラーデータベースを使用するスケジューラーサービス,およびスケジューラーデータベースにアクセスするJP1/AJS3のサービスをすべて停止する。
  4. 操作対象となる組み込みDBを起動する。
    • Windowsの場合
      対象のJP1/AJS3 Database _JFnnは0~9またはA~Zのどれか)サービスが開始していることを確認してください。開始していない場合は,対象のJP1/AJS3 Database _JFnサービスを開始してください。ajsembdbstatusコマンドに-s ust -id _JFnnは0~9またはA~Zのどれか)オプションを指定して実行し,組み込みDBが稼働状態になっていること(UNIT-STATがONLINEになっていること)を確認してください。稼働状態になっていない場合は,ajsembdbstartコマンドに-id _JFnオプションを指定して実行してください。
    • UNIXの場合
      ajsembdbstartコマンドに-id _JFnnは0~9またはA~Zのどれか)オプションを指定して実行してください。ajsembdbstatusコマンドに-s ust -id _JFnnは0~9またはA~Zのどれか)オプションを指定して実行し,組み込みDBが稼働状態になっていること(UNIT-STATがONLINEになっていること)を確認してください。
  5. ajsembdbstopコマンドを実行し,組み込みDBを停止する。
  6. ajsembdbstartコマンドに-rオプションを指定して実行し,システム領域を回復するモードで組み込みDBを起動する。
  7. ajsembdbrstrコマンドに-Mオプションを指定して実行し,組み込みDBのシステム領域を回復する。
  8. ajsembdbstopコマンドを実行し,組み込みDBを停止する。
  9. ajsembdbstartコマンドを実行し,組み込みDBを起動する。
  10. ajsembdbrstrコマンドを実行し,スケジューラーデータベースを回復する。
    この場合,JP1/AJS3サービス停止中に取得したバックアップファイルが必要になります。
    ajsembdbrstrコマンドには,-ldオプションおよび-lオプションを指定しないでください。
  11. ajsembdbstopコマンドを実行し,組み込みDBを停止する。
  12. 手順3で停止したサービスを起動する。
    必要に応じて,JP1/AJS3サービスをコールドスタートで起動してください。

以上の手順を実施することで,JP1/AJS3と同期を取ってデータベースをバックアップファイル取得時の状態まで回復させることができます。

(d) JP1/AJS3に障害が発生した場合

(c) JP1/AJS3とデータベースに同時に障害が発生した場合」と同様の手順で回復してください。