立即与支持人员聊天
与支持团队交流

SharePlex 11.4 - 管理者ガイド

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

Oracle Postパラメーター

これらのパラメーターは、Oracleターゲットにデータを適用する際にSharePlexのPostプロセスで使用されます。

SP_OPO_CHANGE_ID_START_VALUE

このパラメーターはchangeidメタデータ列の開始値を設定します。この列は変更履歴ターゲットに含めることができ、targetコマンドで設定します。changeidは、レコードを一意に識別し、重複を防ぐためにSharePlexによって生成されます。

 

デフォルト: 0オフ

有効な値の範囲: 0~9,223,372,036,854,775,807

有効になるタイミング: Postの再開時

SP_OPO_COMMIT_REDUCE_MSGS

Post Enhanced Performance機能のコミット削減コンポーネントにしきい値を設定します。コミット削減機能により、小規模なトランザクションのバッチを大規模なトランザクションにまとめるようにPostを設定することができます。これにより、処理しなければならないコミットや確認の数を減らすことができます。トランザクションが小さければ小さいほど、パフォーマンスは向上します。

指定されたメッセージ数に達すると、Postはコミットを発行します。トランザクションの境界がこのメッセージの範囲内にあるトランザクションのコミットはスキップされ、それらのトランザクションはすべて1つのトランザクションとしてコミットされます。コミット削減はデフォルトでオンになっています。無効にするには、このパラメーターの値を1に設定します。

このパラメーターの設定は絶対的なしきい値ではありません。SharePlexは、結合された異なるトランザクションにトランザクションを分割することはありません。したがって、すべての操作とグループ内の最後のトランザクションのコミットを含めるために、Postがそのしきい値を超えなければならない可能性があります。

 

デフォルト: 100個のメッセージ

有効な値の範囲: 1 または任意の正の整数

有効になるタイミング: Postの再開時

SP_OPO_CONNECTION_POOL

このパラメーターは、Postが接続プールをどのように使用するかを制御します。

接続プールが有効デフォルトで、サブキューがOracleへの接続を必要とする場合、サブキューはコミットされているサブキューを探そうとします。もし見つかれば、Oracleへの新しい接続を開くのではなく、その接続を使用します。これにより、PostはOracleへの接続を減らして操作することができます。

接続プールを使用しない場合、各サブキューはOracleへの個別の接続を持ち、サブキューがコミットされるまで、その接続をSP_OPO_IDLE_LOGOUTパラメーターによって決定される時間保持します。

このパラメーターを使用するには:

  • 接続プールを有効にすると、SharePlexが多数のサブキューを使用して実行されている場合に便利です。
  • SharePlexが、すぐに再利用される少数のサブキュー20個未満で実行されている場合、プールを無効にして接続を移動しない方が効率的な場合があります。

 

デフォルト: 1有効

有効な値の範囲: 0または1フラグ

有効になるタイミング: Postの再開時

SP_OPO_CONT_ON_ERR

このパラメーターは、修正可能なエラーが発生したときにPostを停止するかどうかを制御します。このフラグをデフォルトの0に設定すると、Postは、すべてのOracleおよびSharePlexのエラーで停止します。SharePlexまたはOracleの特定のエラーが発生してもPostにポストを続けさせるには、変数ディレクトリのdataサブディレクトリにあるoramsglistファイルにそれらのエラーをリストし、このパラメーターを1に設定します。このパラメーターを2に設定すると、Postはテーブルエラーを他のエラーと同じように扱い、そのエラーがoramsglistファイルにリストされていない限りポストを停止します。

パラメーターの設定にかかわらず、以下のエラーが発生してもPostはポストを継続します。

Postが停止しないデフォルトのエラー

  • ユニークキー違反
  • 操作中断
  • データなし
  • そのようなテーブルがない
  • 無効な数字
  • 数値以外の日付
  • 無効な行ID
  • 無効な16進数
  • not-nullをnullに更新できない
  • 年は-4713か~+9999でなければならない
  • チェック制約違反
  • パケットライターの失敗*
  • シーケンスが見つからない
  • 内部エラー

*パケットライターの失敗とnowaitでのリソースビジーは、SP_OPO_RETRIES_MAXパラメーターデフォルトは10に基づいて再試行され、その後にPostが終了します。

エラー発生時に続行するようにPostを設定する方法の詳細については、『SharePlex管理ガイド』を参照してください。

 

デフォルト: 0すべてのエラーで停止

有効な値の範囲: 0、1、2フラグ

有効になるタイミング: 即時

SP_OPO_DEPENDENCY_CHECK

このパラメーターは以下の機能を制御します。

  • Post Enhanced Performance機能のTransaction Concurrencyコンポーネント。Postのパフォーマンスを調整する方法の詳細については、『SharePlex管理ガイド』を参照してください。
  • ターゲットテーブルの有効なON DELETE CASCADE制約のPost処理レプリケートされた親削除を適用し、レプリケートされたカスケード削除を無視

