Chat now with support
Chat with Support

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

このガイドについて このガイドで使用されている表記規則 SharePlex コマンド SharePlex パラメータ SharePlex ユーティリティ 付録 B:SharePlex 環境変数

Post パラメータ

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

SP_OPO_CHANGE_ID_START_VALUE

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

 

デフォルト:0

有効な値の範囲:0 から 9223372036854775807

有効になる時期:Post の再開時

 

SP_OPO_COMMIT_REDUCE_MSGS

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

詳細については、次を参照: 小さいトランザクションの高速化

 

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

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

有効になる時期:Post の再開時

 

SP_OPO_CONNECTION_POOL

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

接続プールが有効(デフォルト)であるとともに、サブキューが Oracle への接続を必要とする場合、Post はコミットされたサブキューを検索しようとします。該当するサブキューが見つかった場合、Post は Oracle への新しい接続を開くのではなく、そのサブキューの接続を使用します。これで、Post の動作に必要な Oracle への接続数を減らすことができます。

接続プールがなければ、各サブキューは Oracle に個別に接続して、サブキューがコミットされるまで数秒間(パラメータ SP_OPO_IDLE_LOGOUT によって決定される)、接続を維持します。

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

  • 接続プールの有効化は、SharePlex が多数のサブキューで動作している場合に役立つことがあります。
  • 迅速に再利用される少数(20 未満)のサブキューで SharePlex が動作している場合は、プールを無効にして、接続を固定した方が効率的です。

 

デフォルト:1(有効化)

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

有効になる時期:Post の再開時。

 

SP_OPO_CONT_ON_ERR

このパラメータは、修正可能なエラーが発生したときに Post が停止するかどうかを制御します。このフラグをデフォルトの 0 に設定したときは、Post はすべての Oracle および SharePlex エラーで停止します。特定の SharePlex または Oracle の特定のエラーが発生しても Post による post を続行するには、当該エラーを変数データディレクトリの data サブディレクトリ内の oramsglist ファイルに列挙して、このパラメータを 1 に設定します。このパラメータの設定に関係なく、次のエラーでは、Post は常に post を続行します。

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

  • 一意キーの違反
  • 操作の中断
  • データが見つからない
  • そうしたテーブルがない
  • 無効な数
  • 日付の中に数字でないものがある
  • 無効な rowid
  • 無効な 16 進数
  • 非ヌルをヌルにアップデートできない
  • 年は、-4713~+9999 の範囲内でなければならない
  • チェック制約の違反
  • パケットライターの失敗*
  • シーケンスが見つからない
  • Oracle 内部エラー

*nowait 設定でのパケットライターの失敗およびリソースのビジー状態は、SP_OPO_RETRIES_MAX パラメータ (デフォルトは 10) に基づいて再試行され、その後ポスターが終了されます。

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

 

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

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

有効になる時期:即時

 

SP_OPO_DEPENDENCY_CHECK

このパラメータによって、次の機能の有効、無効が切り替えられます。

  • Post のコミット削減およびトランザクションの並列処理機能(ともに Post 拡張パフォーマンス(PEP)と呼ばれる)。詳細については、次を参照: 小さいトランザクションの高速化
  • ターゲットテーブルに対して有効な ON DELETE CASCADE 制約の Post による処理(複製された親の削除を適用して、複製されたカスケードの削除を無視する)。

これらの機能をサポートするには、次の手順を実行します。

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

    • コミット削減とトランザクションの並列処理を有効にするには、このパラメータを 1 に設定します。
    • ON DELETE CASCADE を有効にするには、このパラメータを 2 に設定します。
      注意:ON DELETE CASCADE 機能は、2 に設定すると有効になる Post 拡張パフォーマンス機能に依存します。SP_OPO_DEPENDENCY_CHECK の設定のほか、ソースのプライマリキー、一意のインデックス列、および外部キー列のロギングも有効にする必要があります。
  2. SP_OCT_REDUCED_KEY パラメータを 0 に設定します。これで、Post で使用するために、必要なデータがすべてターゲットに送信されます。「SP_OCT_REDUCED_KEY 」を参照してください。
  3. SP_OPO_REDUCED_KEY パラメータを 0、1(デフォルト値)、または 2 に設定します。「SP_OPO_REDUCED_KEY」を参照してください。

デフォルト:0(オフ)

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

有効になる時期:Post の再開時

 

SP_OPO_DEPENDENCY_SIZE

このパラメータは、Post 拡張パフォーマンス機能の依存関係チェックによって使用されるメモリのサイズを設定します。デフォルト値で十分ですが、必要に応じて値を増やすことができます。

 

デフォルト:7019

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

有効になる時期:Post の再開時

SP_OPO_DISABLE_OBJECT_NUM

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

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

