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

SharePlex 11.4 - リファレンス・ガイド

このガイドについて このガイドで使用される表記規則 Oracle用SharePlexコマンド SharePlexパラメーター PostgreSQL用SharePlexコマンド PostgreSQL用SharePlexパラメーター 一般SharePlexユーティリティ Oracleクラウドインフラストラクチャ 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に設定し、データを変換して適用します。

注意: ソースデータベースの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は停止します。

注意: oramsglistファイルの詳細については、『SharePlex管理ガイド』を参照してください。

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

 

デフォルト: 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の再開時

 

Open Target Postパラメーター

これらのパラメーターは、Open TargetOracle以外にデータを適用する際にSharePlexのPostプロセスで使用されます。

SP_OPX_BATCH_ENABLE

同じ操作の複数のトランザクションを適用するときにパフォーマンスを最大化するために、Postプロセスはトランザクションをグループ化し、バッチとして適用することができます。SP_OPX_BATCH_ENABLEパラメーターはこの機能を制御します。デフォルトでは有効になっています。SP_OPX_MAX_BATCH_MBYTESはバッチの最大サイズを制御します。

デフォルト: 1有効

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

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

SP_OPX_COMMIT_REDUCE_MSGS

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

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

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

 

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

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

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

SP_OPX_CONT_ON_ERR

このパラメーターは、特定のODBCエラーが発生したときにPostを停止するかどうかを制御します。このフラグをデフォルトの0に設定すると、PostはすべてのODBCエラーで停止します。特定のエラーを無視して処理を続行するようにPostを設定するには、以下のファイルデータベースによって異なるのいずれかにそのエラーをリストし、SP_OPX_CONT_ON_ERRを1に設定します。

hanamsglist

mysqlmsglist

postgresmsglist

sqlservermsglist

sybasemsglist

tdmsglist

これらのファイルの保存場所は、変数データディレクトリのdataサブディレクトリです。これらのファイルの設定方法の詳細については、『SharePlex管理ガイド』を参照してください。

無視した各エラーについて、PostはSharePlex errlog.sqlファイルにエラーを記録し、その後にポストを再開します。ファイルに指定されていないエラーをPostが受け取った場合、プロセスは停止します。

 

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

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

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

SP_OPX_DISABLE_OBJECT_NUM

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

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

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

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

sp_ctrl(sysB)> set param SP_OPX_DISABLE_OBJECT_NUM 12345,67890

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

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

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

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

 

デフォルト: 0オフ

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

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

SP_OPX_MAX_BATCH_MBYTES

このパラメーターは、バッチDML操作の最大サイズを制御します。ターゲットにSQL操作を適用する際のパフォーマンスを最大化するために、Postプロセスは小さなレプリケート操作を1つの大きなバッチ操作にグループ化します。操作が同一でSQLが類似している場合、Postはレプリケートされた操作をグループ化します。Postは、SP_OPX_MAX_BATCH_MBYTESで指定されたバッチサイズに達するまで、条件が一致する操作をバッチに追加し続けます。

SP_OPX_BATCH_ENABLEパラメーターはこの機能を有効にしますデフォルトでは有効

デフォルト: 1メガバイト

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

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

SP_OPX_MSGS_IN_MEMORY

このパラメーターは、Postプロセスが使用するメモリの量を制御します。Open TargetのPostプロセスは、トランザクションデータを一時的に保存するために内部キューを使用します。このパラメーターは、この内部キューが使用するメモリの最大量を制御します。

 

デフォルト: 5,000個のメッセージ

有効な値の範囲: 整数、最大値なし

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

SP_OPX_NLS_CONVERSION

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

Open TargetターゲットOracle以外のターゲットにレプリケートする場合、SharePlexは、任意のOracle Unicode文字セットおよびUS7ASCII文字セットからのレプリケーションをサポートします。SharePlexはUnicode文字セットでOpen Targetターゲットにデータをポストするため、ソースデータがUnicodeまたはUS7ASCIIの場合、ターゲット上で変換する必要はありません。

ただし、以下の項目に当てはまる場合は、ターゲット上で変換が必要となります。

  • ソースデータの文字セットがOracle UnicodeまたはUS7ASCII以外の場合、ターゲットに転記するためにUnicodeに変換するには、ターゲットにOracleクライアントをインストールする必要があります。
  • データをUnicode以外の文字セットでターゲットデータベースにポストする必要がある場合は、ターゲットにOracleクライアントをインストールして変換を実行し、targetコマンドを使用してPostが使用するターゲット文字セットを特定する必要があります。
  • LOBデータをレプリケートする場合は、ソースの文字セットにかかわらず変換が必要です。