これらの機能をサポートするには、以下のようにします。

  1. SP_OPO_DEPENDENCY_CHECKを適切な値に設定します。

    • コミット削減と同時トランザクションを有効にするには、このパラメーターを1に設定します。この機能を使用するには、プライマリキーとユニークキーのサプリメンタルロギングをソースで有効にする必要があります。
    • ON DELETE CASCADEを有効にするには、このパラメーターを2に設定します。

注意: ON DELETE CASCADE機能は、設定2で有効になるPost Enhanced Performance機能に依存しています。SP_OPO_DEPENDENCY_CHECKの設定に加えて、ソース上でプライマリキー、一意インデックス列、外部キー列のロギングを有効にする必要があります。

  1. SP_OCT_REDUCED_KEYパラメーターを0に設定し、Postが使用するために必要なデータをすべてターゲットに送信します。「SP_OCT_REDUCED_KEY 」を参照してください。
  2. SP_OPO_REDUCED_KEYパラメーターを0、1デフォルトまたは2に設定します。「SP_OPO_REDUCED_KEY」を参照してください。

 

デフォルト: 0オフ

有効な値の範囲: 0、1、2フラグ

有効になるタイミング: Postの再開時

SP_OPO_DEPENDENCY_SIZE

このパラメーターは、Post Enhanced Performance機能の依存性チェックで使用されるメモリのサイズを設定します。デフォルト値で十分ですが、必要であれば大きくすることもできます。

 

デフォルト: 7019

有効な値の範囲: 任意の有効なメモリ値

有効になるタイミング: Postの再開時

SP_OPO_DISABLE_OBJECT_NUM

このパラメーターは、ソーステーブルのオブジェクトIDに基づいて、レプリケートされたDMLおよびDDL操作をPostがターゲットにポストしないようにします。ソーステーブルのデータが無効であるか破損している場合、ソーステーブルにターゲットでサポートされていないデータ型が含まれている場合、またはテーブルの操作をターゲットデータベースに反映させたくないその他の理由がある場合に、このパラメーターを設定できます。

このパラメーターは1つまたは複数のテーブルに設定できます。これにより、データを再同期して設定ファイルを再度アクティベーションする時間ができるまで、ソーステーブルのターゲットテーブルでそれ以上レプリケーションが実行されないようにします。Postプロセスは、これらのテーブルの複製されたすべてのメッセージをpostキューから破棄するため、メッセージはキューに蓄積されません。

このパラメーターは注意して使用してください。これを有効にしてソーステーブルに対してDDLまたはDMLを実行すると、変更がポストされないため、ターゲットデータが古くなります。レプリケーション設定外の他のテーブルの外部キーなど、テーブルに依存関係がある場合は、ポストを無効にすると依存関係が満たされなくなります。

このパラメーターは、デフォルトでは無効になっています。この機能を有効にするには、ターゲットシステムで以下のコマンドを実行します。ここに表示される数字は、ポストから除外するソーステーブルのオブジェクトIDです。

sp_ctrl(sysB)> set param SP_OPO_DISABLE_OBJECT_NUM 12345,67890

各オブジェクトIDをカンマで区切り、その間にはスペースを入れません。エントリ間にスペースを使用するには、以下の例のようにリスト全体を引用符で囲みます。

sp_ctrl(sysB)> set param SP_OPO_DISABLE_OBJECT_NUM "498438, 1000, 497109"

無効なオブジェクトIDは無視されます。

ターゲットテーブルへのポストを再開する準備ができたら、SP_OPO_DISABLE_OBJECT_NUMを0に設定します。

 

デフォルト: 0オフ

有効な値の範囲: カンマで区切られた有効なOracleオブジェクトIDのリスト

有効になるタイミング: 即時

SP_OPO_HINTS_LIMIT

このパラメーターは、ヒントファイルに記載できるヒントテーブルとインデックスの組み合わせの最大数を制御します。ヒントは、定義されたインデックスがあるテーブルに対してPostがフルテーブルスキャンを行っている場合にのみ、使用してください。大量のヒントを使用すると、Postプロセスのパフォーマンスが低下する可能性があります。ヒント機能の詳細については、『SharePlex管理ガイド』を参照してください。

 

デフォルト: 100ヒント

有効な値の範囲: 任意の正の整数

有効になるタイミング: Postの再開時

SP_OPO_LOG_CONFLICT