このパラメータは注意して使用してください。これを有効にして DDL または DML をソーステーブルで実行した場合は、変更が post されないために、ターゲットデータは古いものになります。複製設定外の他のテーブルの中の外部キーなど、テーブルに依存性がある場合は、post を無効にすると、依存性が満足されなくなります。

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

sp_ctrl(sysB)> set param SP_OPO_DISABLE_OBJECT_NUM object 12345,67890

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

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

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

再びターゲットテーブルに post を開始する準備が整ったときは、SP_OPO_DISABLE_OBJECT_NUM を 0 に設定します。

 

デフォルト:0(オフ)

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

有効になる時期:Post の再開時

 

SP_OPO_HINTS_LIMIT

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

 

デフォルト:100 ヒント

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

有効になる時期: Post の再起動時

 

SP_OPO_LOG_CONFLICT

このパラメータは、SHAREPLEX_CONF_LOG テーブルに対する競合解決手順の成功に関する情報のロギングを有効にします。この機能が適用されるのは、SharePlex によって提供される準備済みルーチンに限定されます。

このパラメータには、2 つのアクティブな設定があります。

  • 11 に設定すると、SHAREPLEX_CONF_LOG テーブルに対する競合解決のロギングが有効になります。
  • 2 に設定するとロギングが有効になり、ターゲットデータベースにクエリしてターゲット行の現在のタイムスタンプを取得するように Post に指示します。注:2 に設定すると、クエリを実行するために Post のパフォーマンスに影響を及ぼすことがあります。

 

デフォルト:0(無効化)

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

有効になる時期:Post の再開時

 

SP_OPO_MAX_CDA

このパラメータは SQL キャッシュモジュール用で、セッションが同時にオープンできるカーソルキャッシュの最大数を制御します。この値は、v$parameter ビュー内の Oracle 設定 OPEN_CURSORS 未満でなければなりません。SP_OPO_SQL_CACHE_DISABLE に 0(有効化)が設定されている場合にのみ使用されます。

 

デフォルト:50

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

有効になる時期: Post の再起動時

 

SP_OPO_MAX_OEXN_TIME

このパラメータは、SQL スレッドが OCIStmtExecute ( ) を呼び出してから、タイムキーパースレッドがデッドロックポジションになり、マルチスレッド Post プロセスを強制終了するまでの最大時間を制御します。

 

デフォルト:900 (秒)

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

有効になる時期: Post の再起動時

 

SP_OPO_MAX_ROLLBACK_MESSAGES

このパラメータは、部分ロールバックでバックワードカウントが増分されるメッセージの最大数です。メインスレッドは、前方にスキャンし、バックワードメッセージをカウントします。バックワードカウントがこのパラメータに設定された最大数に到達すると、メインスレッドはロールバックを解決します。ロールバックを解決したときは、メインスレッドはメッセージのディスパッチを再開します。バックワードメッセージがさらに存在する場合は、メインスレッドは再び subqueue の中を前方にスキャンします。これにより、次のグループにある 10,000 個(このパラメータの値を 10,000 に設定している場合)のバックワードメッセージを同じ手順を使用して解決します。

 

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

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

有効になる時期:Post の再開時。

 

SP_OPO_NLS_CONVERSION

このパラメータは、Oracle ソースと Oracle ターゲットの間のキャラクタセットの変換を制御します。SharePlex キャラクタセットのサポートの詳細については、『SharePlex 管理ガイド』を参照してください。

 

デフォルト:1

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

有効になる時期:Post の再開時。

 

SP_OPO_NLS_DEFAULT_COMPAT

このパラメータは、Post がキャラクタデータ(CHAR、VARCHAR)を変換するかどうかを制御します。デフォルトでは、変換は実行されません。7 に設定した場合、Post でキャラクタデータは変換されませんが、CLOB データは変換されます。compare/repair コマンドによる比較および修復時には、キャラクタデータは変換されず、CLOB データは変換されます。NCHAR データの複製は、影響を受けません。

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

 

デフォルト:0

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

有効になる時期:Post の再開時。

 

SP_OPO_OBJID_DEBUG

このパラメータを使用すると、Post のためにテーブルなどの特定の 1 つのオブジェクトに関してデバッグできます。SP_OPO_OBJID_DEBUG パラメータは一般に、非同期状態をデバッグするために使用されます。SP_OPO_OBJID_DEBUG パラメータを使用するには、ターゲットシステムでこの値をソーステータベースから送信されたオブジェクトのオブジェクト ID に設定します。

 

デフォルト:0

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

有効になる時期:即時

 

SP_OPO_ONELINE_DEBUG

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

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

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

sp_ctrl> set sp_opo_oneline_debug 230230, 351626

