付録B.2 アンロードログ運用でのバックアップとリカバリー
障害などが発生した場合,バックアップファイルとアンロードログファイルを使用してデータベースを回復させます。
- 〈この項の構成〉
(1) バックアップファイルの取得方法
アンロードログ運用の場合,バックアップファイル取得方法には,次の2とおりがあります。
-
JP1/AJS3サービス停止中にバックアップファイルを取得する方法
スケジューラーデータベースのバックアップファイルを取得するときは,JP1/AJS3の運用を停止する必要があります。JP1/AJS3サービス停止中に取得したバックアップファイルで回復する場合は,バックアップ時点の状態に回復できます。また,バックアップファイルとともにアンロードログファイルを使用することで,バックアップ時点以降のスケジューラーデータベースの更新情報についても回復できます。
-
JP1/AJS3サービス稼働中にバックアップファイルを取得する方法
スケジューラーデータベースのバックアップファイルを取得するときに,JP1/AJS3の運用を停止する必要はありません。ただし,JP1/AJS3サービス稼働中に取得したバックアップファイルで回復する場合は,バックアップファイルだけでは回復できません。回復時は,バックアップファイルとともにアンロードログファイルを使用します。
それぞれのバックアップ方法の特徴を次の表に示します。
バックアップ方法 |
長所 |
短所 |
---|---|---|
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) バックアップファイルおよびアンロードログファイルの管理
データベースの回復時に,バックアップファイルとアンロードログファイルが必要になるため,それぞれを保存・管理しておく必要があります。
それぞれのファイルの管理について次に示します。
(a) アンロードログファイル
JP1/AJS3の運用を続けると,アンロードログファイルが作成され続けるため,アンロードログファイル作成ディレクトリを含むディスクの容量が不足することがあります。このディスク容量の圧迫を回避する方法を次に示します。
-
アンロードログファイルを削除する
スケジューラーデータベースの回復では,バックアップ時点以降に作成されたアンロードログファイルを使用するため,バックアップ時点より前に作成されたアンロードログファイルは不要になります。そのため,アンロードログファイル作成ディレクトリを含むディスクが満杯になる前にバックアップファイルを取得し,その時点より前に作成されたアンロードログファイルを任意の方法で削除してください。アンロードログファイルは,ajsembdbbackupコマンドの実行時刻とアンロードログファイルの作成時刻を比較し,コマンドの実行時刻より前に作成されたものを削除してください。
-
アンロードログファイルをほかのディスクに移動する
別のディスクにアンロードログファイルを任意の方法で移動し,アンロードログファイル作成ディレクトリを含むディスクの空き容量を確保してください。アンロードログファイルを移動するとき,アンロードログファイル作成ディレクトリは移動しないでください。
また,この方法には,ajsembdbrstrコマンドで回復する際に使用するアンロードログファイルの数が多くなるため回復に掛かる時間が長くなるという問題があります。そのため,速やかにバックアップファイルを取得できない場合など,一時的な回避策として実行してください。
(b) バックアップファイル
アンロードログファイルが使用できなくなると,JP1/AJS3サービス稼働中に取得したバックアップファイルからは回復できなくなります。JP1/AJS3サービス停止中に取得したバックアップファイルについても保存してください。
(4) バックアップファイルの取得手順
取得方法ごとにバックアップ手順を説明します。
(a) JP1/AJS3サービス停止中にバックアップファイルを取得する方法
JP1/AJS3サービス停止中にバックアップファイルを取得する場合の手順を次に示します。
-
該当するスケジューラーデータベースを使用するスケジューラーサービス,およびスケジューラーデータベースにアクセスするJP1/AJS3のサービスをすべて停止する。
-
操作対象となる組み込みDBを起動する。
-
Windowsの場合
対象のJP1/AJS3 Database _JFn(nは0〜9またはA〜Zのどれか)サービスが開始していることを確認してください。開始していない場合は,対象のJP1/AJS3 Database _JFnサービスを開始してください。そのあと,ajsembdbstatusコマンドに-s ust -id _JFn(nは0〜9またはA〜Zのどれか)オプションを指定して実行し,組み込みDBが稼働状態になっていること(UNIT-STATがONLINEになっていること)を確認してください。稼働状態になっていない場合は,ajsembdbstartコマンドに-id _JFnオプションを指定して実行してください。
-
UNIXの場合
ajsembdbstartコマンドに-id _JFn(nは0〜9またはA〜Zのどれか)オプションを指定して実行してください。そのあと,ajsembdbstatusコマンドに-s ust -id _JFn(nは0〜9またはA〜Zのどれか)オプションを指定して実行し,組み込みDBが稼働状態になっていること(UNIT-STATがONLINEになっていること)を確認してください。
-
-
ajsembdbbackupコマンドを実行し,バックアップファイルを取得する。
ajsembdbbackupコマンドには,-sオプションを指定しないでください。
-
ajsembdbstopコマンドを実行し,組み込みDBを停止する。
-
手順1で停止したサービスを起動する。
ajsembdbbackupコマンドの詳細については,マニュアル「JP1/Automatic Job Management System 3 コマンドリファレンス 3. 通常の運用で使用するコマンド ajsembdbbackup」を参照してください。
なお,バックアップファイルを取得するときにスケジューラーサービスが稼働中であったり,スケジューラーデータベースを参照および更新していたりすると,ajsembdbbackupコマンドがエラーになる場合があります。
(b) JP1/AJS3サービス稼働中にバックアップファイルを取得する方法
ajsembdbbackupコマンドに,-sオプションを指定して実行してください。
この方法でのバックアップはJP1/AJS3の運用中に実行できますが,ajsembdbbackupコマンドとジョブ実行処理が競合することによって,双方の実行性能が若干低下します。ジョブの実行数ができるだけ少ない時間帯に実施してください。
ajsembdbbackupコマンドの詳細については,マニュアル「JP1/Automatic Job Management System 3 コマンドリファレンス 3. 通常の運用で使用するコマンド ajsembdbbackup」を参照してください。
(5) 障害発生時のデータベースの回復手順
障害のケースごとに回復手順を説明します。
なお,データベースの回復に使用するajsembdboplogコマンド,ajsembdbbackupコマンド,ajsembdbrstrコマンドの詳細については,マニュアル「JP1/Automatic Job Management System 3 コマンドリファレンス 3. 通常の運用で使用するコマンド」を,ajsembdbbuildコマンド,ajsembdbsetupコマンド,ajsembdbunsetコマンドについては,マニュアル「JP1/Automatic Job Management System 3 コマンドリファレンス 2. セットアップコマンド」を参照してください。
(a) データ領域のディスクに障害が発生した場合
データ領域のディスクに障害が発生した場合の回復手順を次に示します。
なお,クラスタ環境で回復する場合は,次の操作を実行系としてセットアップした環境で実施してください。待機系では実行しないでください。
-
アンロードログファイルを取得する。
障害発生直前の更新状態に回復する場合,障害発生直前の更新情報が格納されているシステムログファイルからアンロードログファイルを作成する必要があります。
アンロードログファイルは,ajsembdboplogコマンドを実行することで作成できます。
ajsembdboplogコマンドの指定例を次に示します。
ajsembdboplog -f -g log4※1 -o /unloadlog/unloadlog_file※2
データベースの回復に使用するバックアップファイルを取得した時点から,ajsembdboplogコマンドでアンロードログファイルを作成した時点までの,すべてのアンロードログファイルを,事前にアンロードログファイル作成ディレクトリから退避してください。
- 注※1
-
-gオプションの指定値は,ajsembdbstatusコマンドに-lオプションを指定して実行することで,求められます。
組み込みDBが稼働状態の場合は,Statusに表示されている文字列のうち,左から2文字目が「c」と表示されているシステムロググループを指定してください。組み込みDBが停止状態の場合は,Statusに表示されている文字列のうち,左から6文字目が「c」と表示されているシステムロググループを指定してください。左から2文字目がすべて「n」で,6文字目がすべて「-」の場合には,ajsembdboplogコマンドを実行しないで,出力済みのアンロードログファイルを退避してください。
組み込みDB_JF0が稼働中の場合のajsembdbstatusコマンドの実行例を次に示します。
実行例の場合は,Statusに表示されている文字列(下線部分)のうち,左から2文字目が「c」と表示されている「log4」を-gオプションに指定する必要があります。
- 注※2
-
この指定例では,出力先ファイル名(アンロードログファイル名)に「/unloadlog/unloadlog_file」を仮定しています。
なお,バックアップ時点に回復する場合は,この操作は不要です。
-
物理ホストおよびすべての論理ホストで,スケジューラーデータベースにアクセスするJP1/AJS3のサービスをすべて停止する。
-
ajsembdbunsetコマンドを実行し,データベース環境を削除する。
ajsembdbunsetコマンドに,-eオプションを指定してください。
-
障害を取り除く。
-
ajsembdbbuildコマンドを実行し,データベース環境を再構築する。
ajsembdbbuildコマンドの実行時,コマンドに指定する内容は,障害発生前のデータベース環境を構築したときと同じ内容にしてください。指定内容が異なると,このあとのスケジューラーデータベースの回復時にエラーが発生し,回復できません。
-
ajsembdbsetupコマンドを実行し,スケジューラーデータベースをセットアップする。
ajsembdbsetupコマンドの実行時,コマンドに指定する内容は,障害発生前の組み込みDBへの移行のときと同じ内容にしてください。指定内容が異なると,このあとのスケジューラーデータベースの回復時にエラーが発生し,回復できません。
-
ajsembdbstopコマンドを実行し,組み込みDBを停止する。
-
ajsembdbstartコマンドに-rオプションを指定して実行し,システム領域を回復するモードで組み込みDBを起動する。
-
ajsembdbrstrコマンドに-Mオプションを指定して実行し,組み込みDBのシステム領域を回復する。
-
ajsembdbstopコマンドを実行し,組み込みDBを停止する。
-
ajsembdbstartコマンドを実行し,組み込みDBを起動する。
-
ajsembdbrstrコマンドを実行し,スケジューラーデータベースを回復する。
障害発生直前の更新状態に回復する場合は,手順1で退避したアンロードログファイルまたは退避先のディレクトリを,ajsembdbrstrコマンドの-lオプションまたは-ldオプションに指定してください。
データベース環境を再構築したあとに作成されたアンロードログファイルを指定しないでください。
JP1/AJS3サービス停止中に取得したバックアップファイルの取得時点に回復する場合は,-ldオプションまたは-lオプションを指定する必要はありません。
-
ajsembdbbackupコマンドを実行する。
ajsembdbbackupコマンドを実行して,バックアップファイルを取得してください。
-
ajsembdbstopコマンドを実行し,組み込みDBを停止する。
-
手順2で停止したサービスを起動する。
(b) データベースのシステムログファイルのディスクに障害が発生した場合
データベースのシステムログファイルに障害が発生した場合,「(a) データ領域のディスクに障害が発生した場合」と同様にデータベースを再構築する必要があります。
「(a) データ領域のディスクに障害が発生した場合」の手順のうち,手順1については,システムログファイルを二重化している場合にだけ実施できます。
(c) JP1/AJS3とデータベースに同時に障害が発生した場合
JP1/AJS3とデータベースに同時に障害が発生した場合の回復手順を次に示します。
なお,クラスタ環境で回復する場合は,次の操作を実行系としてセットアップした環境で実施してください。待機系では実行しないでください。
-
障害を取り除く。
-
JP1/AJS3をバックアップファイルからリカバリーする。
JP1/AJS3のリカバリーについては,「2. バックアップとリカバリー」を参照してください。
-
該当するスケジューラーデータベースを使用するスケジューラーサービス,およびスケジューラーデータベースにアクセスするJP1/AJS3のサービスをすべて停止する。
-
操作対象となる組み込みDBを起動する。
-
Windowsの場合
対象のJP1/AJS3 Database _JFn(nは0〜9またはA〜Zのどれか)サービスが開始していることを確認してください。開始していない場合は,対象のJP1/AJS3 Database _JFnサービスを開始してください。そのあと,ajsembdbstatusコマンドに-s ust -id _JFn(nは0〜9またはA〜Zのどれか)オプションを指定して実行し,組み込みDBが稼働状態になっていること(UNIT-STATがONLINEになっていること)を確認してください。稼働状態になっていない場合は,ajsembdbstartコマンドに-id _JFnオプションを指定して実行してください。
-
UNIXの場合
ajsembdbstartコマンドに-id _JFn(nは0〜9またはA〜Zのどれか)オプションを指定して実行してください。そのあと,ajsembdbstatusコマンドに-s ust -id _JFn(nは0〜9またはA〜Zのどれか)オプションを指定して実行し,組み込みDBが稼働状態になっていること(UNIT-STATがONLINEになっていること)を確認してください。
-
-
ajsembdbstopコマンドを実行し,組み込みDBを停止する。
-
ajsembdbstartコマンドに-rオプションを指定して実行し,システム領域を回復するモードで組み込みDBを起動する。
-
ajsembdbrstrコマンドに-Mオプションを指定して実行し,組み込みDBのシステム領域を回復する。
-
ajsembdbstopコマンドを実行し,組み込みDBを停止する。
-
ajsembdbstartコマンドを実行し,組み込みDBを起動する。
-
ajsembdbrstrコマンドを実行し,スケジューラーデータベースを回復する。
この場合,JP1/AJS3サービス停止中に取得したバックアップファイルが必要になります。
ajsembdbrstrコマンドには,-ldオプションおよび-lオプションを指定しないでください。
-
ajsembdbstopコマンドを実行し,組み込みDBを停止する。
-
手順3で停止したサービスを起動する。
必要に応じて,JP1/AJS3サービスをコールドスタートで起動してください。
以上の手順を実施することで,JP1/AJS3と同期を取ってデータベースをバックアップファイル取得時の状態まで回復させることができます。
(d) JP1/AJS3に障害が発生した場合
「(c) JP1/AJS3とデータベースに同時に障害が発生した場合」と同様の手順で回復してください。