このパラメーターを使用すると、成功したコンフリクト解決プロシージャに関する情報をSHAREPLEX_CONF_LOGテーブルに記録できるようになります。これは、SharePlexが提供する準備されたルーチンにのみ適用されます。

  • 1に設定すると、SHAREPLEX_CONF_LOGテーブルへのコンフリクト解決のロギングが有効になります。

    注意: 1に設定すると、SHAREPLEX_CONF_LOGテーブルのEXISTING_TIMESTAMPおよびTARGET_ROWID列既存のデータが置換されない場合は更新されません。

  • 2に設定すると、SHAREPLEX_CONF_LOGテーブルへのコンフリクト解決のロギングが、Postによる追加のメタデータのクエリと共に有効になります。

    準備されたルーチンLeastRecentRecordまたはMostRecentRecordを使用すると、Postは既存のレコードのタイムスタンプ列のターゲットデータベースにクエリを実行します。クエリの結果は、SHAREPLEX_CONF_LOGテーブルのEXISTING_TIMESTAMP列にログ記録されます。

    準備されたルーチンでは、入力されたレコードで置換されなかった行に対し、Postは置換される可能性のある既存の行のTARGET_ROWIDを問い合わせます。そうでない場合、既存の行のROWIDは記録されません。

    注: 2と設定すると、クエリを実行した結果、Postのパフォーマンスに影響を与える可能性があります。

 

デフォルト: 0無効

有効な値の範囲: 0、1、または2

有効になるタイミング: Postの再開時

SP_OPO_MAX_CDA

このパラメーターはSQLキャッシュモジュール用であり、セッションが同時に開くことができるカーソルキャッシュの最大数を制御します。この数値は、v$parameterビューのOPEN_CURSORSに対するOracle設定より小さくする必要があります。SP_OPO_SQL_CACHE_DISABLEが0有効に設定されている場合にのみ使用されます。

 

デフォルト: 50

有効な値の範囲: 任意の正の整数

有効になるタイミング: Postの再開時

SP_OPO_MAX_OEXN_TIME

このパラメーターは、SQLスレッドがOCIStmtExecute ( )の呼び出しに費やすことができる最大時間を秒単位で制御します。この時間を経過すると、タイムキーパー スレッドがデッドロック状態になり、マルチスレッドPostプロセスは強制終了されます。

 

デフォルト: 900 [秒]

有効な値の範囲: 任意の正の整数

有効になるタイミング: Postの再開時

SP_OPO_MAX_ROLLBACK_MESSAGES

このパラメーターは、部分的ロールバックで後方カウントを増分する際の最大メッセージ数を指定します。メインスレッドは、前方にスキャンし、後方メッセージをカウントします。後方カウントがこのパラメーターに設定された最大数に達すると、メインスレッドはロールバックを解決します。ロールバックが解決されると、メインスレッドはメッセージのディスパッチを再開します。まだ後方にメッセージがある場合、メインスレッドは再びサブキューを前方にスキャンします。次の10,000の後方メッセージのグループパラメーターが10,000に設定されている場合も、同じプロシージャを使用して解決されます。

 

デフォルト: 10,000メッセージ

有効な値の範囲: 11~1,000,000

有効になるタイミング: Postの再開時

SP_OPO_NLS_CONVERSION

このパラメーターは、OracleソースとOracle ターゲット間の文字セット変換を制御します。

SharePlexが、使用しているOracleの文字セット内のすべての文字を複製するには、以下のいずれかが真でなければなりません。

  • ソースとターゲットの文字セットが同一である
  • ソースデータベースの文字セットが、ターゲットデータベースの文字セットのサブセットであるソースに含まれるすべての文字がターゲットの文字セットに存在する

SharePlexでは、以下の文字セットがテストされ、サポートされています。

US7ASCII

UTF8

WE8ISO8859P1

AL16UTF16

AL32UTF8

KO16KSC5601

デフォルトでは、SharePlexにより、Oracleターゲットデータベースは文字変換を行うことができます。Postはソースデータの文字エンコーディングをOracleに通知し、Oracleは必要な変換を実行します。

関係する文字セットによっては、Oracleの変換はデータロスにつながる可能性があります。次などを考慮します。

例1: JA16SJIS文字セットの「米」という日本語文字は、US7ASCII文字セットには対応する記号がありません。この記号をUS7ASCIIデータベースに複製しようとすると、Oracleはこの記号を「?」文字に変換します。

例2: Oracleによると、WE8ISO8859P1文字セットはUS7ASCII文字セットのスーパーセットであるため、US7ASCIIの文字はすべて、変換されずにWE8ISO8859P1ターゲットデータベースにポストされると考えるのが論理的です。これは、0x00から0x7Fの範囲の文字に当てはまります。しかし、Oracleは、0x80から0xFFの範囲の文字の最上位ビットを除去します。この「変換」は、ソースのスーパーセットである文字セットにレプリケートする際に、データロスを引き起こす可能性があります。

注意: Oracleは、文字セットが同一の場合は文字を変換しません。したがって、WE8ISO8859P1のデータをWE8ISO8859P1の文字セットを持つデータベースにポストすると、Oracleの変換プロセスがバイパスされます。

データを変換せずに適用するには:

SP_OPO_NLS_CONVERSIONパラメーターを1に設定し、データを変換して適用します。詳細については『SharePlexSharePlexリファレンスガイド』を参照してください。

