レプリケーションの運用では、レプリケーションを自動化しておくだけではなく、以下のログファイルが容量不足を起こさないように、監視を行うことが必要です。
トランザクションログファイル
差分ログファイル
これらのログファイルの状態は、以下の図のように遷移します。
トランザクションログファイルが満杯になり、差分ログが出力できなくなると、複写元データベースを更新する利用者プログラムの処理性能に影響がでる場合がありますので、満杯状態にならないよう監視する必要があります。(更新量の多いトランザクションや長いトランザクションの利用者プログラムが存在する状態ではエラーとなる場合があります)
差分ログが差分ログファイルに追い出された結果、差分ログファイルが満杯になると差分ログファイルは自動容量拡張します。しかし、ディスクに空きがなくなり、差分ログが出力できなくなると、コンソールにエラーメッセージが出力され、出力できなかった差分ログは破棄されますので、満杯状態にならないよう監視する必要があります。なお、利用者プログラムはエラーになりません。
コンソールについては、“はじめに”を参照してください。
レプリケーション対象表に対して、同時に実行される複数のトランザクションの更新量の合計が、2Gバイトを超えることはできません。
ここでは、これらのログファイルの監視手段と容量不足の防止方法について説明します。あわせて、差分ログファイルへの書出し処理で異常が発生した場合の対処方法について説明します。
ログファイルの監視手段
トランザクションログファイルの容量不足の防止
差分ログファイルの容量不足の防止
差分ログファイルの異常発生時の対処
なお、ここでは、表単位のレプリケーションの抽出定義と、グループ単位のレプリケーションのレプリケーショングループならびにレプリケーショングループに属する抽出定義を、すべて“抽出定義”とまとめて表現しています。
Linkexpress Replication optionでは、ログファイルの容量監視を行うために、以下の機能を提供しています。レプリケーションの運用にあたっては、これらの機能を使って、ログファイルの容量不足を未然に防ぐことが必要です。
機能 | 内容 | 対象ログファイル | 方法 |
---|---|---|---|
警告メッセージ | ログファイル内での使用率が警告率を超えた場合に、Symfoware/RDBのメッセージ・ログファイル(注)に警告メッセージを出力します。 | トランザクションログファイル | トランザクションログファイル作成時に、警告率をlxreplogコマンドで指定します。 |
差分ログファイル | 抽出定義時に、警告率をlxrepcreコマンドで指定します。 | ||
状態表示 | ログファイルの状態(例えばファイル内使用率など)を標準出力に対して出力します。 | トランザクションログファイル | lxreplogコマンドで状態を表示することができます。詳細は、“6.10 lxreplogコマンド(トランザクションログファイルの状態表示)”を参照してください。 |
差分ログファイル | lxreplogコマンドで状態を表示することができます。詳細は、“6.13 lxreplogコマンド(差分ログファイルの状態表示)”を参照してください。 |
注) Symfoware/RDBのメッセージ・ログファイルの詳細については、“Symfoware Server セットアップガイド”を参照してください。
警告メッセージのメッセージ番号とメッセージ内容を以下に示します。
対象ログファイル | メッセージ番号 | メッセージ |
---|---|---|
トランザクションログファイル | qdg12721w | トランザクションログファイルのデータ部の使用率がd*パーセントを超えました |
差分ログファイル | qdg12711w | 差分ログファイルの使用率がd*パーセントを超えました 抽出定義名=s* |
qdg12917w | 差分ログファイルの使用率がd*パーセントを超えました 抽出グループ名=s* |
トランザクションログファイルの使用率が警告率を超過するか、もしくは容量不足(状態表示で確認)になる可能性があると判断した場合、以下の対処方法を実施してください。
原因 | 対処方法 |
---|---|
更新量の多いトランザクションの利用者プログラムが存在し、差分ログを出力し続けたため、トランザクションログファイルを圧迫している。 | トランザクションログファイルを再作成して、トランザクションログファイルの容量を大きくしてください。 |
長いトランザクションの利用者プログラムが存在し、トランザクションログファイルを占有し続けたため、トランザクションログファイルを圧迫している。 | |
トランザクションログファイルの容量が小さすぎる。 |
警告率に対するメッセージ番号を以下に示します。
メッセージ番号 | 出力先 |
---|---|
qdg12721 | Symfoware/RDBのメッセージ・ログファイル |
トランザクションログファイルの作成時に警告率を指定した場合、データ部の容量を十分に確保している場合でも、実際の運用で警告メッセージが断続的に出力されることがあります。しかし、この場合は特に対処の必要はありません。
警告メッセージが継続的に出力される場合は、運用状況に対して容量が不十分である可能性があります。このような場合は、上記の対処方法に従って対処を行ってください。
なお、更新量の多いトランザクションや長いトランザクションの利用者プログラムが存在せず、更新量が少なくかつ短いトランザクションの利用者プログラムが多数存在する場合には、使用率が高い値を示していても、トランザクションログファイルが容量不足となる可能性はありません。
以下の見積り式を満たす場合、トランザクションログファイルの容量不足は発生しないと考えてください。
1トランザクションあたりの発生ログ量×最大多重度<トランザクションログファイルの容量
(発生ログ量について、UPDATEのログ量は2倍で計算してください)
ただし、ログ量が小さくても、トランザクションが延々と実行中状態(コミットもロールバックもしない)の場合、容量不足が発生する可能性はあります。
容量不足が発生した場合について
前記のような実行中状態(コミットもロールバックもしない)のトランザクションが存在しない状態で容量不足が発生した場合、差分ログファイルへの差分ログの転送待ちによる一時的な容量不足であると考えられますので、容量不足エラーとなったトランザクションを再実行してみてください。
差分ログファイルの使用率が警告率を超過するか、または、状態表示によって容量不足になる可能性があると判断した場合の対処方法を以下に示します。
原因 | 対処方法 |
---|---|
一括差分複写業務の業務スケジュールの間隔が長いため、差分ログが差分ログファイルに蓄積され続けている。 | 業務スケジュールの変更を行って、スケジュール間隔を短くしてください。抽出処理で差分ログを抽出することによって使用率は下がります。詳細は、“2.10.1.5 レプリケーション業務の変更”を参照してください。 |
差分ログファイルの容量が小さすぎる。 | 抽出定義を再定義して、差分ログファイルの容量を拡張してください。詳細は、“2.11.1.2 差分ログファイルの再作成(定義変更)”を参照してください。 |
一時的に差分ログ量が増えてしまった。 | 差分ログファイル内の差分ログを複写先データベースに反映し、差分ログファイル内の空きを作成してください。詳細は、“2.7.4 手動による同期操作”を参照してください。 |
警告率に対するメッセージ番号を以下に示します。
メッセージ番号 | 出力先 |
---|---|
qdg12711 | Symfoware/RDBのメッセージ・ログファイル |
なお、差分ログファイルは、以下のサイズまで自動的に容量が拡張されます。拡張されるサイズは、抽出定義のLOGSIZEオペランドの指定によって異なります。詳細は、“6.1 lxrepcreコマンド”を参照してください。拡張された領域は、抽出処理で差分ログが抽出されると自動的に返却されます。
抽出定義のLOGSIZEオペランドにLARGEを指定していない場合は、2Gバイト(2097151Kバイト)まで拡張されます。
差分ログファイルを格納しているディスクの空き容量が2Gバイト未満の場合は、空き容量に達するまで拡張されます。
抽出定義のLOGSIZEオペランドにLARGEを指定している場合は、4Tバイトまで拡張されます。
差分ログファイルを格納しているディスクの空き容量が4Tバイト未満の場合は、空き容量に達するまで拡張されます。
レプリケーションの運用中に差分ログファイルへの書出し処理で異常が発生した場合、Symfoware/RDBのメッセージ・ログファイルに以下のメッセージが出力されます。
出力されたメッセージ番号を基に、以下の対処方法に従ってください。
メッセージ番号 | 現象 | 対処方法 |
---|---|---|
qdg03033 | 差分ログファイルの容量不足を検出しました。 | 以下の手順で差分ログを破棄してください。
|
qdg12812 qdg12919 | 差分ログファイルの容量が2Gバイトまたは4Tバイトに達しました。 | |
qdg12052 | 差分ログファイルの書出し中に入出力障害を検出しました。 | 以下の手順で差分ログファイルを再作成してください。
|
qdg12710 | 差分ログファイルの内容が破壊されています。 | 以下の手順で差分ログファイルを再作成してください。
|
注1)“業務の中止”の操作により、一括差分複写業務を中止します。これにより、当日分のスケジュールを停止します。
注2)完了状態にない一括差分複写業務に対し、“業務の中止”を行うと、未反映の差分ログ(抽出データ格納ファイル)が残ります。このため、業務確定コマンド(lxcmtdbコマンド)を実行して、未反映の差分ログ(抽出データ格納ファイル)を削除します。
注3)lxrepdroコマンドに、-eオプションおよび-cオプションを指定して、抽出定義を削除してください。-cオプションを指定することで、未反映の差分ログ(抽出データ格納ファイル)も削除されます。
lxrepdroコマンドの詳細は、“6.2 lxrepdroコマンド”を参照してください。
注4)Symfoware/RDBのメッセージ・ログファイルの詳細については、“Symfoware Server セットアップガイド”を参照してください。
なお、エラーメッセージのパラメタには、差分ログファイル名が設定されているものがあります。“E.1 Symfoware抽出レプリケーションでのファイル構成”の“差分ログファイル”を参照し、該当する抽出定義を特定してください。