Linux上のOracleクライアントで変換を実行するには:

  1. Oracle Administratorクライアントをターゲットシステムにインストールします。クライアントは管理者インストールタイプでなければなりません。Instant ClientおよびRuntimeインストールタイプはサポートされていません。
  2. ORACLE_HOMEをクライアントのインストールに設定します。ORACLE_SIDをエイリアスまたは存在しないSIDに設定します。SharePlexはこれらのSIDを使用せず、データベースが実行されている必要はありません。
  3. お使いのオペレーティングシステム用のLinux/Unixインストーラーを使用してSharePlexをします。
  4. SP_OPX_NLS_CONVERSIONパラメーターがデフォルトの1に設定されていることを確認してください。

UnicodeとUS7ASCIIのデータを変換せずに適用するには:

ソースデータがUnicodeまたはUS7ASCIIで、LOBデータをレプリケートしない場合は、変換やOracleクライアントは必要ありません。SP_OPX_NLS_CONVERSIONパラメーターを0に設定して変換を無効にし、Postが実行中であれば再起動します。

 

デフォルト: 1

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

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

SP_OPX_ONELINE_DEBUG

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

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

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

例:

sp_ctrl> set sp_opo_oneline_debug 230230, 351626

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

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

 

デフォルト: 無効

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

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

SP_OPX_ONELINE_DEBUG_COLUMNS

このパラメーターは、SP_OPX_ONELINE_DEBUGが有効な場合に列の値をログに記録するかどうかを制御します。これは、非同期の状態を診断するのに役立ちます。オンラインデバッグが有効になっているときに指定されたオブジェクトの列の値をログに記録するには、SP_OPX_ONELINE_DEBUG_COLUMNSを1に設定します。

デフォルト: 0無効

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

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

SP_OPX_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管理ガイド』を参照してください。

 

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

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

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

SP_OPX_READRELEASE_INTERVAL

このパラメーターは、Postがトランザクション方式でJMSサーバにポストするように設定されている場合に使用しますtargetコマンドのsession_transactedプロパティで指示されるようにすべてのメッセージの後ではなく、一定間隔でJMSコミットを発行

このパラメーターは、読み取り/リリースの間隔Postがキューからトランザクションのデータをパージする頻度を制御します。

 

デフォルト: 1,000

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

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

SP_OPX_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_OPX_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_OPX_STOP_ON_DDL_ERR

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

 

デフォルト: 1オン

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

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

SP_OPX_THREADS

このパラメーターは、Post Enhanced Performance機能のTransaction Concurrencyコンポーネントを制御します。2以上の値に設定すると、指定されたスレッド数同時処理数でPostが実行されます。

このパラメーターはSQL ServerおよびPostgreSQLデータベースをサポートしています。通常は、システム上のプロセッサーのコア数に設定しなければなりません。

Postのパフォーマンスを調整する方法の詳細については、『SharePlex管理ガイド』を参照してください。

 

デフォルト: 1無効

有効な値の範囲: Max_connection値未満

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

SP_OPX_TRUSTED_SOURCE

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

デフォルト: なし

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

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

 

Queueパラメーター

これらのパラメーターは、SharePlexキューのプロパティを制御します。

SP_QUE_MAX_QUEUES

このパラメーターは、sp_copのインスタンスごとに許可されるキューの最大数を決定します。デフォルトでは、各captureキューとexportキューは8 MBの共有メモリを使用し、各postキューは32 MBを使用します。システムに十分なメモリがある場合、このパラメーターの値を増やすことができます。SharePlexは起動時に、アクティブな設定ファイル内のキュー数に必要な共有メモリ量を表示します。

 

デフォルト: 25

有効な値の範囲: 9~254

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

SP_QUE_POST_SHMSIZE

このパラメーターは、postキューの固有の共有メモリサイズを決定します。

重要: このパラメーターの値を大きくするには、システム設定で共有メモリの最大セグメントサイズを大きくする必要がある場合があります。

 

デフォルト: 32メガバイト

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

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

SP_QUE_Q_SHMSIZE

このパラメーターは、captureキューおよびexportキューの固有の共有メモリサイズを決定します。

 

デフォルト: 8メガバイト

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

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

 

SP_QUE_SHMDBUF

このパラメーターは、SharePlexプロセスが一度にキューから読み込んだり、キューに書き込んだりする情報量を決定する共有メモリのバッファサイズを制御します。バッファは、データの高速で安全な非同期転送を促進するSharePlexチェックポイント・リカバリ・プロセスの一部です。デフォルト設定は最適な値であり、テクニカルサポート担当者の指導または文書化されたSharePlex手順がない限り変更しないでください。ただし、トランザクションの大半が大規模である場合は、このパラメーターを変更してもかまいません。初期設定を65536にしてみてください。このパラメーターに設定する値はすべて2の累乗にする必要があります。

重要: このパラメーターの値を64kより大きくするには、システム設定で共有メモリの最大セグメントサイズを大きくする必要がある場合があります。

 