注意: ソースデータベースのNLS_NCHAR_CHARACTERSETとターゲットデータベースのNLS_NCHAR_CHARACTERSETが異なる場合、SharePlexは、常にNVARCHARとNCLOBのデータを変換します。

 

デフォルト: 1

有効な値の範囲: 0または1フラグ

有効になるタイミング: Postの再開時

SP_OPO_NLS_DEFAULT_COMPAT

このパラメーターは、Postが文字データCHAR、VARCHARを変換するかどうかを制御します。デフォルトでは変換は行われません。7に設定すると、Postは文字データは変換しませんが、CLOBデータは変換します。compare/repairコマンドは、無変換の文字データと変換後のCLOBデータをcompare・repairします。NCHARデータのレプリケーションには影響しません。

SP_OPO_NLS_DEFAULT_COMPATはSP_OPO_NLS_CONVERSIONよりも優先されます。

 

デフォルト: 0

有効な値の範囲: 0または7

有効になるタイミング: Postの再開時

SP_OPO_OBJID_DEBUG

このパラメーターは、Postの特定のオブジェクトテーブルなどのデバッグを可能にします。SP_OPO_OBJID_DEBUGパラメーターは通常、非同期のデバッグに使用されます。SP_OPO_OBJID_DEBUGパラメーターを使用するには、ターゲットシステムでその値を、ソースデータベースのオブジェクトのオブジェクトIDの値に設定します。

 

デフォルト: 0

有効な値の範囲: 0以上の任意の数値

有効になるタイミング: 即時

SP_OPO_ONELINE_DEBUG

このパラメーターは、Postプロセスのオンラインデバッグ機能を制御します。

オンラインデバッグ機能により、システムリソースを大量に消費することなく、非同期エラーのデバッグを実行できます。オンラインデバッグでは、データストリームで非同期状態が発生した場所を検出するのに十分な情報を1行で記録します。問題を引き起こしているプロセスがオンラインデバッグで特定されたら、そのプロセスについて通常のデバッグを有効にすることができます。

このパラメーターを有効にするには、デバッグするオブジェクトをオブジェクトIDで指定し、それぞれをカンマで区切ります。

例:

sp_ctrl> set sp_opo_oneline_debug 230230, 351626

以下の項目が記録されます。

  • 操作の状態。Dispatchキューからの読み込みProcessMessageSQLコードの処理Skippedコミット削減機能が有効な場合はコミット、またはExecSQLターゲットへの適用のいずれか
  • SharePlexが使用するトランザクション識別子
  • 影響を受けたDMLまたはDDL操作のタイプ
  • 影響を受けるソーステーブルのオブジェクトID
  • 影響を受ける行の行識別子Oracle行ID
  • 操作が行われた時刻Oracle
  • 影響を受ける操作のログシーケンス番号とログ内のオフセット
  • トランザクションのOracle SCN
  • 冗長な操作を防ぐ内部SharePlexコード

 

デフォルト: 無効

有効な値の範囲: オブジェクトIDによりリストされるオブジェクトのリストを形成する文字列カンマで区切る

有効になるタイミング: 即時

SP_OPO_OUT_OF_SYNC_SUSPEND

このパラメーターは、非同期状態を検出したときのSharePlexの動作を以下に基づいて制御します。

  • INSERT: 行が既に存在するため、一意制約違反エラーが発生します。
  • UPDATEとDELETE: 行がデータベースにありません。

値0デフォルト

トランザクションに非同期の操作が含まれる場合のPostのデフォルトの動作は、トランザクション内の他の有効な操作の処理を継続し、レイテンシを最小限に抑え、ターゲットを可能な限り最新の状態に保つことです。レイテンシとは、ソースでトランザクションが発生してから、それがターゲットに適用されるまでの時間のことです。きわめて量の多いトランザクションやネットワークトラフィックの中断など、さまざまな要因がレプリケーションのレイテンシの大きさに影響を与えます。

Postは、SQLステートメントと非同期の操作のデータをID_errlog.sqlログファイルに記録します。ここで、IDはデータベース識別子です。このファイルは、ターゲットシステムの変数データディレクトリのlogサブディレクトリにあります。

値1

値1を指定すると、Postは非同期状態を検出したときにポストを停止します。Postは、SQLステートメントと非同期の操作のデータをID_errlog.sqlログファイルに記録し、その後停止します。

このパラメーターを1の値に設定した場合は、レプリケーションプロセスのステータスを頻繁にチェックしてください。Postを停止すると、ソースデータベースとターゲットデータベース間にレイテンシが発生し、レプリケーションキューにデータが蓄積されるため、利用可能なディスク容量を超える可能性があります。SharePlexには、レプリケーションのステータスをチェックするためのいくつかのsp_ctrlコマンドと、無人でSharePlexを監視するためのツールがあります。SharePlexを監視する方法の詳細については、『SharePlex管理ガイド』を参照してください。

