サポートと今すぐチャット
サポートとのチャット

SharePlex 11.4 - 管理者ガイド

このガイドについて このガイドで使用される表記規則 SharePlexの概要 SharePlexの実行 SharePlexの複数のインスタンスの実行 sp_ctrlでのコマンドの実行 SharePlexパラメータの設定 データレプリケーションの設定 コンテナデータベースとの間のレプリケーションの設定 名前付きキューの設定 分割レプリケーションの設定 変更履歴ターゲットへのレプリケーションの設定 レプリケーション戦略の設定 DDLレプリケーションの設定 エラー処理の設定 データトランスフォーメーションの設定 セキュリティ機能の設定 SharePlexユーザのセキュリティグループへの割り当て 本番システムでのレプリケーションの開始 SharePlexの監視 レプリケーションの問題の防止と解決 非同期データのrepair Captureプロセスの調整 Postプロセスの調整 Oracleフェールオーバー後のレプリケーションのリカバリ アクティブなレプリケーション環境に対する変更 Oracleアプリケーションのパッチまたはアップグレードの適用 ソースまたはターゲットのOracleデータのバックアップ トラブルシューティングのヒント 付録A: ピアツーピア図 付録B: SharePlex環境変数

compareとrepairを使用する前に

OracleからOracleへのレプリケーション中にcompareまたはrepairコマンドを実行する場合は、その前に以下のガイドラインを確認してください。

  • compareまたはrepairコマンドを実行する場合、SharePlexのすべてのプロセスCapture、Read、Export、Import、Postが実行中でなければなりません。
  • compareまたはrepairするテーブルは、アクティブな設定ファイルの一部でなければなりません。
  • ソーステーブル上にコミットされていないトランザクションがあると、読み取りの一貫性を得るためにcompareおよびrepair処理に必要な短時間のロックができません。compareやrepairを実行する前に、すべてのトランザクションがコミットされていることを確認してください。
  • テーブルが大きい場合は、おそらくTEMPテーブルスペースでソートする必要があります。compareまたはrepairコマンドを実行する前に、TEMPテーブルスペースを拡大しなければならないことがあります。このサイズは、コマンド構文のSP_DEQ_THREADSパラメーターまたはthreadsオプションの設定に依存します。この2つのオプションはいずれも、ターゲット上でSharePlexが使用する処理スレッド数を制御します。各スレッドでテーブルを処理します。デフォルトのスレッド数2の場合、テーブルスペースのサイズは、2つの最大のテーブルを合わせたサイズよりも大きくする必要があります。これよりもスレッド数を大きく設定する場合は、最大のテーブルの数に比例するようにテーブルスペースのサイズを大きくします。ただし、
  • UNDOテーブルスペースも大きくしなければならないことがあります。トランザクション量と最大のテーブルのcompareにかかる時間に基づいて、UNDOテーブルスペースのサイズを大きくし、undo_retentionデータベースパラメーターを大きくすることで、エラー「ORA-1555 Snapshot too oldORA-1555スナップショットが古すぎます」を回避します。LOBを持つテーブルは、持たないテーブルに比べてcompareやrepairに大幅に時間がかかります。

PostgreSQLからPostgreSQLへのレプリケーション中にcompareまたはrepairコマンドを実行する場合は、その前に以下のガイドラインを確認してください。

  • compareまたはrepairコマンドを実行する場合、SharePlexのすべてのプロセスCapture、Read、Export、Import、Postが実行中でなければなりません。
  • compareまたはrepairするテーブルは、アクティブな設定ファイルの一部でなければなりません。
  • ソーステーブル上にコミットされていないトランザクションがあると、読み取りの一貫性を得るためにcompareおよびrepair処理に必要な短時間のロックができません。compareやrepairを実行する前に、すべてのトランザクションがコミットされていることを確認してください。
  • テーブル行のサイズ各列のデータの合計が大きい場合は、SELECTクエリを呼び出す呼び出しプロセスにPostgreSQLデータベースがテーブルデータをポストするため、より大きいメモリ容量を必要とする可能性が高くなります。compareまたはrepairコマンドを実行する前に、十分なメモリがあることを確認してください。サイズは、SP_DEQ_THREADSパラメーターまたはコマンド構文内のthreadsオプションの設定、および一度に処理されるテーブル数と各スレッドに割り当てられるメモリを決定するSP_DEQ_MALLOCの値によって異なります。SP_DEQ_MALLOCパラメーターに割り当てられた値は、実行中のスレッド数で分割されます。