デフォルト: 32,768バイト

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

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

SP_QUE_SYNC

SP_QUE_SYNCは、キューデータのディスクへの書き込みがディスクメディアに書き込まれたことを検証してから戻るようにキューモジュールに指示します。これは、UnixやLinuxの標準のディスク書き込みモデルではありません。

デフォルトのOSディスクI/O手順では、ディスク書き込みはOSの内部バッファキャッシュに書き込まれ、その後ディスクに書き込まれます。この動作によって、ディスクへの書き込みのオーバーヘッドが分散され、プロセスはデータがディスクに書き込まれるのを待つ必要がなくなります。データブロックがバッファキャッシュに書き込まれると、データにアクセスするアプリケーションは、バッファキャッシュに書き込まれたデータとディスクに書き込まれたデータを区別できません。OracleのCOMMITとは異なり、ファイルにアクセスできるすべてのプロセスは、バッファキャッシュ内のデータにもアクセスできます。データブロックがバッファキャッシュに書き込まれてから物理メディアに書き込まれるまでの間にシステムクラッシュが発生した場合、メディアに書き込まれていないデータはシステムリカバリ時に失われる危険性があります。

SP_QUE_SYNCパラメーターは以下のように実装されます。

SP_QUE_SYNC=0

2つ目の段落で説明されているOSのデフォルトケースは、SharePlexキューデータに使用されるディスク書き込みアルゴリズムです。

SP_QUE_SYNC=1

SP_QUE_SYNC を1に設定すると、各キューデータとヘッダーファイルを開く際にO_SYNCフラグが設定されます。このフラグは、データがディスクに正常に書き込まれるまで、書き込み呼び出しを戻さないようにOSに指示します。同期フラグがない場合「通常の」I/O、ファイルデータ用に領域が割り当てられますが、システムクラッシュ、クラスタフェールオーバー、またはOSの実行を停止させるようなその他の重大な問題のために、ファイルデータが書き込まれない可能性があります。

SP_QUE_SYNC=2SharePlexのデフォルト設定

SP_QUE_SYNCパラメーターを2に設定しても、O_SYNCフラグはオンになりません。その代わり、キューへの書き込みCOMMITが呼び出されるまで、通常の書き込みが行われます。書き込みCOMMITの一部として、キューモジュールは各キュー・データ・ファイルに対してシステム呼び出しfsyncを実行し、さらにキュー・ヘッダー・ファイルに対してシステム呼び出しfsyncを実行します。これによって、後で書き込みCOMMITによって書き換えられる可能性のあるデータに対する冗長な同期操作が排除されます。

SP_QUE_SYNCの設定の影響

SP_QUE_SYNCを、ディスク書き込みが完了してから戻るような値に設定すると、SharePlexのパフォーマンスに影響を与える可能性があり、SharePlex以外のプロセスのI/O処理がわずかに増加する可能性があります。オーバヘッドの量は、キュー内のデータ量、ファイルシステムのタイプ、および使用中のディスクドライブとディスクコントローラのタイプに依存します。

SP_QUE_SYNCが実行しない機能

SP_QUE_SYNCパラメーターが実行しない機能は多数あります。最も一般的な問題は次の通りです。

  • SP_QUE_SYNCは、共有メモリとディスクのどちらかを選択するわけではありません。また、ディスクへの書き込みの決定がいつ行われるかにも影響を与えません。このパラメーターは、物理ディスクへのディスク書き込みが完了してから戻るように、OSに指示するだけです。
  • 「サブキュー不足」エラーを防ぐことはできません。
  • 「ディスク容量不足」エラーには対処しません。物理メディアへの書き込みや同期が実行される前に、ファイルデータ用の領域が割り当てられるからです。容量不足エラーが発生する場合は、同期が実行される前に発生します。データが失われる可能性がありますが、空き領域が利用可能になるとキューを使用できるようになることが期待されます。
  • 「共有メモリ不足」エラーや「仮想メモリ不足」エラーを引き起こしたり、防止したりしません。共有メモリの喪失を示すメッセージが表示される場合は、キューモジュールのデマンド・ページング・システムの障害である可能性が最も高いです。「仮想メモリ不足」エラーが発生した場合は、データセグメントの制限に関するOSのパラメーターを確認してください。通常または予想される制限値では不十分な場合は、テクニカルサポートにお問い合わせください。

クラスタでのSP_QUE_SYNCの使用

クラスタでは、クラスタのプライマリノード共有変数データディレクトリがマウントされているノード、および同じレプリケーション環境の一部である、クラスタ外の各ソースマシンおよびターゲットマシンでSP_QUE_SYNCを設定します。

 

デフォルト: 2

有効な値の範囲: 0~2

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

SP_QUE_USE_SUBQUE_INDEX