トランザクションに非同期の操作が含まれている場合にトランザクション全体をロールバックするようにPostを設定するには、SP_OPO_SAVE_OOS_TRANSACTIONも参照してください。

 

デフォルト: 0非同期状態では停止しない

有効な値の範囲: 0または1フラグ

有効になるタイミング: 即時

SP_OPO_POSTER_DELAY

このパラメーターは、Postプロセスがターゲットインスタンスにレコードをポストするまでの遅延時間を制御します。通常、Postはソースシステムとターゲットシステム間のレイテンシを最小にするために変更を即座に適用しますが、最大5日間7200分ポストを遅らせることができます。

ポストを遅らせることで、ソースシステムでの不要な削除やオブジェクトのドロップによる偶発的な損失からデータを保護することが可能になります。この遅延により、間違いを検知し、間違いがレプリケートされる前にターゲットインスタンスからデータを回収するのに十分な時間が得られます。「what-if」分析を実行することも、このパラメーターをデフォルトから変更する理由のひとつです。ターゲットデータベースを時間的に遅らせることで、実際のものとcompareして予測モデリングを検証することができます。

SP_OPO_POSTER_DELAYによる遅延は、メッセージが最初にREDOログに表示された時点から測定されます。

このパラメーターを使用する際は、以下の点を考慮してください。

  • 指定された時間が経過してデータがデータベースに適用されるまでの間に、postキューにデータを収集するために十分なディスク容量があることを確認してください。
  • パラメーターの設定に基づいていつポストを開始するかを決定するために、SharePlexはターゲットシステムの現在のタイムスタンプと、ソースシステムのREDOログにレコードが記録された時刻をcompareします。これらのマシンは、別の、互いに何千マイルも離れている場所にある可能性があります。タイムゾーンの差を考慮し、それを遅延時間に追加します。

    例えば、アメリカのカリフォルニア州ロサンゼルスとオーストラリアのシドニーでは18時間の時差があります。ポストを5時間遅らせるには、希望する5時間の遅延と18時間の時差を考慮して、SP_OPO_POSTER_DELAYを23時間1,380分に設定する必要があります。また、その場所がサマータイムを採用しているかどうかも考慮してください。それにより、2地点間の時差が変わる可能性があります。サマータイムの実施方法は、サマータイムを導入している国によって異なり、同じ国内でも異なる場合があります。

  • このパラメーターは、例えば、ソースシステムがシドニーにあり、ターゲットシステムがロサンゼルスにある場合など、時間の流れを逆行するような形で使用しないでください。この場合、SharePlexが各システムのタイムスタンプをcompareすると、マイナスの時間差になります。例えば、シドニーの4月2日午前2時は、ロサンゼルスの4月1日午前8時です。このパラメーターは0未満の設定には対応していません。

 

デフォルト: 0分

有効な値の範囲: 0~7,200分

有効になるタイミング: 即時

SP_OPO_PRB_MISMATCH_SUSPEND

このパラメーターを1に設定すると、部分的ロールバックで不一致が発生したときに Postが停止します。これにより、問題を調査し、解決してから、Postの処理を再開できます。

 

デフォルト: 0オフ

有効な値の範囲: 0または1フラグ

有効になるタイミング: 即時

SP_OPO_READRELEASE_INTERVAL

このパラメーターは、Postの読み取り/リリースの頻度を制御します。通常、Postは各COMMITを受信した後に読み取り/リリースを実行します。これは、チェックポイントのリカバリプロセスの一環として、キューからそのトランザクションのデータを削除することを意味します。小規模なトランザクションの場合は、これが要因となってターゲットシステムで過剰なI/Oが行われ、Postの速度を低下させます。ほとんどのトランザクションが小規模の場合は、PostがCOMMITの後に毎回行うのではなく、一定のメッセージ数に達した後に読み取り/リリースを行うようにこのパラメーターを設定できます。

読み取り/リリースの間隔を設定する場合、コミットされたトランザクションの後に新しいデータが続かない場合例えば、その日の最後のトランザクションの場合や、それ以上のユーザアクティビティがない場合、PostはCOMMITを処理し、内部パラメーターSP_OPO_IDLE_LOGOUTによって制御される一定時間待機することに注意してください。データが到着しない場合、PostはSP_OPO_READRELEASE_INTERVAL間隔が満たされていなくても読み取り/リリースを実行します。postキュー内のメッセージ数が0になり、Postがキューからのメッセージをすべて処理し終わったことを示します。

注意: Postプロセスには複数のスレッドがあるため、メッセージ数はキューではなく各スレッドに関連付けられます。そのため、読み取り/リリースの間隔が予想よりも長くなり、デフォルト値を小さくする必要がある場合があります。

 

デフォルト: 100

有効な値の範囲: 任意の正の整数

有効になるタイミング: 即時

SP_OPO_REDUCED_KEY