次の項目がログに記録されます。

  • 操作の状態、すなわち Dispatch(キューからの読み取り)、ProcessMessage(SQL コードの処理)、Skipped(コミット削減機能が有効である場合にコミット)、または ExecSQL(ターゲットへの適用)
  • SharePlex によって使用されるトランザクション識別子
  • 影響を受けた DML または DDL 操作のタイプ
  • 影響を受けたソーステーブルのオブジェクト ID
  • 影響を受けた行の行識別子
  • 操作が発生した時間
  • 影響を受けた操作のログに含まれるログのシーケンス番号とオフセット
  • トランザクションの 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 を停止するように指示します。Post は、非同期操作の SQL 文およびデータを ID_errlog.sql ログファイルに記録してから、停止します。

このパラメータを値 1 に設定したときは、複製プロセスの状態を頻繁にチェックしてください。Post を停止すると、ソースデータベースとターゲットデータベースの間に遅延が発生し、複製キューにデータが蓄積して、それらが使用可能なディスクスペースを超過することがあります。SharePlex には、複製の状態をチェックするための sp_ctrl コマンドがいくつもあり、SharePlex を無人監視するためのツールがあります。詳細については、『SharePlex 管理ガイド』を参照してください。

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

 

デフォルト:0(out-of-sync 状態が発生したときに停止しない)

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

有効になる時期:即時

 

SP_OPO_POSTER_DELAY

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

posting を遅延することは、ソースシステムでの不必要な削除またはオブジェクトドロップによって発生した不慮の消失からデータを保護することに役立ちます。遅延することで、誤りが複製される前に、誤りを検出して、ターゲットインスタンスからデータを検索するための十分な時間を確保できます。「what-if」分析を実行することは、このパラメータをデフォルトから変更するもう 1 つの理由です。ターゲットデータベースを遅らせることで、実際のものと compare して予測モデリングを検証することができます。

SP_OPO_POSTER_DELAY によって引き起された遅延は、REDO ログにメッセージが最初に表示された時間から測定されます。このパラメータを使用するときに考慮する必要がある事柄は次のとおりです。

  1. データベースを適用するまでに指定された時間間隔 post キューにデータを収集するために十分なディスクスペースが必要です。
  2. パラメータの設定に基づいて posting を開始するときを判断するために、SharePlex はターゲットシステムの現在のタイムスタンプをソースシステムで REDO ログにレコードが入力する時刻を比較します。これらのマシンは、異なるロケーションに配置することができ、互いに数千マイル離れた距離にすることも可能です。タイムゾーンの違いがあれば、それを考慮し、それを遅延時間に追加します。

    たとえば、アメリカ合衆国カリフォルニア州ロサンゼルスとオーストラリアのシドニーの間には 18 時間の時差があります。5 時間 posting を遅延するには、必要な 5 時間の遅延に 18 時間の時差を加えて、SP_OPO_POSTER_DELAY を 23 時間に設定する必要があります。また、2 つの場所の時差に影響するために、その場所がサマータイム制を取っているかどうかも考慮します。サマータイム制の方式は、それを採用している国々の間、および国内でも差異があります。

  3. ソースシステムがシドニーにあり、ターゲットシステムがロサンゼルスにあるときなど、このパラメータを、時間をさかのぼって使用しないでください。SharePlex にとっては、各システムのタイムスタンプを compare するときに、これはマイナスの時差になります。たとえば、シドニーの 4 月 2 日午前 2:00 は、ロサンゼルスでは 4 月 1日 の午前 8:00 になります。このパラメータは 0 未満に設定できません。

 

デフォルト:0 分

有効な値の範囲:0 から 7200 分

有効になる時期:即時

 

SP_OPO_PRB_MISMATCH_SUSPEND

このパラメータに 1 を設定すると、部分ロールバックに不一致がある場合、Post は停止します。こうすることにより、Post が処理を再開する前に問題を調査、解決できます。

 

デフォルト:0(オフ)

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

有効になる時期:即時

 

SP_OPO_READRELEASE_INTERVAL

このパラメータは、Post が read/release を行なう頻度を制御します。通常、Post は、各 COMMIT を受信した後に 1 回 read/release を行います。つまり、チェックポイント復旧処理の一部としてキューからそのトランザクションのデータをパージします。小さなトランザクションでは、こうすると ターゲットシステムで I/O が過剰になり Post が低速になります。ほとんどのトランザクションが小型の場合は、各 COMMIT の後ではなく、一定数のメッセージの後で Post が読み込み/解放を行なうようにこのパラメータを設定できます。

読み込み/解放の間隔を設定するときは、コミットされたトランザクションの後に新しいデータがない場合(たとえば、それがその日の最後のトランザクションである場合や、もはやユーザー活動がない場合)、Post は COMMIT を処理してから、SP_OPO_IDLE_LOGOUT 内部パラメータで制御される、一定時間待機することに注意してください。データが到着しない場合は、SP_OPO_READRELEASE_INTERVAL 間隔が満足されない場合でも、Post は read/release を実行します。post キューの中のメッセージの数が 0 に減少し、Post がキューから送信されたすべてのメッセージの処理を終了したことが示されます。

