Chat now with support
Chat with Support

SharePlex 8.6.6 - 管理ガイド

このガイドについて このガイドで使用されている表記規則 SharePlex の概要 SharePlex の実行 複数の SharePlex インスタンスの実行 sp_ctrl でのコマンドの実行 SharePlex パラメータ 複製のための Oracle 環境の準備 設定ファイルの作成 オープンターゲットのターゲットへの複製の設定 複製方法の設定 分割レプリケーションの設定 名前付きキューの設定 変更履歴ターゲットを維持するための SharePlex の設定 Oracle DDL の複製 エラー処理のセットアップ データの変換 SharePlex セキュリティ機能の設定 実稼動環境での複製のアクティベート SharePlex の監視 複製上の問題の防止および解決方法 非同期データの修復 Oracle の高可用性を維持するための手順 アクティブな複製環境の変更 Oracle アプリケーションのパッチまたはアップグレードの適用 ソースまたはターゲット上の Oracle データのバックアップ Capture プロセスのチューニング Post プロセスのチューニング 付録 A:ピアトゥピアの説明図 付録 B:SharePlex 環境変数

非同期データの修復

非同期データの修復

この章では、SharePlex の Compare および Repair 機能の概要について説明します。SharePlex は、ソースおよびターゲットシステム間で同期されるデータを維持するのに役立つ、Oracle テーブルのビルトインサポートとしてこの機能を提供します。

コンテンツ

Compare および Repair の概要

非同期データの修復 > Compare および Repair の概要

複製の正常性とパフォーマンスの定期的な監視に加え、定期的にソースとターゲットのデータを比較して、すべてのデータが同期されているのを確認することが重要です。Post は、処理対象の行の非同期状態を検出しますが、隠れた非同期状態が存在する可能性もあります。このような例としては、ターゲットに適用された DML や、不完全なバックアップの復元があります。こうした状況は、非同期の行に影響を与える操作を Post が適用するまで検出されない場合があります。SharePlex の Compare および Repair 機能を使用すると、隠れた非同期状態を検出して修復できます。

SharePlex では、次のコマンドを使用して非同期データを比較および修復できます。

  • compare:個々のソーステーブルとそのターゲットテーブルを比較するか、同じスキーマ内のワイルドカードを使用した一連のテーブルを比較します。
  • compare using:ファイルからの入力を取得して、アクティブな複製設定の中のテーブルの一部またはすべてを比較します。
  • repair:個々のターゲットテーブル、または同じスキーマ内のワイルドカードを使用した一連のテーブルを修復します。
  • repair using:ファイルからの入力を取得して、アクティブな複製設定の中のテーブルの一部またはすべてを修復します。

サポートされるターゲット

Oracle

サーバおよびクライアントプロセスの概要

比較および修復コマンドは、常にソースシステムで発行されます。このコマンドは、ソースシステム上のサーバプロセスを生成し、SharePlex キューを通してメッセージを送信して、ターゲットシステム上にクライアントプロセスを生成します。

次に、サーバおよびクライアントのプロセスが、相互に通信を開始します。コマンドに含まれる構文オプションによっては、プロセスがターゲット上でマルチスレッド化される可能性があります。2 つのプロセスは、ソーステーブルとターゲットテーブルを比較し、その結果をログファイルに書き込みます。

ロックの管理方法

比較時に、SharePlex はソーステーブルに対して短時間の排他ロックを取得し、行選択の読み取りの一貫性を確保します。ターゲットシステムでは、SharePlex はターゲットテーブルの排他ロックを取得し、そのテーブルの比較中、ロックを保持します。これで、SharePlex がテーブルを処理している間にテーブルが変更されることを防ぎます。

テーブルのロック後、ソースとターゲットの両方で、行が同じ方法で読み取られ、並び替えられます。次に、行のバッチが読み込まれ、チェックサムが実行されます。チェックサムが一致した場合、別の行のバッチが同じ方法で処理されます。チェックサムが一致しない場合、プロセスは非同期になっている行を特定し、それらを修復するための SQL 文を作成します。修復コマンドが発行されると、SharePlex は行を修復します。

Compare および Repair を使用する前に

非同期データの修復 > Compare および Repair を使用する前に

compare または repair コマンドを実行する前に、次のガイドラインを確認してください。

  • 比較または repair コマンドを実行するときは、SharePlex のすべてのプロセス(Capture、Read、Export、Import、Post)が実行されている必要があります。
  • 比較または修復するテーブルは、アクティブな設定ファイルの一部である必要があります。
  • ソーステーブルのコミットされていないトランザクションにより、比較および修復プロセスが、読み取りの一貫性のために必要な短時間のロックをできなくなります。比較または修復を実行する前に、すべてのトランザクションがコミットされていることを確認します。
  • テーブルが大きい場合は、TEMP 表領域での並び替えが必要な可能性があります。compare または repair コマンドを実行する前に、TEMP 表領域を大きくする必要があります。サイズは、コマンド構文内の SP_DEQ_THREADS パラメータまたは threads オプションの設定に依存します。どちらもターゲット上の SharePlex が使用する処理スレッドの数を制御します。各スレッドはテーブルを処理します。2 つのスレッドのデフォルトでは、表領域のサイズを、2 つの最大のテーブルの合計サイズよりも大きくする必要があります。スレッド数を大きく設定した場合は、最大のテーブルの数に対応できるように表領域のサイズを大きくします。ただし、
  • UNDO 表領域を大きくすることが必要な場合もあります。トランザクションの量および最大テーブルの比較にかかる時間に基づいて、UNDO 表領域のサイズを増やし、undo_retention データベースパラメータを大きくして、ORA-1555 Snapshot too old error を回避します。LOB のあるテーブルは、LOB のないテーブルよりも比較または修復にかなり時間がかかります。