このパラメーターはPostのWHERE句の内容を制御します。PostはWHERE句を使用して、ソースから複製されたUPDATEによって変更する必要がある行をターゲットで見付けます。SharePlexの機能によって、PostのWHERE句で使用する必要のあるデータの量が異なることがあります。

  • 0に設定すると、このパラメーターは、Captureから送信されるすべてのデータのWHERE句を作成するようにPostに指示します。Captureが送信するデータは、SP_CAP_REDUCED_KEYパラメーターの設定によって異なります。キーの値と、LONGまたはLOB以外のすべての列をWHERE句に含めるには、両方のパラメーターを0に設定します。

    重要! ピアツーピア構成では0に設定する必要があります。

  • 1に設定した場合、このパラメーターは、変更された列のキー値と変更前の値でWHERE句を構築するようにPostに指示します。この設定により、PostはWHERE句を作成する際に、変更された列の変更前後のcompareができるため、レプリケーションのパフォーマンスとターゲットデータ整合性のバランスが適切になります。この設定を使用するには、SP_CAP_REDUCED_KEYパラメーターを0または1に設定する必要があります。SharePlexが変更前後の値をどのように使用するかの詳細については、『SharePlex管理ガイド』を参照してください。
  • 2に設定すると、このパラメーターはキー列のみのWHERE句を作成するようにPostに指示します。この設定は、ポストのパフォーマンスを最大化するために使用できます。この設定では、変更された列の変更前後のcompareが省略されるため、SharePlex以外のプロセスやユーザがターゲットデータを変更できないようにする必要があります。さらに、compareコマンドを使用して、定期的に完全性の検証を行うことをお勧めします。

    注意: 水平分割レプリケーションでSP_OPX_REDUCED_KEYパラメーターが2に設定されている場合、PostはUPDATE句のために追加される列のキーと変更前のデータでWHERE句を準備します。

SP_CAP_REDUCED_KEYも参照してください。

デフォルト: 0

有効な値の範囲: 0、1、2

有効になるタイミング: Postの再開時

SP_OPO_RETRIES_MAX

このパラメーターは、初回に失敗したSQLステートメントのポストをPostプロセスが試行する回数を制御します。

Postは、失敗した操作のうち、再試行すれば成功する可能性があるものを再試行します。Postが再試行する主な操作は、TNSの書き込みの失敗、接続の失敗、またはPostがTRUNCATEを適用する必要があるテーブルのロックです。

失敗した操作が成功する可能性を高めるには、SP_OPO_RETRIES_MAXパラメーターの値を大きくして、Postが試行できる操作の回数を増やします。同時に、SP_OPO_RETRY_DELAY_TIMEパラメーターの値を大きくして、試行間隔を長くします。その結果、試行と次の試行の間にロックやその他のブロック操作を解決するのに十分な時間を確保できます。

Postプロセスがエラー発生時に続行するように設定されている場合SP_SYS_SUSPEND_ON_ERROR=0、またはエラーメッセージがoramsglistファイルに記載されている場合、Postはキュー内の次のトランザクションに移ります。それ以外のすべての場合では、最大試行回数に達するとPostは停止します。

重要: このパラメーターの値を小さくすると、キューにデータが蓄積され、利用可能なディスク容量を超える可能性があります。

 

デフォルト: 10回

有効な値の範囲: 0または任意の正の整数

有効になるタイミング: 即時

SP_OPO_SAVE_OOS_TRANSACTION

このパラメーターは、トランザクションに非同期操作が含まれている場合に、Postがトランザクションをロールバックして破棄するかどうかを制御します。この機能は、SP_OPO_SAVE_OOS_TRANSACTIONパラメーターによって制御されます。

このパラメーターの使用方法

このパラメーターが1に設定され、トランザクションに非同期エラーを発生させる操作が含まれている場合、Postはトランザクション全体を破棄し、そのトランザクションのすべての操作をSQLファイルに保存します。このファイルを編集して失敗したSQLの問題をrepairしてから、ファイルを実行してターゲットデータベースにトランザクションを適用することができます。

このパラメーターを1に設定すると、Postはロールバックされたトランザクションに続く有効なトランザクションの処理をデフォルトで継続します。これはターゲットのレイテンシを防止するためです。トランザクションをロールバックした後にPostを停止するように設定するには、SP_OPO_OUT_OF_SYNC_SUSPENDパラメーターを1に設定します。

重要! このパラメーターは、アプリケーションが1つのトランザクション内で相互に依存するすべての変更を行うことが分かっている場合にのみ使用してください。

ロールバックされるトランザクションに関係するすべてのテーブルには、以下のデータ型のみが含まれている必要があります。

  • CHAR – US7ASCII
  • VARCHAR – US7ASCII
  • Number
  • DATE
  • TIMESTAMP
  • TIMESTAMP WITH TIME ZONE
  • TIMESTAMP WITH LOCAL TIME ZONE
  • INTERVAL
  • ROWID
  • RAW
  • BINARY FLOAT
  • BINARY DOUBLE

 