注: Post プロセスには複数のスレッドがあるために、メッセージの数はキューではなく各スレッドに関係しています。このために read/release 間隔は、予想しているよりも長くなることがあり、デフォルト値を下げる必要が起こることがあります。

 

デフォルト:100

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

有効になる時期:即時

 

SP_OPO_REDUCED_KEY

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

  • 0 に設定すると、Capture によって送信されるデータのすべてを使用して WHERE 句を作成するように Post に指示します。Capture が送信するデータは、SP_OCT_REDUCED_KEY パラメータの設定によって決まります。WHERE 句にキーの値と LONG および LOB 以外のすべての列の値を含めるには、両方のパラメータを 0 に設定します。

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

  • 1 に設定すると、キーの値と変更された列の変更前の値を使用して WHERE 句を作成するように Post に指示します。この設定では Post が WHERE 句を作成するときに変更された列の変更前後の比較を実行できるため、複製のパフォーマンスとターゲットデータの整合性とのバランスが取れます。この設定を使用できるようにするには、SP_OCT_REDUCED_KEY パラメータが 0 または 1 に設定されている必要があります。SharePlex が前後の値を使用する方法の詳細については、『SharePlex 管理ガイド』を参照してください。
  • 2 に設定すると、キー列のみを使用して WHERE 句を作成するように Post に指示します。この設定は、post のパフォーマンスを最大限に高めるときに使用できます。この設定では変更された列の前後の比較が省略されるため、SharePlex 以外にターゲットデータを変更できるプロセスやユーザーがいないことに注意してください。また、compare コマンドを使用して、通常の整合性検証を実行することをお勧めします。

SP_OCT_REDUCED_KEY も参照してください。

 

デフォルト:1

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

有効になる時期:Post の再起動時

 

SP_OPO_RETRIES_MAX

このパラメータは、最初に失敗した SQL 文の post を Post プロセスが試みる回数を制御します。

Post は特定の操作が失敗すると、再試行で成功する可能性がある場合は再試行します。Post が再試行する主な操作は、TNS 書き込み失敗、接続失敗、Post が TRUNCATE を適用する必要があるときのテーブルへのロックです。

失敗した操作が成功する見込みを増加するには、Post がより多くの回数操作を試行するように、SP_OPO_RETRIES_MAX パラメータを増加します。同時に、SP_OPO_RETRY_DELAY_TIME パラメータを増加して、試行の間の時間間隔を増加します。こうすることで、試行の間にロックなどのブロッキング操作を解決する十分な時間を確保できます。

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

注:oramsglist ファイルの詳細については、『SharePlex 管理ガイド』 の「DML エラーの発生時の post の続行」を参照してください。

重要: このパラメータを減少すると、データが queue に蓄積し、使用可能なディスクスペースを超過することがあります。

 

デフォルト:10 回

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

有効になる時期:即時

 

SP_OPO_SAVE_OOS_TRANSACTION

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

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

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

デフォルトでは、Post は、ロールバックされたトランザクションに続く、有効なトランザクションの処理を続行します。これは、ターゲットの遅延を防ぐためです。トランザクションのロールバック後に停止するように Post を設定するには、SP_OPO_OUT_OF_SYNC_SUSPEND パラメータを 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 は、トランザクションの commit System Change Number(SCN)です。
  • queue は、トランザクションを含む、Post キューの名前です。

ファイル名の例

4346118046_postq1.sql

注:

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

注:

  • この機能が有効になっている場合、Post はトランザクションの非同期部分に限定して errlog.sql ファイルに書き込むのではなく、トランザクション全体を SCN_queue.sql ファイルに書き込みます。
  • この機能は、Oracle ターゲットのみをサポートします。
  • この機能は、HP-UX プラットフォームではサポートされていません。
  • Post は引き続き、statusdb 内に非同期メッセージを生成します。この情報は、sp_ctrlshow statusdb コマンドが発行されたときに表示されます。clear status コマンドを使用すると、SQL ファイルによってトランザクションを適用した後に、このようなステータスメッセージをクリアできます。
  • ロールバックしたトランザクションのロールバックを元に戻すことはできません。

 

デフォルト:0(オフ)

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

有効になる時期:Post の再起動時

 

SP_OPO_SQL_CACHE_DISABLE

このパラメータによって、SQL Cache 機能の有効、無効が切り替えられます。デフォルトでは、SQL Cache がオンで、このパラメータは 0 に設定されています。1 に設定すると、SQL Cache が無効になります。3 に設定すると、バッチ操作の SQL Cache が無効になり、Post が使用するメモリ量を削減できます(2 には設定できません)。