一般的に変更される比較および修復パラメータは次のとおりです。必要な場合を除き、値を増やさないでください。これらのパラメータの詳細については、『 SharePlex リファレンスガイド』のドキュメントを参照してください。

パラメータ 説明
SP_DEQ_MALLOC このパラメータは、フェッチバッチサイズを制御するためにソース側で使用されます。バッチサイズは、SharePlex が比較のために一度に選択する行数を制御します。バッチサイズを大きくすると、処理速度が向上しますが、より多くのメモリが必要です。
SP_DEQ_PARRALLISM

このパラメータは、SELECT 文の並列処理の次数のヒントを管理します。コマンドの parallelism オプションは、この設定を上書きします。

SP_DEQ_PART_TABLE_UPDATE このパラメータは、行の移動が可能かどうかに応じて、Oracle パーティションテーブルで repair コマンドがどのように機能するかを制御します。
SP_DEQ_READ_BUFFER_SIZE このパラメータは、フェッチされた LONG および LOB データを保持するバッファのサイズを制御し、使用可能なシステムメモリに基づいて調整できます。
SP_DEQ_ROW_LOCK_THRESHOLD このパラメータは、where オプションが使用されているときに、SharePlex が行レベルまたはテーブルレベルのロックを使用するかどうかを制御するしきい値を設定します。
SP_DEQ_SKIP_LOB このパラメータは、LOB が compare/repair 処理に含まれるかどうかを決定します。LOB を挿入しても変更されない場合は、このパラメータを 0 に設定して処理を高速化し、非 LOB 列のみを処理に含めるようにすることができます。
SP_DEQ_TIMEOUT このパラメータは、キューバックログのしきい値を設定します。高バックログの場合、ソースとターゲットの compare/repair プロセス間の接続の確立が遅くなります。バックログがこの値以上になると、ソースで発行された compare または repair コマンドが終了し、エラーが返されます。このような場合は、システムがビジーではないときに、比較または修復を実行することを検討してください。

repair および compare コマンドの使用方法

非同期データの修復 > repair および compare コマンドの使用方法

比較および修復コマンドを使用して同期したデータを維持するには、最初に compare または compare using コマンドを実行してから、repair status コマンドで結果を表示することをお勧めします。このコマンドは、非同期になっている行および考えられる原因を示します。非同期状態の原因を修正しない限り、この時点で行を修復しても、複製は再び非同期になります。問題を修正したら、repair または repair using コマンドを発行します。

事前の比較を行わずに、repair または repair using コマンドを実行できます。このコマンドは、最初に比較を実行して、非同期行を特定し、それらの行を修復します。ただし今後の非同期状態を防ぐために、非同期状態の根本的な原因を修正する必要があります。

非同期状態の原因および解決方法については、『SharePlex 管理ガイド』の「同期の問題の解決」を参照してください。

比較のステータスまたは結果を表示するには、sp_ctrl の中の compare status コマンドを使用します。

修復のステータスまたは結果を表示するには、sp_ctrl の中の repair status コマンドを使用します。

修復を実行するとき

ターゲットテーブルを修復する最良の時期は、テーブルのサイズ、問題の原因、非同期行の範囲、およびどれだけの時間ユーザーをロックアウトできるかによって異なります。修復を開始する前に、次の条件を考慮します。

  • テーブルのユーザーは通常、テーブルを比較するときに適用される短時間のロックの影響を受けませんが、repair プロセスの間は、ターゲットテーブルからロックアウトされます。小さなテーブルの場合は、これは大問題になりませんが、広汎な修復が必要な大きなテーブルの場合は、待ち時間は大問題になることがあります。
  • ターゲットテーブルをロックすると、そのテーブルに変更を加えて他のテーブルに移動する前に Post が修復の終了を待つ必要がある場合に、post のパフォーマンスが低下する可能性があります。このため、ターゲットデータの遅延が増加し、post キューに操作が蓄積されます。変更が必要なオブジェクトの Post が修復するオブジェクトと異なる場合は、2 つのプロセスを同時に実行できます。
  • テーブルをすぐに修復する必要があるが、ロックまたは複製の遅延を許容できない場合は、修復を特定の行に限定するために、where オプションを使用できます。代わりに key オプションも使用できますが、修復で一部の非同期行が消失する可能性があります。

  • 修復まで待つことができる場合は、問題の原因をすぐに修正してから、ピーク時間外に修復を実行します。
  • 複製の遅延により、比較および修復プロセスの速度が低下する可能性があります。ターゲットのコマンドプロセスを生成するためにソースから送信されたメッセージは、通常の複製されたデータとともにキューを通して送信されます。データバックログによって引き起こされる遅延は、生成メッセージを遅延させ、ソース上のプロセスで読み取りの一貫性が失われるため、エラーが発生します。可能な場合は、オフピーク時に比較と修復を実行します。

比較および修復コマンドの実行方法

比較および修復コマンドの追加情報と構文を取得するには、『 SharePlex リファレンスガイド』のコマンドのマニュアルを参照してください。

Related Documents

The document was helpful.

Select Rating

I easily found the information I needed.

Select Rating