ロールバックされたトランザクションには、それぞれ独自のSQLファイルがあります。ファイル名はSCN_queue.sqlです。ここで、

  • SCNはトランザクションのコミットシステム変更番号SCNです。
  • queueは、トランザクションが含まれるPostキューの名前です。

ファイル名の例:

4346118046_postq1.sql

メモ:

  • 各SQLファイルは、SharePlex変数データディレクトリ内のoosディレクトリに保存されます。ora_cleanspユーティリティを使用してSharePlex環境を再起動する場合は、ファイルの場所を変更する必要があるかもしれません。このユーティリティを実行すると、トランザクションファイルが削除されます。targetコマンドのfileカテゴリのオプションのいずれかを使用して、SQLファイルの場所、サイズ、数を変更することができます。

  • この機能が有効な場合、Postはトランザクションの非同期の部分のみをerrlog.sqlファイルに書き込むのではなく、トランザクション全体をSCN_queue.sqlファイルに書き込みます。
  • この機能はOracleターゲットのみをサポートしています。
  • Postは引き続き非同期メッセージをstatusdbに生成し、sp_ctrlshow statusdbコマンドが発行されると、そのメッセージが表示されます。SQLファイルを使用してトランザクションを適用した後、clear statusコマンドを使用して、これらのステータスメッセージを消去できます。
  • ロールバックしたトランザクションを「ロールバック解除」することはできません。

 

デフォルト: 0オフ

有効な値の範囲: 0または1フラグ

有効になるタイミング: Postの再開時

SP_OPO_SQL_CACHE_DISABLE

このパラメーターはSQL Cache機能を有効または無効にします。デフォルトではSQL Cacheはオンで、このパラメーターは0に設定されます。1の設定では、SQL Cacheは無効になります。3の設定ではバッチ操作のSQL Cacheが無効になり、Postが使用するメモリの量が減少します2の設定は不可

SQL Cacheを無効にすると、SharePlexはイベントログに以下のメッセージを表示します。 SQL Cache disabled.SQL Cacheが無効になりました。

SQL Cacheの詳細については、『SharePlex管理ガイド』を参照してください。

 

デフォルト: 0オン

有効な値の範囲: 0、1、3

有効になるタイミング: Postの再開時

SP_OPO_STOP_ON_DDL_ERR

このパラメーターは、DDLの適用中にエラーが発生した場合にPost処理を停止するかどうかを制御します。デフォルトの1は、エラーが発生した場合にPostを停止させます。エラーは通常、DDLが実行されたソースコンポーネントがターゲットデータベースに存在しないことを示し、後続のDMLの変更も失敗する可能性があることを示します。Postを停止することでDMLの失敗を防止し、問題を修正してデータベースの同期を保つことができます。

 

デフォルト: 1オン

有効な値の範囲: 0または1フラグ

有効になるタイミング: 即時

SP_OPO_SUPPRESS_DELETE

このパラメーターは、PostがターゲットにDELETE操作を適用するかどうかを制御します。DELETE操作を抑制することは、データウェアハウスのように、ソーステーブルから削除されても行が一元的に存在しなければならない状況では適切である可能性があります。このパラメーターは、設定ファイルを変更したりアクティベーションしたりすることなく、設定および設定解除できます。DELETEを抑制するには、1に設定します。

 

デフォルト: 0オフ

有効な値の範囲: 0または1フラグ

有効になるタイミング: プロセスの再開時

SP_OPO_SUPRESSED_OOSを

このパラメーターは、ソースからレプリケート中の変更がターゲット行に既に含まれていることをPostが検出した場合に、非同期メッセージを返すかどうかを制御します。この条件が満たされた場合、PostはレプリケートされたSQLを破棄し、イベントログまたはerrlog.sqlログファイルに非同期メッセージを書き込みません。

このパラメーターは、以下の場合にINSERT、UPDATE、およびDELETE操作をサポートします。

  • レプリケートされたINSERTのすべての値キー値を含むが、ターゲット内の行の既存の値と一致する。
  • UPDATEのキー値がターゲットの行と一致し、その行の既存の値が、ソースからレプリケートされた 変更の値と一致する。

注意: SharePlex 、ターゲット値がレプリケートされた後の値と一致しない場合、非同期メッセージを返します。

  • DELETE操作のターゲット行が存在しない。

デフォルトでは、このパラメーターは有効になっています。ただし、Postで検出されない非同期値が存在する可能性があるため、compareコマンドのような、すべてのターゲットデータを検証するツールを使用する必要があります。

 

デフォルト: 1

有効な値の範囲: 0無効または1

有効になるタイミング: 即時

SP_OPO_SYNC_LOG_FREQUENCY