SQL キャッシュを無効にした場合は、SharePlex は次のメッセージを Event Log に印字します。SQL Cache disabled.

SQL Cache の詳細については、『SharePlex 管理ガイド』の「SQL Cache のチューニング」を参照してください。

 

デフォルト:0(オン)

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

有効になる時期:Post の再開時

 

SP_OPO_STOP_ON_DDL_ERR

このパラメータは、DDL 適用エラー発生時に Post プロセスを停止するかどうかを制御します。デフォルトの 1 を指定すると、エラーが発生したときに Post が停止するように指示されます。エラーは、通常 DDL が実行された source コンポーネントがターゲットデータベースに存在しないことを示し、その後の DML 変更も失敗する見込みであることを示します。Post を停止すると、DML の失敗が防止され、問題を訂正してデータベースを同期した状態に保つことができます。

 

デフォルト:1(オン)

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

有効になる時期:即時

 

SP_OPO_SUPPRESS_DELETE

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

 

デフォルト:0(オフ)

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

有効になる時期:即時

 

SP_OPO_SUPPRESSED_OOS

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

このパラメータは、次の場合、INSERT および UPDATE 操作をサポートしています。

  • 複製した INSERT のすべての値(キー値を含む)がターゲット内の行の既存の値と一致している場合。
  • UPDATE のキー値がターゲット内の行と一致しており、その行の既存の値がソースから複製された(変更)の値と一致している場合。注:SharePlex が非同期メッセージを返すのは、ターゲット値が複製された後の値と一致しない場合です。

デフォルトでは、このパラメータは有効になっています。ただし、Post によって検出されない非同期値が存在している可能性があるので、compare コマンドなど、すべてのターゲットデータを検証するツールの使用を推奨します。詳細については、『SharePlex 管理ガイド』の「同期の概念について」を参照してください。

 

デフォルト:1

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

有効になる時期:即時

 

SP_OPO_THREADS_MAX

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

 

デフォルト:65 スレッド

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

有効になる時期: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(挿入(inserts)、更新(updates)、および削除(deletes))

有効な値の範囲:I、U、および D をスラッシュ(/)で区切った任意の組み合わせ

有効になる時期:Post プロセスの再起動時

 

SP_OPO_TRACK_PREIMAGE

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

このパラメータは I、U、または D、あるいはスラッシュで値を区切ることで、これらの値の任意の組み合わせに設定できます。たとえば、「I/U」のように指定できます。このパラメータを使用すると、Post は指定した種類の操作ごとに 2 つの行を適用します。一方の行には前イメージの列値、もう一方の行には後イメージの値が含まれています。

 

デフォルト:オフ

有効な値の範囲IUD

有効になる時期:Post プロセスの再起動時

 

SP_OPO_TRUSTED_SOURCE

このパラメータは、ピアトゥピアレプリケーション環境のプライマリデータセットであると認識されるデータが含まれる、信頼されるソースシステムを指定します。信頼されるホストは、カスタム競合解決ルーチンで使用可能であり、SharePlex で提供される準備済みルーチンの基本でもあります。競合解決とピアレプリケーションの詳細については、『SharePlex 管理ガイド』を参照してください。

デフォルト:なし

有効な値の範囲:SharePlex 複製環境で有効な任意のホスト名

有効になる時期:Post プロセスの再開時

 

SP_OPO_USE_VARNUM

このパラメータによって、Post は varnum を使用してターゲットデータベースに値を入力します。非標準の高精度値をデータベースの数値列に入力できます。

 

デフォルト:0(オフ)

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

有効になる時期:Post の再起動時

 

SP_OPO_WAIT_MSG_DELAY

このパラメータは、古いかストールした Oracle セッションを kill していることを示すメッセージを生成する前に、Post が待機する時間を制御します。これらのメッセージは Post の起動時に発生します。

 

デフォルト:300 秒

有効な値の範囲:最大 86400 までの任意の正の整数

有効になる時期: Post の再起動時

 

オープンターゲットの Post パラメータ

SharePlex パラメータ > ユーザーが設定可能なパラメータの説明 > オープンターゲットの Post パラメータ

これらのパラメータは、データをオープンターゲット(非 Oracle)のターゲットに適用するときに、SharePlex Post プロセスによって使用されます。

SP_OPX_COMMIT_REDUCE_MSGS

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

 

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

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

有効になる時期:Post の再開時

 

SP_OPX_CONT_ON_ERR

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

hanamsglist

postgresmsglist

sqlservermsglist

sybasemsglist

tdmsglist

これらのファイルは、変数データディレクトリの data サブディレクトリ内に配置されています。これらのファイルを設定する方法の詳細については、『SharePlex 管理ガイド』の「DML エラーの発生時の post の続行」を参照してください。

