レプリケーションの運用では、レプリケーションを自動化しておくだけではなく、以下のログファイルが容量不足を起こさないように、監視を行うことが必要です。
トランザクションログデータベース
差分ログファイル
これらのログファイルの状態は、以下の図のように遷移します。
トランザクションログデータベースが満杯になり、差分ログが出力できなくなると、複写元データベースを更新する利用者プログラムがエラーとなります。
差分ログの追出しの結果、差分ログファイルが満杯になり、差分ログが出力できなくなると、コンソールにエラーメッセージを出力します。利用者プログラムはエラーにはなりません。ただし、トランザクションログデータベースから差分ログファイルに差分ログが追出されないために、いずれトランザクションログデータベースが満杯になる可能性があります。なお、コンソールについては、“はじめに”を参照してください。
レプリケーション対象表に対して、同時に実行される複数のトランザクションの更新量の合計が、2Gbyte を超えることはできません。
ここでは、これらのログファイルの監視手段と容量不足の防止方法について説明します。あわせて、差分ログファイルへの書出し処理で異常が発生した場合の対処方法について説明します。
ログファイルの監視手段
トランザクションログデータベースの容量不足の防止
差分ログファイルの容量不足の防止
差分ログファイルの異常発生時の対処
トランザクションログデータベースの異常発生時の対処
Linkexpress Replication optionでは、差分ログファイルの容量監視を行うために以下の機能を提供しています。レプリケーションの運用にあたっては、これらの機能を使って、ログファイルの容量不足を未然に防ぐことが必要です。
機能 | 内容 | 対象ログファイル | 方法 |
---|---|---|---|
警告メッセージ | ログファイル内での使用率が警告率を超えた場合に、コンソール(注)に警告メッセージを出力します。 | 差分ログファイル | 抽出定義時に、警告率をlxrpocreコマンドで指定します。詳細は、 |
状態表示 | ログファイルの状態(例えばファイル内使用率など)を標準出力に対して出力します。 | 差分ログファイル | lxrpologコマンドで状態を表示することができます。詳細は、 |
注)コンソールについては、“はじめに”を参照してください。
警告メッセージのメッセージ番号とメッセージ内容を以下に示します。
対象ログファイル | メッセージ番号 | メッセージ |
---|---|---|
差分ログファイル | RP13005 | 差分ログファイルの使用率がd*パーセントを超えました 抽出定義名=s* |
トランザクションログデータベースは、Oracleのデータベースであるために、Oracleの機能を利用した容量監視を実施してください。
以下に例を示します。
容量監視を行うためにOSコマンドを使います。トランザクションログデータベースのTABLESPACEに割り付けているデータファイルに自動拡張を設定し、データファイルのサイズをOSコマンドを使って監視することで実現できます。
なお、TABLESPACEにローデバイスを割り付けた場合はサイズを使って監視できません。この場合は、ローデバイスにデータファイルを追加して割り付けを行い、データファイルに自動拡張を設定することで監視可能になります。
方法例 | 内容 | 対象ログファイル | 方法 |
---|---|---|---|
例1 | TABLESPACEが割り付いているデータファイルのあるディスクの空容量に余裕があることを確認します。 | トランザクションログデータベース | dfコマンドなどを使用して、TABLESPACEに割り付けているデータファイルのディスクの使用率を監視します。 |
例2 | TABLESPACEが割り付いているデータファイルのサイズが割当て可能な最大サイズに対して余裕のあることを確認します。 | lsコマンドを使って、TABLESPACEに割り付けているデータファイルのファイルサイズを出力します。 |
トランザクションログデータベースが容量不足になる可能性があると判断した場合の対処方法を以下に示します。
原因 | 対処方法 |
---|---|
利用者プログラムによる更新量が多いため、トランザクションログデータベースを圧迫している。 | SQLコマンドの“ALTER TABLESPACE”を実行して、TABLESPACEの容量を追加してください。運用中でも追加可能です。 |
差分ログ収集スケジュールが長すぎる。 | |
トランザクションログデータベースの容量が小さい。 |
差分ログファイルの使用率が警告率を超過するか、または状態表示によって容量不足になる可能性があると判断した場合の対処方法を以下に示します。
原因 | 対処方法 |
---|---|
一括差分複写業務の業務スケジュールの間隔が長いため、差分ログが差分ログファイルに蓄積され続けている。 | 業務スケジュールの変更を行って、スケジュール間隔を短くしてください。抽出処理で差分ログを抽出することによって使用率は下がります。詳細は、“3.11.1.5 レプリケーション業務の変更”を参照してください。 |
差分ログファイルの容量が小さすぎる。 | 抽出定義を再定義して、差分ログファイルの容量を拡張してください。詳細は、“3.12.1.2 差分ログファイルの再作成”を参照してください。 |
一時的に差分ログ量が増えてしまった。 | 差分ログファイル内の差分ログを複写先データベースに反映し、差分ログファイル内の空きを作成してください。詳細は、“3.8.4 手動による同期操作”を参照してください。 |
なお、差分ログファイルは、2Gバイト(2097151Kバイト)または差分ログファイルを格納しているディスクの空き容量まで自動的に拡張されます。なお、拡張された領域は、抽出処理で差分ログが抽出されると自動的に返却されます。
レプリケーションの運用中に差分ログファイルへの書出し処理で異常が発生した場合、コンソールにエラーメッセージが出力されます。なお、コンソールについては、“はじめに”を参照してください。
この場合、出力されたメッセージIDを基に、以下の対処方法に従ってください。
メッセージID | 現象 | 対処方法 |
---|---|---|
RP04086 | 差分ログファイルの容量不足を検出しました。 | 以下の手順で差分ログを破棄してください。
|
RP13007 | 差分ログファイルの容量が2Gバイトに達しました。 | |
RP04071 | 差分ログファイルの書出し中に入出力障害を検出しました。 | “3.12.1.2 差分ログファイルの再作成”で示す手順で差分ログファイルを再作成してください。 |
RP13004 | 差分ログファイルの内容が破壊されています。 | |
RP04089 | 差分ログファイルがアクセス禁止になっています。 |
注1)“業務の中止”の操作により、一括差分複写業務を中止します。これにより、当日分のスケジュールを停止します。
注2)完了状態にない一括差分複写業務に対し、“業務の中止”を行うと、未反映の差分ログ(抽出データ格納ファイル)が残ります。このため、業務確定コマンド(lxcmtdbコマンド)を実行して、未反映の差分ログ(抽出データ格納ファイル)を削除します。
なお、エラーメッセージのパラメタには、差分ログファイル名が設定されているものがあります。“E.2 Oracle抽出レプリケーションでのファイル構成”の“差分ログファイル”を参照し、該当する抽出定義を特定してください。
レプリケーションの運用中にトランザクションログデータベースへの入出力処理で異常が発生した場合、以下の対処を実施してください。
利用者プログラムを停止
全レプリケーション業務の停止
Linkexpress Replication optionの停止
トランザクションログデータベースの削除
異常原因の対処(DISK交換など)
トランザクションログデータベースの作成
Linkexpress Replication optionの起動
すべての差分ログの取得終了
すべての差分ログの破棄
全複写業務の実行
すべての差分ログの取得開始
すべてのレプリケーション業務の開始
利用者プログラムを開始