このパラメーターはキューのパフォーマンスを向上させます。ソースで大量の同時処理が行われる場合、postキューには多数のサブキューが含まれる可能性があります各サブキューはトランザクションセッションを表す。これがPostプロセスのパフォーマンスを低下させる可能性があります。このパラメーターは、サブキュー構造へのアクセスに改善されたインデックスを使用するようにSharePlexに指示します。このパラメーターが有効になっているすべてのpostキューに対して、メッセージ「Subqueue index enabled queuenameサブキューインデックスが有効になっているキュー名」がイベントログに書き込まれます。

このパラメーターはVARRAYをサポートしません。VARRAYを複製しているときにこのパラメーターが有効になっている場合、このパラメーターは無視されます。

 

デフォルト: 0

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

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

sp_copパラメーター

これらのパラメーターは、SharePlex sp_copプログラムによって使用されます。

SP_COP_IDLETIME

このパラメーターは、sp_copが非アクティブである時間間隔を決定します。アイドル時間の目的は、マシンのリソースを節約することです。一般的に、sp_copはレプリケーションの中心的役割を担っているため、長い時間アイドル状態にすべきではありません。sp_copがオーバーヘッドアクティビティにCPU時間を使いすぎている場合、このパラメーターを使用してアイドル時間を増やすことができます。オーバーヘッドを減らすための推奨値は600秒です。

 

デフォルト: 60秒

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

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

SP_COP_SCAN_TIMEOUT

このパラメーターは、プロセスを停止または再起動する必要があるかどうかを判断するために、sp_copがサービステーブルをスキャンする最初の時間間隔を設定します。

SharePlexの実行が継続すると、各プロセスの履歴に応じてこの間隔が変わる可能性があります。

 

デフォルト: 300秒

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

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

SP_COP_SO_RCVBUF

このパラメーターは、ターゲットマシンのTCP/IPウィンドウサイズを調整します。ソースマシンのSP_XPT_SO_SNDBUFパラメーターと連動して、ネットワークを介して送信されるパケットのサイズを確立します。SharePlexは、sp_copとExportプロセスの開始時、TCP/IPソケットが作成されるときに両方のパラメーターを参照します。

SharePlexがWANを通じてレプリケートされ、exportキューが常に滞留している場合は、両方のパラメーターを調整してみてください。SP_COP_SO_RCVBUFは、1024バイトの倍数で、SP_XPT_SO_SNDBUFの値以上に設定しなければなりません。パラメーターのサイズを設定するには、ソースマシンとターゲットマシンの間のping時間を決定し、両方のパラメーターに以下の式を使用します。

param_value / ping_time= 1秒あたりのバイト数

例えば、ping時間が200ミリ秒、2つのパラメーターの値が64Kの場合、SharePlexは、毎秒5個の64Kパケットを送信し、合計で毎秒320Kを送信することになります。

帯域幅の問題が確認されない限り、Questでは、両方のパラメー ターをデフォルトシステムの設定を使用するのままにしておくことを推奨します。SP_COP_SO_RCVBUFを変更するには、これをターゲットシステム上で設定し、そのシステム上でsp_copを停止してから開始します。

それでも転送が遅い場合は、ターゲットシステムのSP_IMP_WCMT_MSGCNTパラメーターとSP_IMP_WCMT_TIMEOUTパラメーターを大きくしてください。SP_IMP_WCMT_MSGCNTを少なくとも10,000に設定します。

 

デフォルト: 0デフォルトはオペレーティングシステムによって設定される

有効な値の範囲: 1,024の倍数を使用したバイト単位の正の整数。最大値はオペレーティングシステムによって設定されます。

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

SP_COP_TPORT

このパラメーターは、SharePlex sp_copプロセス間のTCP/IP通信に使用するTCP/IPポート番号を設定します。相互にレプリケートするすべてのsp_copプロセスは、同じTCP/IPポート番号を使用する必要があります。SP_COP_TPORTのデフォルト設定は2100ですが、インストール時に別のポート番号を設定することもできます。インストール後は、set portコマンドを使用して、別のポート番号を設定することができます。それ以降、sp_copは新しいポート番号を使用します。

 

デフォルト: 2100

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

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

SP_COP_UPORT

このパラメーターは、SharePlex sp_copプロセス間の通信に使用するUDPポート番号を設定します。相互にレプリケートするすべてのsp_copプロセスは、同じUDPポート番号を使用する必要があります。SP_COP_UPORTのデフォルト設定は2100ですが、インストール時に別のポート番号を設定することもできます。インストール後は、set portコマンドを使用して、別のポート番号を設定することができます。それ以降、sp_copは新しいポート番号を使用します。

 

デフォルト: 2100

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

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

関連ドキュメント

The document was helpful.

評価を選択

I easily found the information I needed.

評価を選択