無視するエラーごとに、Post はエラーを SharePlex errlog.sql ファイルにログとして記録してから、post を再開します。このファイルに指定されていないエラーを Post が受信した場合、プロセスは停止します。

 

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

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

有効になる時期:即時

 

SP_OPX_DISABLE_OBJECT_NUM

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

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

このパラメータは注意して使用してください。これを有効にして DDL または DML をソーステーブルで実行した場合は、変更が post されないために、ターゲットデータは古いものになります。複製設定外の他のテーブルの中の外部キーなど、テーブルに依存性がある場合は、post を無効にすると、依存性が満足されなくなります。

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

sp_ctrl(sysB)> set param SP_OPX_DISABLE_OBJECT_NUM object 12345,67890

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

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

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

再びターゲットテーブルに post を開始する準備が整ったときは、SP_OPX_DISABLE_OBJECT_NUM を 0 に設定します。

 

デフォルト:0(オフ)

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

有効になる時期:Post の再開時

 

SP_OPX_MSGS_IN_MEMORY

このパラメータは、Post プロセスが使用するメモリ量を制御します。オープンターゲットの Post プロセスは、内部キューを使用して、トランザクションデータを一時的に格納します。このパラメータは、この内部キューが使用する最大メモリ量を制御します。

 

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

有効な値の範囲:整数、上限なし

有効になる時期:Post の再開時

 

SP_OPX_NLS_CONVERSION

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

オープンターゲットのターゲット(非 Oracle ターゲット)に複製する場合、SharePlex は任意の Oracle Unicode キャラクタセットと US7ASCII キャラクタセットからの複製をサポートします。SharePlex は Unicode キャラクタセットでオープンターゲットにデータを post するので、ソースデータが Unicode または US7ASCII の場合、ターゲットでの変換は必要ありません。

ただし、次に該当する場合、ターゲットでの変換が必要です。

  • ソースデータのキャラクタセットが Oracle Unicode または US7ASCII 以外のものである場合は、Oracle クライアントをターゲットにインストールして、ターゲットに post するために Unicode への変換を実行する必要があります。
  • Unicode 以外のキャラクタセットでターゲットデータベースにデータを post する必要がある場合は、ターゲットに Oracle クライアントをインストールして変換を実行し、target コマンドを使用して、Post が使用するターゲットキャラクタセットを識別する必要があります。このコマンドの詳細については、『 SharePlex リファレンスガイド』を参照してください。

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

  1. ターゲットシステムに Oracle Administrator Client をインストールします。クライアントは、管理者インストールタイプでなければなりません。Instant Client および Runtime のインストールタイプはサポートされていません。
  2. ORACLE_HOME をクライアントインストールに設定します。ORACLE_SID をエイリアスまたは存在しない SID に設定します。SharePlex ではそれらは使用されないので、データベースを実行する必要はありません。
  3. ターゲットシステムに SharePlex をインストールするには、オープンターゲットインストーラではなく、Oracle ベースの SharePlex インストーラをダウンロードします。Oracle ベースのインストーラには、ターゲットデータベースに post する前に、Oracle クライアントライブラリの変換関数を使用してデータを変換するように Post に指示する機能が含まれています。
  4. SharePlex for Oracle の手順に従ってください(オープンターゲットへのインストール用ではありません)。
  5. SP_OPX_NLS_CONVERSION パラメータがデフォルトの 1 に設定されていることを確認します。

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

  1. ターゲットシステムに Oracle Administrator Client をインストールします。クライアントは、管理者インストールタイプでなければなりません。Instant Client および Runtime のインストールタイプはサポートされていません。
  2. SharePlex レジストリキー \HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\QuestSoftware\SharePlex\port_number で、ORACLE_HOME を Oracle クライアントのインストール場所に設定し、ORACLE_SID をエイリアスまたは存在しない SID に設定します。Oracle データベースは必要ありません。SharePlex は、クライアントライブラリのみを使用する必要があります。
  3. Windows インストーラを使用して 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

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

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

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

sp_ctrl> set sp_opo_oneline_debug 230230, 351626

次の項目がログに記録されます。

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

 

デフォルト: 無効

有効な値の範囲:オブジェクト ID によって列挙され、コンマによって区切られたオブジェクトのリストを形成する文字列。

有効になる時期: 即時

 

SP_OPX_OUT_OF_SYNC_SUSPEND

このパラメータは、非同期状態が発生したときに、以下に基づいて SharePlex が実行することを制御します。

  • INSERT:行はすでに存在します。そのため、一意性制約違反エラーが発生しました。
  • UPDATE および DELETE:行はデータベース内にありません。

値 0(デフォルト)

