Sybaseでサポートされているオブジェクトおよび操作

この項では、Oracle GoldenGateでサポートされているデータ操作およびデータベース・オブジェクトをリストします。

  • 最大長512 KBの行を含むSybaseの表に対する挿入、更新および削除操作の抽出およびレプリケーションをサポートしています。

  • データベースでサポートされる表ごとの列の最大数および最大サイズ。

  • 遅延挿入、遅延間接挿入、遅延更新および遅延削除。遅延更新を使用すると、ターゲット上の影響を受けるSQLで主キーの制約違反が生じる可能性があります。これらのエラーが発生した場合は、ReplicatのパラメータHANDLECOLLISIONSを使用します。

  • 影響を受ける表の名前がすべてのスキーマで一意の場合は、TRUNCATE TABLE。表名がすべてのスキーマにわたって一意でない場合は、それらの表に対してIGNORETRUNCATESパラメータを使用して、Replicatの異常終了を回避します。

  • ExtractおよびReplicatによる、GETTRUNCATESおよびIGNORETRUNCATES

  • ユーザー定義システム暗号化パスワードを使用して暗号化されたデータ。

  • FETCHBATCHSIZEパラメータによって制御される、初期ロード時の配列のフェッチ。

  • 次のプラットフォーム上のASE 15.7 SP110以降のBATCHSQL Replicat機能。

    • AIX

    • Linux x64

    • Sun Solaris SPARC

    • Sun Solaris x64

    • Windows x64

    特定のシナリオで、CS_NUMERICおよびCS_DECIMALデータ型は、Sybase固有のCTライブラリのバグにより、BatchSQLでサポートされていません。LOBレプリケーションは、Sybaseデータベース・バージョン157 SP110以降のBatchSqlモードでサポートされています。これによりLOBレプリケーションのパフォーマンスが向上します。これは16384バイトのLOBデータに制限されています。つまり、LOBデータが16384バイトを超える場合、データはBATCHSQLモードでは処理されず、Normalモードに切り替わります。

  • 計算結果列のサポートに関する制限事項は次のとおりです。

    • 永続化計算結果列を完全にサポートします。変更値はトランザクション・ログに格納され、証跡に取得できます。

    • 行内LOB列には、NOT NULL制約を使用できません。NOT NULL制約を使用する必要がある場合は、行外LOB列のみで使用します。

    • 非永続化計算結果列がある表。ただし、これらの列の変更データはトランザクション・ログに書き込まれないため、変更データは取得されません。非永続化計算結果列のデータをレプリケートするには、TABLEパラメータのFETCHCOLSまたはFETCHMODCOLSオプションを使用して表から列データをフェッチします。列がデータベースで変更された時点と処理されるトランザクション・レコードのデータをExtractでフェッチする時点でデータ値が異なることにより、不整合が生じる可能性があることに注意してください。

    • その列のデータが証跡にあった場合でも、ReplicatはDMLを計算結果列に適用しません。データベースがこの種の列のDMLを許可しないためです。ソース永続化計算結果列またはフェッチされた非永続化列のデータは、計算結果列ではないターゲット列に適用できます。

    • 初期ロードでは、データはすべて、トランザクション・ログからではなくソース表から直接選択されます。したがって、初期ロードでは、非永続化計算結果列も含めてすべての列のデータ値が証跡に書き込まれるか、ターゲットに送信されます。どちらになるかは、使用されるメソッドによって決まります。ただし、変更データの適用時に、Replicatは初期ロード・データを計算結果列に適用しません。データベースがこの種の列のDMLを許可しないためです。

    • キー列、索引列として定義されているか、TABLE文またはMAP文のKEYCOLS句に含まれている永続化計算結果列は使用されません。一意キーまたは索引に計算結果列が含まれていて、Oracle GoldenGateがそのキーを使用する必要がある場合、計算結果列は無視されます。また、一意キーまたは一意索引に計算結果列が含まれていて、表の唯一の一意識別子である場合は、計算結果列以外のすべての列がターゲット行を検索するための識別子として使用されます。したがって、キーまたは索引に計算結果列が含まれ、残りの列に一意性がない場合は、データの整合性に影響します。Sybaseでは、非永続化計算結果列はキーの一部としてサポートされず、Oracle GoldenGateでもサポートされません。

    • TRUNCATE TABLEをサポートするには、すべての表名がデータベース内のすべてのスキーマで一意である必要があります。このルールは、ExtractとReplicatに適用されます。

  • 自動ハートビート表のサポートに関する制限事項は次のとおりです。

    • ハートビート頻度は60で割り切れる整数にする必要があります。Oracle GoldenGateのハートビート・パラメータの頻度は、秒単位で使用することもできますが、分単位で受け入れられます。Sybaseのジョブ・スケジューラで使用される分単位は小数ではなく整数なので、頻度を分単位で設定するために最も近い設定可能な値に内部変換されます。たとえば、この値を65秒に設定すると、頻度は1分に設定されます。140秒の場合、値は2分に設定されます。

    • GG_HEARTBEAT_SEED表、GG_HEARTBEAT表およびGG_HEARTBEAT_HISTORY表のincoming_routing_pathoutgoing_routing_pathのデータが1500文字を超える場合にReplicatが異常終了すると、データの切捨てが発生します。これらの表のincoming_routing_pathおよびoutgoing_routing_pathのサイズは、ASCIIで1500文字に設定され、マルチバイト文字では最大500バイトです。受信および送信ルーティング・パスの文字列が指定の制限以内であることを確認してください。

    • Sybaseジョブ・スケジューラは、Oracle GoldenGateハートビート機能を実行する前にASEサーバーで構成する必要があります。

    • ハートビート表の機能が正常に動作するためには、ログイン・ユーザーにreplication_rolejs_admin_rolejs_user_roleの各ロールが必要です。