compareおよびrepairパラメーター:

以下は、変更されることが多いcompareとrepairのパラメーターです。必要な場合を除き、値を大きくしないでください。これらのパラメーターの詳細については、『SharePlexリファレンスガイド』の文書を参照してください。

パラメーター 説明
SP_DEQ_MALLOC

このパラメーターはフェッチのバッチサイズを制御します。バッチサイズは、SharePlexがcompareのために一度に選択する行数を制御します。バッチサイズが大きいほど処理速度は向上しますが、より多くのメモリを必要とします。この値は、使用するcompareスレッドの数で等分され、次に、すべての列のサイズを足した値に基づいてバッチサイズが再計算されます。

SP_DEQ_PARRALLISM

このパラメーターは、select文のDegree of Parallelismのヒントを管理します。コマンドのparallelismオプションは、この設定をオーバーライドします。

SP_DEQ_PART_TABLE_UPDATE このパラメーターは、行の移動が可能かどうかによって、Oracleパーティションテーブルでのrepairコマンドの動作を制御します。
SP_DEQ_PG_DECLARE_FETCH_SIZE

このパラメーターは、ドライバが1回のフェッチで結果セットを返そうとするか、複数のフェッチにまたがって返そうとするかを決定します。

このパラメーターはPostgreSQLデータベースにのみ適用されます。

SP_DEQ_READ_BUFFER_SIZE このパラメーターは、フェッチされたLONGおよびLOBデータを保持するバッファのサイズを制御し、利用可能なシステムメモリに基づいて調整することができます。
SP_DEQ_ROW_LOCK_THRESHOLD このパラメーターは、WHEREオプションが使用されているときにSharePlexが行レベルのロックとテーブルレベルのロックのどちらを使用するかを制御するしきい値を設定します。
SP_DEQ_SKIP_LOB

このパラメーターは、compare/repair処理にLOBが含まれるかどうかを決定します。

  • このパラメーターをデフォルトの0に設定すると、処理時のcompareプロセスにLOBが含まれます。
  • このパラメーターを1に設定すると、LOB以外の列のみがcompareされ、repairされます。一度挿入されたLOBが変更されない場合、このパラメーターを1に設定することで、処理を高速化することができます。

このパラメーターはソースシステムで設定します。

SP_DEQ_TIMEOUT このパラメーターは、キューのバックログのしきい値を設定します。バックログが多いと、ソースとターゲットのcompare/repairプロセス間の接続の確立に遅延が生じます。バックログがこの値以上になると、ソースに対して発行されたcompareまたはrepairコマンドはすべて終了し、エラーを返します。このような場合は、システムの処理量が比較的少ないときにcompareやrepairを行うことを検討してください。

repairコマンドとcompareコマンドの使用方法

compareおよびrepairコマンドによって同期されたデータを維持するための推奨手順は、まずcompareまたはcompare usingコマンドを実行し、次にrepair statusコマンドで結果を表示することです。このコマンドは、非同期行とその考えられる原因を表示します。非同期状態の原因が修正されない限り、今回行をrepairしても、レプリケーションは再び非同期になります。問題が解決した後、repairまたはrepair usingコマンドを実行します。

repairまたはrepair usingコマンドは、予めcompareを行うことなく実行できます。このコマンドはまずcompareを行い、同期していない行を特定し、その行をrepairします。しかし、将来的な非同期状態を防ぐには、非同期状態の根本的な原因を解決しなければなりません。

非同期状態の原因と解決策については、を参照してください。