このパラメーターは、Postが非同期メッセージをイベントログ変数データディレクトリのevent_logファイルに記録する頻度を制御します。Postは非同期状態を検出すると、非同期イベントを生成します。ターゲットテーブルが非同期であるため、イベントログが非同期メッセージでいっぱいになっている場合、このパラメーターを使用して、これらのメッセージがログに記録される頻度を制御することができます。

このパラメーターが0より大きい場合、Postは最初の非同期エラーをログに記録し、その後は指定された間隔でのみ非同期メッセージをログに記録します。Postは、非同期テーブルが再同期できるようになるまで、有効なデータをポストし続けます。

 

デフォルト: 1非同期ッセージを毎回記録

有効な値の範囲: 0より大きい整数

有効になるタイミング: 即時

SP_OPO_THREADS_MAX

このパラメーターは主にテストで使用され、SQLスレッドが複数のサブキューを処理しているときの動作を確認します。最小のスレッド数は4で、Postプロセスは、メインスレッド、タイムキーパースレッド、シグナル・ウェイター・スレッド、および1つのSQLスレッドを作成できます。

 

デフォルト: 128スレッド

有効な値の範囲: 4スレッド最小~1024スレッド最大

有効になるタイミング: Postプロセスの再開時

SP_OPO_TRACK_COMMITS

このパラメーターは、Postプロセスがコミットを追跡するかどうかを制御します。1に設定すると、Postはコミットごとに行を挿入します。

 

デフォルト: 0オフ

有効な値の範囲: 0または1フラグ

有効になるタイミング: Postプロセスの再開時

SP_OPO_TRACK_OPERATIONS

このパラメーターは、変更履歴ターゲットデータベースを管理する際に、PostがどのDMLを追跡するかを制御します。デフォルトでは、PostはすべてのDMLタイプを追跡します。例えば、挿入と更新のみを追跡するようにPostを設定するには、パラメーターをI/Uに設定します。

 

デフォルト: I/U/D挿入、更新、および削除

有効な値の範囲: スラッシュ/で区切られたI、U、Dの任意の組み合わせ

有効になるタイミング: Postプロセスの再開時

SP_OPO_TRACK_PREIMAGE

このパラメーターは、Postプロセスが挿入および更新の変更前イメージ、または削除の変更後イメージを追跡するかどうかを制御します。挿入の変更前イメージと削除の変更後イメージには、キー値が含まれ、その他の列はすべてNULLに設定されます。

このパラメーターは、I、U、D、またはスラッシュで区切られたこれらの値の任意の組み合わせI/Uなどに設定できます。このパラメーターを使用すると、Postは指定されたタイプの操作ごとに2つの行を適用します。1つには変更前イメージの列値、もう1つには変更後イメージの値が入ります。

 

デフォルト: オフ

有効な値の範囲: IUD

有効になるタイミング: Postプロセスの再開時

SP_OPO_TRUSTED_SOURCE

このパラメーターは、信頼できるソースシステムを指定します。このシステムには、ピアツーピアレプリケーション環境でプライマリデータセットとみなされるデータが格納されています。信頼できるホストは、カスタムのコンフリクト解決ルーチンで使用することができ、SharePlexで提供される準備されたルーチンの1つの基礎でもあります。コンフリクト解決とピアツーピアレプリケーションの詳細については、『SharePlex管理ガイド』を参照してください。

デフォルト: なし

有効な値の範囲: SharePlexレプリケーション環境で有効な任意のホスト名

有効になるタイミング: Postプロセスの再開時

SP_OPO_UPDATE_SCN

このパラメーターはOracle SCNの追跡を制御し、高可用性クラスタでの操作時にSharePlexをすばやく回復させることができます。このパラメーターを有効にすると、SharePlexは内部トランザクションテーブルでSCNを追跡します。これによりSharePlexは、最も適用されていないトランザクションまでアクティベーションするため、フェールオーバーの発生時に正しいトランザクションに合わせて調整することができます。

注意: このパラメーターを有効にすると、PEPPost Enhanced Performance機能のコミット削減機能が無効になります。SCNの追跡時にはこの機能はサポートされません。

 

デフォルト: 0

有効な値の範囲: 0無効または1有効

有効になるタイミング: Postの再開時

 

SP_OPO_USE_VARNUM

このパラメーターを指定すると、Postはターゲットデータベースに数値を入力する際にVARNUMを使用するようになります。これにより、データベースの数値列に非標準の高精度値を入力することができます。

 

デフォルト: 0オフ

有効な値の範囲: 0または1フラグ

有効になるタイミング: Postの再開時

SP_OPO_WAIT_MSG_DELAY

このパラメーターは、Postが古いまたは停止中のOracleセッションを強制終了することを伝えるメッセージを生成するまでに待機する時間を制御します。これらのメッセージはPostの起動時に発生します。

 

デフォルト: 300秒

有効な値の範囲: 86,400までの任意の正の整数

有効になるタイミング: Postの再開時

 

相关文档

The document was helpful.

选择评级

I easily found the information I needed.

选择评级