Oracle® Fusion Middleware SQL ServerのためのOracle GoldenGateのインストールおよび構成 12c (12.2.0.1) E70108-03 |
|
前 |
次 |
この章は、次の項で構成されます。
この項では、SQL ServerデータベースへのExtractおよびReplicatの接続を設定する手順について説明します。
Extractでは、ODBC (Open Database Connectivity)接続でソースSQL Serverデータベースに接続します。この接続を確立するには、「データ ソース(ODBC)」コントロール・パネルからデータ・ソース名(DSN)を設定します。手順は、ODBC接続の構成を参照してください。
Replicatがターゲット・データベースに接続してDML操作を実行できるようにする方法は、次のとおりです。
ODBCを介して接続します。
OLE DBを介して接続します。この方法がデフォルトで、ODBCを使用する方法よりもパフォーマンスが多少向上します。
SQL Serverレプリケーション・ユーザーとしてOLE DBを介して接続します。IDENTITY
列、外部キー制約、およびトリガーに、NOT FOR REPLICATION
を設定する必要があります。
注意:
いかなる場合でも、メタデータに関する問合せに、Replicatでは常にODBCを使用するため、依然としてターゲットODBC接続を構成する必要があります。
使用する方法を選択する前に、次のガイドラインと手順を確認してそれぞれのメリットとデメリットを評価します。
ReplicatがODBC接続またはデフォルトのOLE DB接続を介して接続すると、次のような制限が適用されます。
ODBCまたはデフォルトのOLE DBを使用している場合に、ソースとターゲットに対してIDENTITY
列をまったく同じに保つには、Replicatはトランザクションで特別な操作を作成し、必ずターゲットに対してシードがインクリメントされるようにします。これらの手順によって、配信パフォーマンスが低下する場合があります。
冗長な操作の可能性を排除するために、ターゲット表に対するトリガーおよび制約を調整または無効にする必要があります。
ReplicatをODBCまたはデフォルトのOLE DBと組み合せて使用するには、次の手順に従います。
注意:
OLE DBは、ODBC接続設定を使用して、使用するドライバの情報とともにOLE DBの接続情報を取得します。
USEREPLICATIONUSER
を有効にしてOLE DBを使用するReplicatがUSEREPLICATIONUSER
オプションを指定してOLE DB経由でSQL Serverレプリケーション・ユーザーとして接続し、IDENTITY
、トリガー、および外部キー制約に対してNOT FOR REPLICATION
が有効になっている場合は、次のような利点と制限が適用されます。
Replicatが挿入を実行すると、IDENTITY
シードがインクリメントされません。双方向のSQL Server構成では、前の項の手順3で示した例のように、シード値と増分値をずらして設定します。
冗長な操作を回避するために、ターゲット上でReplicatユーザーに対してトリガーが自動的に無効になりますが、他のユーザーに対してはターゲット上でトリガーが起動します。
外部キー制約は、Replicatトランザクションのターゲットに対して強制されません。CASCADE
更新および削除は行われません。これらも冗長な操作を防ぎます。
CHECK
制約は、Replicatトランザクションのターゲットに対して強制されません。これらの制約は、データの取得前にソースに対して強制されますが、ターゲットに制約がないことでデータの整合性の問題が発生するかを検討します。
注意:
通常のIDENTITY
、トリガー、および制約の機能は、Replicatレプリケーション・ユーザー以外のユーザーに対しては有効のままです。
USEREPLICATIONUSER
を設定してReplicatを使用するには、次の手順に従います。
次の手順に従って、ソースSQL ServerデータベースおよびターゲットSQL Serverデータベース用のSQL Serverシステムのデータ・ソース名(DSN)を作成します。DSNには、ODBC (Open Database Connectivity)を介したSQL Serverデータベースへの接続方法に関する情報が格納されます。
注意:
OLEDBを適用の接続方法として使用している場合でも、Replicatでは、ターゲット・データベースへのメタデータに関する問合せに、常にODBCを使用します。したがって、Replicatには常にDSNが存在する必要があります。
SQL ServerのDSNの作成手順
次の表属性は、Oracle GoldenGate環境で処理する必要があります。
SQL Serverがターゲットの環境では、ソースで発生した操作を繰り返す可能性のあるトリガーおよびカスケード制約を考慮する必要があります。たとえば、TableBにレコードを挿入したTableAの挿入トリガーがソースにあり、TableAおよびTableBの両方をキャプチャおよび配信するようにOracle GoldenGateが構成されている場合、ターゲット表TableAの挿入トリガーを無効にする必要があります。そうしないと、ReplicatはTableAに挿入し、トリガーが起動してTableBに挿入し、ReplicatはTableBにも挿入しようとするため、異常終了します。
ソースからこれらのアクションのレプリケートも実行する場合に、ターゲット表でトリガーまたはカスケード制約を無効にする必要がないのは、OLE DB接続をReplicatに使用する場合(これはデフォルトのため、パラメータを構成する必要はありません)およびDBOPTIONS USEREPLICATIONUSER
パラメータをReplicatに使用する場合のみです。制約、トリガー、またはIDENTTITY
プロパティでNOT FOR REPLICATION
を有効にする必要があります。
ターゲットでトリガーおよび制約を無効にする場合は、次のシナリオを適用できます。
ソースのすべての表がレプリケートされる単方向のレプリケーション。ターゲットのカスケード制約およびトリガーを無効にしてください。
ターゲット表でトリガーおよび制約を有効にする場合は、次のシナリオを適用できます。
トリガーまたはカスケード操作によって影響を受ける表がレプリケートされず、これらの表をロードするアプリケーションのみがトリガーまたはカスケード操作を使用している単方向のレプリケーション。ターゲットのカスケード制約またはトリガーを無効にしないでください。
ソースのすべての表がレプリケートされる単方向または双方向のレプリケーション。ターゲット表のカスケード制約およびトリガーを設定してNOT FOR REPLICATION
を有効にし、ReplicatのDBOPTIONS USEREPLICATIONUSER
パラメータを使用してください。
Oracle GoldenGateでは、レプリケートされた更新および削除に対して正しいターゲット行を見つけるために、ソース表とターゲット表にある形式の一意の行識別子が必要です。ソース表は、Oracle GoldenGateで使用する行識別子の種類を判別する方法に記載されている任意の種類のキーを持つことができます(ただし、SQL Server Standard Editionインスタンスの表には主キーが必要です)。表上の主キーが識別されず、固定長の列が存在する場合は、それらの固定長列のいずれかの長さが3800バイト未満である必要があります。
TABLE
またはMAP
文でKEYCOLS
句が使用されないかぎり、Oracle GoldenGateは、使用する行識別子を次の優先順位に従って選択します。