compareのステータスや結果を表示するには、sp_ctrlcompare statusコマンドを使用します。

repairのステータスや結果を表示するには、sp_ctrlrepair statusコマンドを使用します。

repairのタイミング

ターゲットテーブルをrepairする最適なタイミングは、テーブルのサイズ、問題の原因、非同期行の範囲、ユーザをロックアウトできる時間の長さによって異なります。repairを開始する前に、以下を考慮してください。

  • 通常、テーブルのユーザは、テーブルのcompare時に適用される短時間のロックの影響は受けませんが、repair処理中はターゲットテーブルからロックアウトされます。小さなテーブルであれば支障はないかもしれませんが、大規模なrepairが必要な大きなテーブルの場合、待ち時間が非常に長くなることがあります。
  • ターゲットテーブルのロックは、Postがrepairの終了を待ってから、そのテーブルに変更を適用し、他のテーブルに移動しなければならない場合、ポストのパフォーマンスを低下させる可能性があります。これがターゲットデータのレイテンシを増加させ、postキューに操作が蓄積される原因となります。Postが変更する必要があるオブジェクトと、repair中のオブジェクトが異なる場合、2つのプロセスは同時に実行されます。
  • テーブルをすぐにrepairしなければならないが、ロックやレプリケーションのレイテンシを許容できない場合、whereオプションを使用して、特定の行に限定してrepairすることができます。別の方法としてkeyオプションを使用することもできますが、このオプションを使用すると、非同期行を見逃してしまう可能性があります。

  • repairを待つことができる場合は、問題の原因をすぐに修正し、ピーク時以外の時間帯にrepairを行います。
  • レプリケーションのレイテンシは、compareやrepairの処理速度を低下させる可能性があります。ターゲット上でコマンドプロセスを生成するためにソースから送信されたメッセージは、通常の複製されたデータと共にキューを通じて送信されます。データバックログによる遅延が生じると、生成メッセージの送信が遅れることにより、ソース上のプロセスが読み取りの一貫性を失うためエラーが発生します。可能であれば、compareやrepairはピーク以外の時間帯に行います。

compareコマンドとrepairコマンドの実行方法

compareコマンドとrepairコマンドの追加情報と構文については、『SharePlexリファレンスガイド』のコマンドの文書を参照してください。

Captureプロセスの調整

この章では、Oracleソースデータベースにより生成されるREDOの量にCaptureが遅れを取らないように、Captureプロセスのパフォーマンスを向上させる方法を説明します。

内容

LOBマッピングの無効化

ソースデータベースでPK/UKロギングを有効にしている場合より多くのSharePlex機能と高速処理をサポートするために推奨、SP_OCT_ENABLE_LOBMAPパラメーターの設定を確認してください。 このパラメーターは、行の外のLOB列を含むテーブルをレプリケートする際にSharePlexがLOBマップを使用するかどうかを制御します。LOBマップは、PK/UKロギングが有効でない場合に、CaptureプロセスでのLOBIDと行のマッピングに使用されます。LOBマッピングはデフォルトで有効になっています。これらのマッピングはSHAREPLEX_LOBMAPテーブルに格納されます。Captureがマッピングを維持して参照する必要があるため、多数のLOB操作を伴うトランザクションではCaptureの処理速度が低下する可能性があります。データベースでPK/UKロギングが有効になっている場合、このパラメーターを0に設定することでLOBマッピングを無効にすることができます。

アクティブなレプリケーション中にLOBマッピングを無効にするには:

  1. sp_ctrlをソースシステム上で実行します。
  2. SP_OCT_ENABLE_LOBMAPを0に設定します。

    sp_ctrl> set param SP_OCT_ENABLE_LOBMAP 0

  3. Captureを停止します。

    sp_ctrl> stop capture

  4. SHAREPLEX_LOBMAPテーブルをトランケートします。
  5. Captureを再開します。

    sp_ctrl> start capture

関連ドキュメント

The document was helpful.

評価を選択

I easily found the information I needed.

評価を選択