トランザクションに非同期操作が含まれる場合の Post のデフォルト動作では、トランザクション内の他の有効な操作の処理を続行し、遅延を最小限に抑えて、ターゲットをできるだけ最新の状態に維持しようとします。遅延は、ソーストランザクションが発生してからターゲットに適用されるまでの時間です。異常なトランザクション量やネットワークトラフィックの遮断など、さまざまな要因が複製の遅延時間に影響を及ぼします。

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

値 1

値 1 に設定すると、非同期状態が発生したときに、Post が post を停止するように指示します。Post は、非同期操作の SQL 文およびデータを ID_errlog.sql ログファイルに記録してから、停止します。

このパラメータを値 1 に設定したときは、複製プロセスの状態を頻繁にチェックしてください。Post を停止すると、ソースデータベースとターゲットデータベースの間に遅延が発生し、複製キューにデータが蓄積して、それらが使用可能なディスクスペースを超過することがあります。SharePlex には、複製の状態をチェックするための sp_ctrl コマンドがいくつもあり、SharePlex を無人監視するためのツールがあります。詳細については、『SharePlex 管理ガイド』を参照してください。

 

デフォルト:0(out-of-sync 状態が発生したときに停止しない)

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

有効になる時期:即時

 

SP_OPX_READRELEASE_INTERVAL

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

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

 

デフォルト:1,000

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

有効になる時期: Post の再起動時

 

SP_OPX_REDUCED_KEY

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

  • 0 に設定すると、Capture によって送信されるデータのすべてを使用して WHERE 句を作成するように Post に指示します。Capture が送信するデータは、SP_OCT_REDUCED_KEY パラメータの設定によって決まります。WHERE 句にキーの値と LONG および LOB 以外のすべての列の値を含めるには、両方のパラメータを 0 に設定します。

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

  • 1 に設定すると、キーの値と変更された列の変更前の値を使用して WHERE 句を作成するように Post に指示します。この設定では Post が WHERE 句を作成するときに変更された列の変更前後の比較を実行できるため、複製のパフォーマンスとターゲットデータの整合性とのバランスが取れます。この設定を使用できるようにするには、SP_OCT_REDUCED_KEY パラメータが 0 または 1 に設定されている必要があります。SharePlex が前後の値を使用する方法の詳細については、『SharePlex 管理ガイド』を参照してください。
  • 2 に設定すると、キー列のみを使用して WHERE 句を作成するように Post に指示します。この設定は、post のパフォーマンスを最大限に高めるときに使用できます。この設定では変更された列の前後の比較が省略されるため、SharePlex 以外にターゲットデータを変更できるプロセスやユーザーがいないことに注意してください。また、compare コマンドを使用して、通常の整合性検証を実行することをお勧めします。

SP_OCT_REDUCED_KEY も参照してください。

 

デフォルト:1

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

有効になる時期:Post の再起動時

 

SP_OPX_SQL_CACHE_DISABLE

このパラメータによって、SQL Cache 機能の有効、無効が切り替えられます。デフォルトでは、SQL Cache がオンで、このパラメータは 0 に設定されています。1 に設定すると、SQL Cache が無効になります。3 に設定すると、バッチ操作の SQL Cache が無効になり、Post が使用するメモリ量を削減できます(2 には設定できません)。

SQL キャッシュを無効にした場合は、SharePlex は次のメッセージを Event Log に印字します。SQL Cache disabled.

SQL Cache の詳細については、『SharePlex 管理ガイド』の「SQL Cache のチューニング」を参照してください。

 

デフォルト:0(オン)

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

有効になる時期:Post の再開時

 

SP_OPX_STOP_ON_DDL_ERR

このパラメータは、DDL 適用エラー発生時に Post プロセスを停止するかどうかを制御します。デフォルトの 1 を指定すると、エラーが発生したときに Post が停止するように指示されます。エラーは、通常 DDL が実行された source コンポーネントがターゲットデータベースに存在しないことを示し、その後の DML 変更も失敗する見込みであることを示します。Post を停止すると、DML の失敗が防止され、問題を訂正してデータベースを同期した状態に保つことができます。

 

デフォルト:1(オン)

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

有効になる時期:即時

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 は、queue データのディスクへの書き込みが戻る前にディスクメディアに書き込まれていることを確認するように queue モジュールに指示します。これは、Unix および Linux の標準的なディスク書き込みモデルではありません。

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

SP_QUE_SYNC パラメータは次のように実装されています。

SP_QUE_SYNC=0

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

SP_QUE_SYNC=1

SP_QUE_SYNC を 1 に設定すると、各 queue データおよびヘッダファイルを開くときに、O_SYNC フラグが設定されます。このフラグによって、データがディスクに正しく書き込まれるまで OS が書き込みコールを戻さないことが指示されます。同期フラグ(「通常の」 I/O)がない場合は、ファイルデータにスペースが割り当てられますが、ファイルデータは、システムクラッシュ、クラスタ failover などの OS が実行を停止する重大な問題が発生した場合は、書き込まれないことがあります。

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

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

