ここでは、レプリケーションの運用を保守する方法について説明します。
ログファイルの再作成とリカバリ
データベースの保守
なお、ここでは、表単位のレプリケーションの抽出定義と、グループ単位のレプリケーションのレプリケーショングループおよびレプリケーショングループに属する抽出定義を、すべて“抽出定義”とまとめて表現しています。
以下の場合に、トランザクションログファイルおよび差分ログファイルの再作成が必要です。
トランザクションログファイルおよび差分ログファイルの容量を拡張する場合
入出力障害などでトランザクションログファイルおよび差分ログファイルが破壊され、トランザクションログファイルおよび差分ログファイルが閉塞(アクセス禁止)した場合
一時的な入出力障害に対し、トランザクションログファイルおよび差分ログファイルへのアクセスがリトライによって回復できない場合
ここでは、各ログファイルの再作成の方法について説明します。
種類 | 目的 | 運用で必要なケース |
---|---|---|
差分ログファイル | 差分ログファイル容量などの作成内容を変更する場合に実施します。 | |
差分ログファイルの容量不足、または差分ログファイルが閉塞した場合のリカバリ作業で実施します。 | ||
一時的な入出力障害に対し、差分ログファイルへのアクセスがリトライによって回復できず閉塞した場合に実施します。 | ||
トランザクションログファイル | トランザクションログファイル容量などの作成内容を変更する場合に実施します。 | |
トランザクションログファイルが閉塞した場合のリカバリ作業で実施します。 | ||
一時的な入出力障害に対し、トランザクションログファイルへのアクセスがリトライによって回復せず閉塞した場合に実施します。 | ||
トランザクションログファイルへの差分ログ停止後に差分ログの取得を再開する場合に実施します。 トランザクションログファイルへの差分ログ停止を行う操作とは以下です。
| ||
複写先データベース | IOERROR_RETRY STARTUP_MODEオペランドで“STOPREP”を指定している場合で、差分ログファイルまたはトランザクションログファイルへのアクセスがリトライによって回復せず閉塞したときに実施します。 |
再作成の対象となる差分ログファイルを定義した抽出定義に対して以下の操作を行います。なお、本手順は差分ログファイルが正常な状態(容量不足、閉塞などのエラーが発生していない)で差分ログの運用が継続可能な場合の手順を説明しています。
複写元データベースを更新する利用者プログラムが実行中でないことを確認してください。実行中の場合は、利用者プログラムの終了を待ってから操作を始めてください。
対象の抽出定義を指定したレプリケーション業務が処理中でないことを確認します。処理中の場合は、業務の完了を待ってから操作を始めてください。
対象の抽出定義に対して、差分ログの追出しを行います。
複写元システムのすべての一括差分複写業務を実行します(上記までのすべての差分ログを複写先システムに手動などで反映します)。
対象の抽出定義を指定した一括差分複写業務を中止します。
対象の抽出定義に対して、差分ログの取得を終了します。
対象の抽出定義を削除します。削除の方法については、“2.1.4.3 抽出定義の削除”および“コマンドリファレンス”の“lxrepdroコマンド”を参照してください。
削除した抽出定義と同じ名前で、抽出定義を再定義します。差分ログファイルの容量を増やす場合などは、この時に容量を大きく指定します。定義の方法については、“2.1.4 抽出定義”および“コマンドリファレンス”の“lxrepcreコマンド”を参照してください。
停止したすべての抽出定義に対して、差分ログの取得を開始します。
中止した一括差分複写業務を開始します。
利用者プログラムを開始します。
各操作の詳細については、以下の参照項目を参照してください。
注意
上記の4.または6.の処理でエラーになった場合には、7.の処理での強制削除(-eオプション)を実行してください。
差分ログファイルの容量不足または閉塞が発生した場合は、再作成の対象となる差分ログファイルに関連する抽出定義に対して以下の操作を行います。なお、本操作を行う場合は、全複写による複写先データベースの復旧が必要です。
複写元データベースを更新する利用者プログラムが実行中でないことを確認してください。実行中の場合は、利用者プログラムの終了を待ってから操作を始めてください。
対象の抽出定義を指定したレプリケーション業務が処理中でないことを確認します。処理中の場合は、業務の完了を待ってから操作を始めてください。
対象の抽出定義を指定した一括差分複写業務を中止します。
対象の抽出定義に対して、差分ログの追出しを行います。
対象の抽出定義に対して、差分ログの取得を終了します。
対象の抽出定義に対して、差分ログの破棄を行います。
対象の抽出定義を削除します。削除の方法については、“2.1.4.3 抽出定義の削除”および“コマンドリファレンス”の“lxrepdroコマンド”を参照してください。
必要に応じて、差分ログファイルを配置しているディスクを再設定します(ディスク交換や容量拡張など)。
削除した抽出定義と同じ名前で、抽出定義を再定義します。差分ログファイルの容量を増やす場合などは、この時に容量を大きく指定します。定義の方法については、“2.1.4 抽出定義”および“コマンドリファレンス”の“lxrepcreコマンド”を参照してください。
再定義した抽出定義に対して全複写業務を行います。これにより、複写元データベースと複写先データベースの同期をとることができます。
停止したすべての抽出定義に対して、差分ログの取得を開始します。
中止した一括差分複写業務を開始します。
利用者プログラムを開始します。
各操作の詳細については、以下の参照項目を参照してください。
注意
上記の4.または6.の処理でエラーになった場合には、7.の処理での強制削除(-eオプション)を実行してください。
IOERR_RETRY_STARTUP_MODEオペランドに“STOPRDB”を指定した場合で、差分ログファイルへの一時的な入出力障害に対し、差分ログファイルへのアクセスがリトライで回復しなかった場合の復旧手順を以下に示します。
差分ログファイルに該当する一括差分複写業務を中止します。
差分ログファイルをlxrepdroコマンド(-Z指定)で、抽出定義とともに削除します。
クラスタシステムの場合で、抽出定義管理ファイルが差分ログファイルと異なる場所に作成しているときは、抽出定義管理ファイルの配置先である切り替えディスクを、lxrepdroコマンド実行前にマウントし、実行後にアンマウントする必要があります。
ディスク故障が発生している場合は、ディスク交換を行います。
Symfoware/RDBまたはクラスタアプリケーションを起動します。
削除した差分ログファイルをlxrepcreコマンドによって作成します。
再作成した差分ログファイルに該当する抽出定義に対し、全複写業務を実行し、複写先データベースを再創成します。
再作成した差分ログファイルに該当する抽出定義に対し、lxrepenaコマンドによって、差分ログの取得を開始します。
中止した一括差分複写業務を、起動します。
利用者プログラムを開始します。
トランザクションログファイルの再作成の手順は、以下のとおりです。
複写元システムのすべての利用者プログラムが実行中でないことを確認してください。実行中の場合は、利用者プログラムの終了を待ってから操作を始めてください。
複写元システムのすべてのレプリケーション業務が処理中でないことを確認します。処理中の場合は、業務の完了を待ってから操作を始めてください。
複写元システムのすべての抽出定義に対して、差分ログの追出しを行います。
複写元システムのすべての一括差分複写業務を実行します(上記までのすべての差分ログを複写先システムに手動などで反映します)。
複写元システムのすべての一括差分複写業務を中止します。
複写元システムのすべての抽出定義に対して、差分ログの取得を終了します。
Symfoware/RDBの停止操作を行います。
トランザクションログファイルのデータ部とインデックス部を削除します。削除の方法については、“コマンドリファレンス”の“lxreplogコマンド(トランザクションログファイルのデータ部、インデックス部の削除)”を参照してください。
トランザクションログファイルのデータ部とインデックス部を再作成します。トランザクションログファイルの容量を増やす場合などは、この時に容量を大きく指定します。作成の方法については、“2.1.2.3.4 トランザクションログファイルの作成”および“コマンドリファレンス”の“lxreplogコマンド(トランザクションログファイルのデータ部、インデックス部の作成)”を参照してください。
Symfoware/RDBの再起動を行います。
停止したすべての抽出定義に対して、差分ログの取得を開始します。
中止した一括差分複写業務を開始します。
利用者プログラムを開始します。
各操作の詳細については、以下の参照項目を参照してください。
トランザクションログファイルが閉塞した場合の再作成の手順を以下に示します。
複写元システムのすべての利用者プログラムが実行中でないことを確認してください。実行中の場合は、利用者プログラムの終了を待ってから操作を始めてください。
複写元システムのすべてのレプリケーション業務が処理中でないことを確認します。処理中の場合は、業務の完了を待ってから操作を始めてください。
複写元システムのすべての一括差分複写業務を中止します。
Symfoware/RDBの停止操作を行います。
トランザクションログファイルのデータ部とインデックス部を削除します。削除の方法については、“コマンドリファレンス”の“lxreplogコマンド(トランザクションログファイルのデータ部、インデックス部の削除)”を参照してください。
必要に応じて、トランザクションログファイルを配置しているディスクを再設定します(ディスク交換など)。
トランザクションログファイルを再作成します。
作成の方法については、“2.1.2.3.4 トランザクションログファイルの作成”および“コマンドリファレンス”の“lxreplogコマンド(トランザクションログファイルのデータ部、インデックス部の作成)”を参照してください。
Symfoware/RDBの再起動を行います。
複写元システムのすべての抽出定義に対して、差分ログの取得を終了します。
複写元システムのすべての抽出定義に対して、差分ログの破棄を行います。
複写元システムのすべての抽出定義に対して全複写業務を行います。これにより、すべての複写元データベースと複写先データベースの同期をとることができます。
停止したすべての抽出定義に対して、差分ログの取得を開始します。
中止した一括差分複写業務を開始します。
利用者プログラムを開始します。
各操作の詳細については、以下の参照項目を参照してください。
IOERR_RETRY_STARTUP_MODEオペランドに“STOPRDB”を指定した場合で、トランザクションログファイルへの一時的な入出力障害に対し、トランザクションログファイルへのアクセスがリトライで回復しなかった場合、トランザクションログファイルを再作成して復旧します。手順は“2.2.5.1.5 トランザクションログファイルの再作成(閉塞からのリカバリ)”を参照してください。
以下の状態から差分ログの取得を再開する場合の手順を説明します。
トランザクションログファイルの使用率がLinkexpress Replication optionの動作環境ファイルのREP_TRF_COFFオペランドの指定値に達したため、差分ログの取得停止となった場合
lxreplogコマンドによる差分ログの取得を再開する場合
Symfoware Serverのエディションおよびバージョンが以下の場合、lxreplogコマンドにより差分ログの取得を再開します。
Symfoware Server V12.4.0 以降
利用者プログラムが終了していることを確認してください。実行中の場合は、利用者プログラムを終了してください。
lxcanwrkコマンド(-mnオプション指定)により、すべての一括差分複写業務を停止します。
複写元システムにおいて、差分データが残っていないことを確認します。
トランザクションログファイル:
lxreplog (-Vオプション指定) で使用率を確認します。
差分ログファイル:
lxreplog -V {-r 抽出定義名|-g 抽出グループ名}で使用率を確認します。
抽出データ格納ファイル:
lxextdbコマンド (-fオプション指定)に指定したファイルが存在しないことを確認します。
REP_TRF_COFFオペランドによる差分ログの取得停止により、差分データのロストが発生していますので、すべての抽出定義に対して全複写業務を実行し、複写先データベースを再創成します。
lxreplogコマンド(-X CONオプション指定)により、差分ログの取得を再開します。
差分ログの取得が再開されたかは、lxreplogコマンド(-Vオプション指定)によってトランザクションログファイルの状態を表示することで確認します。
中止したすべての一括差分複写業務を開始します。
利用者プログラムを開始します。
トランザクションログファイルの再作成により差分ログの取得を再開する場合
Symfoware Serverのエディションおよびバージョンが以下の場合、トランザクションログファイルの再作成により差分ログの取得を再開します。
手順は“2.2.5.1.5 トランザクションログファイルの再作成(閉塞からのリカバリ)”を参照してください。
Symfoware Server Standard Edition V12.3 以前
Symfoware Server Enterprise Edition V12.3 以前
Symfoware Server Enterprise Extended Edition V11.1.2 以前
トランザクションログファイルまたは差分ログファイルへのアクセスがリトライで回復しなかった場合、トランザクションログファイルへの差分ログの取得を停止し、Symfoware/RDBは起動します。そのため、レプリケーション運用の再開には、複写先データベースを再創成する必要があります。
以下に複写先データベースの再創成の手順を説明します。
利用者プログラムが実行中でないことを確認してください。実行中の場合は、利用者プログラムの終了を待ってから操作を始めてください。
すべての一括差分複写業務を中止します。
ディスク故障が発生している場合、ディスク交換を行い、以下の作業を行います。
ディスク故障が発生していない場合は、Symfoware/RDBまたはクラスタアプリケーションを再起動します。
トランザクションログファイルの配置先ディスクが故障の場合
Symfoware/RDBまたはクラスタアプリケーションを停止し、トランザクションログファイルを作成し直します。
Symfoware/RDBを起動します。
差分ログファイルの配置先ディスクが故障の場合
Symfoware/RDBまたはクラスタアプリケーションを停止します。
復旧対象差分ログファイルに該当する抽出定義を、lxrepdroコマンド(-Z指定)で削除します。
Symfoware/RDBまたはクラスタアプリケーションを起動します。
復旧対象差分ログファイルに該当する抽出定義を、lxrepcreコマンドで作成します。
lxreplogコマンド(-I -S指定)によって、取得済み差分ログを破棄します。すべての差分ログファイルが対象です。
すべての抽出定義に対して全複写業務を実行し、複写先データベースを再創成します。
すべての抽出定義に対し、lxrepenaコマンドによって差分ログの取得を開始します。
中止したすべての一括差分複写業務を開始します。
利用者プログラムを開始します。
複写元データベースおよび複写先データベースに異常が発生した場合の、データベースの復旧に伴うレプリケーションシステムの保守作業について説明します。
参照
データベースの保守の方法については、“Symfoware Server RDB運用ガイド”を参照してください。
複写元データベースの復旧後、複写元データベースを異常発生直前の状態に戻す場合は、全複写業務による複写先データベースの再創成は不要です。複写元データベースの復旧を行う前に、レプリケーション業務をLinkexpressクライアントの“業務監視ウィンドウ”またはlxcanwrkコマンド(-m n指定)によって停止し、利用者プログラムの起動前にレプリケーション (一括差分複写)を、Linkexpressクライアントの“業務監視ウィンドウ”またはlxstrwrkコマンドによって起動してください。
複写元データベースが異常発生直前の状態に戻らない場合は、以下の手順によって複写先データベースの再創成を行います。
複写元システム | 複写先システム |
---|---|
1.利用者プログラムの停止 | |
2.レプリケーション業務(一括差分複写)の停止 | |
3.データベースの復旧 | |
4.差分ログの破棄 | |
5.全複写業務の開始 | |
6.差分ログの取得開始 | |
7.レプリケーション業務(一括差分複写)の起動 | |
8.利用者プログラムの起動 |
複写元システム | 複写先システム |
---|---|
1.利用者プログラムの停止 | |
2. レプリケーション業務(一括差分複写)の停止 | |
3. データベースの復旧 | |
4. 差分ログの破棄 | |
5. 全複写業務の開始 | |
6. 差分ログの取得開始 | |
7. レプリケーション業務(一括差分複写)の起動 | |
8. 利用者プログラムの起動 |
利用者プログラムを停止します。
レプリケーション業務(一括差分複写)を、Linkexpressクライアントの“業務監視ウィンドウ”またはlxcanwrkコマンド(-m n指定)によって停止します。
データベースのメディアリカバリによって、データベースを復旧します。
複写先データベースに未反映の差分ログを、以下のコマンドによって破棄します。
復旧対象データベースに該当する表単位レプリケーションまたはグループ単位レプリケーションの場合
lxreplog -I {-r 抽出定義名 | -g 抽出グループ名} -c
復旧対象データベースが、レプリケーションシステム全体の場合
lxreplog -I -S
全複写業務を実行し、複写先データベースを再創成します。
lxrepenaコマンドによって、差分ログの取得を開始します。
レプリケーション業務(一括差分複写)を、Linkexpressクライアントの“業務監視ウィンドウ”またはlxstrwrkコマンドによって起動します。
複写先データベースの復旧後、複写先データベースが異常発生直前の状態に戻る場合は、全複写業務による複写先データベースの再創成は不要です。
複写先データベースが異常発生直前の状態に戻らない場合は、複写先データベースの再創成を行います。再創成の手順は、“複写元データベースに異常が発生した場合”と同じです(データベースの復旧作業は、複写元システムで行います)。