SP_QUE_SYNC 設定の影響

戻る前にディスク書き込みが完了する値に SP_QUE_SYNC を設定すると、SharePlex のパフォーマンスに影響が起こることがあり、SharePlex 以外のプロセスの I/O 処理がわずかに増加することがあります。オーバーヘッドの量は、queue の中のデータ量、ファイルシステムのタイプ、使用しているディスクドライブやディスクコントローラの種類によって異なります。

SP_QUE_SYNC が実行しないこと

SP_QUE_SYNC パラメータが実行しない機能が数多く存在しています。一般的な問題を以下に示します。

  • SP_QUE_SYNC は、共有メモリとディスク間で選択を行いません。また、ディスク書き込みの判断時期にも影響を与えません。戻る前に OS に、物理ディスクへのディスク書き込みが完了したことを通知するのみです。
  • 「out of subqueues」エラーを防止しません。
  • 「ディスクスペース不足」エラーに対処しません。ファイルデータ用のスペースは、物理メディアへの書き込みまたは同期を実行する前に割り当てられます。スペース不足エラーが発生する場合、それは同期の実行前に起こります。データ消失の可能性がありますが、空きスペースを利用できるようになると、キューは使用可能になるとみなされます。
  • 「共有メモリ不足」エラーや「仮想メモリ不足」エラーを発生させたり、防止することはありません。共有メモリの消失を示すメッセージは、キューモジュールのデマンドページングシステムの障害の可能性が高いです。「仮想メモリ不足」エラーが発生した場合は、OS パラメータのデータセグメント制限を確認してください。通常の、または予想する制限値が十分ではない場合は、テクニカルサポートまで連絡してください。

クラスタでの SP_QUE_SYNC の使用

クラスタでは、SP_QUE_SYNC をクラスタのプライマリノード(共有変数データディレクトリがマウントされているノード)で設定します。また、この複製環境の一部であるクラスタの外側のソースおよびターゲットシステムでも設定します。

 

デフォルト:2

有効な値の範囲:0 ~ 2

有効になる時期:SharePlex の再起動時

 

SP_QUE_USE_SUBQUE_INDEX

このパラメータは、キューのパフォーマンスを向上します。ソースの並列性が非常に高い場合、post キューには大量のサブキューが含まれている可能性があります。それぞれのサブキューが 1 つのトランザクションセッションを表します。このため、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 秒です。

 

デフォルト:300 秒

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

有効になる時期:即時

 

SP_COP_SCAN_TIMEOUT

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

SharePlex が動作し続けるにつれて、各プロセスの履歴に応じてこの時間間隔は変化することがあります。

 

デフォルト:300 秒

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

有効になる時期:即時

 

SP_COP_SO_RCVBUF

このパラメータは target マシンの TCP/IP ウィンドウサイズをチューニングします。これは、ネットワーク上で送信されるパケットのサイズを確立するために、ソースマシンの SP_XPT_SO_SNDBUF パラメータと連動して機能します。sp_cop および Export プロセスの起動時に、TCP/IP ソケットが作成されたときに、SharePlex は両方のパラメータを参照します。

SharePlex が WAN 上で複製し、export キューが継続してバックログを起こす場合は、両方のパラメータを調節してみてください。SP_COP_SO_RCVBUF は、1024 バイトの倍数で SP_XPT_SO_SNDBUF の値以上に設定することが必要です。このパラメータのサイズを設定するには、source および target マシンの間のピン時間を判断し、それから両方のパラメータに次の数式を使用します。

param_value / ping_time= bytes per second

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

bandwidth の問題がない限り、Quest では、両方のパラメータ設定を、システムの設定を使用するデフォルトのままにしておくことをお勧めします。SP_COP_SO_RCVBUF を変更するには、これを target system で変更し、それからそのシステムで sp_cop を停止し起動します。

転送がまだ遅い場合は、ターゲットシステムで SP_IMP_WCMT_MSGCNT および SP_IMP_WCMT_TIMEOUT パラメータを増加してみてください。SP_IMP_WCMT_MSGCNT を少なくとも 10,000 に設定します。

 

デフォルト:0(デフォルトはオペレーティングシステムが設定します)

有効な値の範囲:1024 の倍数となる正の整数 (バイト)最大値はオペレーティングシステムが設定します。

有効になる時期: 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 は新しいポート番号を使用します。SharePlex は UDP ポートを hello メッセージおよび are-you-alive メッセージだけに使用して、実際には、UDP 経由の RMP を使用します。他のすべての通信は TCP 経由で行ないます。

 

デフォルト:2100

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

有効になる時期: SharePlex の再起動時

 

Related Documents

The document was helpful.

Select Rating

I easily found the information I needed.

Select Rating