Oracle® Fusion Middleware NonStop SQL/MXのためのOracle GoldenGateのインストールおよび構成 12c (12.2.0.1) E72561-01 |
|
前 |
次 |
Oracle GoldenGate環境では、特定のデータベース属性に対応する必要があります。ソース・システムで必要な手順と。ターゲット・システムで必要な手順、両方で必要な手順があります。この章では、それらの手順について説明します。内容は次のとおりです。
SYSKEY
またはクラスタ化キーを使用して表をサポートするためのOracle GoldenGateの構成SYSKEY
またはクラスタ化キーを含む表がReplicat構成に含まれる場合は、UPDATE
またはDELETE
操作中に正しい行が変更されるように手順を実行する必要があります。Replicatでは、ODBCドライバを使用してターゲットSQL/MXデータベースに接続します。このドライバでは、Replicatでターゲット表のSYSKEYs
の値を取得できないため、WHERE
句で使用して処理の行を検出することはできません。この条件は、次のいずれかの方法で処理できます。
第3.1.1項「方法1 (Replicat構成を使用する処理)」
第3.1.2項「方法2 (Extract構成を使用する処理)」
注意: これは、SYSKEY またはクラスタ化キーを含む表の処理の優先方法です。 |
この方法では、ソースSYSKEY
をターゲット表の追加の列にマップします。これにより、キー値を使用して、同じキー値を含むターゲット行を検出するようにReplicatを構成できます。
GGS_SYSKEY
という名前の列をターゲット表に追加します。
MAP
文で、COLMAP
句を使用して、ソースSYSKEY
列をGGS_SYSKEY
列にマップします。
GGS_SYSKEY
列を同じMAP
文のKEYCOLS
句に指定します。これにより、一意のソースSYSKEY
値がターゲット表のキーとして使用されます。
このプロシージャの例を次に示します。
ソース表:
CREATE TABLE DEV.TSSCAT.ENTRY ( COLA INT DEFAULT NULL , COLB CHAR(20) DEFAULT DEFAULT NULL )
ターゲット表:
ターゲット表に、SYSKEY
ではなく、クラスタ化キーが含まれている場合は、ユーザー定義の列をSTORE BY
句に含めます。
CREATE TABLE DEV.TASCAT.ENTRY ( GGS_SYSKEY LARGEINT NO DEFAULT NOT NULL , COLA INT DEFAULT NULL , COLB CHAR(20) DEFAULT DEFAULT NULL ) STORE BY (GGS_SYSKEY ASC);
MAP文:
ターゲット表に、SYSKEY
ではなく、クラスタ化キーが含まれている場合は、ユーザー定義の列をSTORE BY
句に含めます。
MAP TSSCAT.ENTRY, TARGET TASCAT.ENTRY, COLMAP (ggs_syskey = syskey, USEDEFAULTS), KEYCOLS (ggs_syskey);
Replicatでは、完全な行イメージを使用することで、キーに依存することなく、ターゲット表で行を検出できます。Replicatは、ターゲット・キーが定義されていない場合や、使用できない場合(ODBCで指定されていない場合)、デフォルトで完全な行イメージを使用します。この方法では、指定の行のすべての列値を組み合せることで、その行を表の他のすべての行から一意にする必要があります。そうしないと、Replicatは複数の行を変更する可能性があります。
この方法では、ターゲット表の定義を変更しないことが必要で、Replicat構成に特別な列マッピング要件がないことも必要です。必要なのは、ソース表属性およびExtract構成で圧縮を無効にすることのみです。
ソース表を作成または変更し、ATTRIBUTE NO AUDITCOMPRESS
を設定します。次に例を示します。
CREATE TABLE DEV.TSSCAT.ENTRY ( COLA INT DEFAULT NULL , COLB CHAR(20) DEFAULT DEFAULT NULL ) ATTRIBUTE NO AUDITCOMPRESS;
Extractパラメータ・ファイルのNOCOMPRESSDELETES
およびNOCOMPRESSUPDATES
パラメータを使用し、表のすべての列をUPDATE
およびDELETE
操作の証跡に書き込むようにExtractを構成します。Replicatは、すべての列値を行ロケータとして使用します。(デフォルトでは、ExtractはキーをDELETEs
の証跡にのみ書き込み、UPDATEs
のキーおよび変更された列のみ書き込みます。)詳細は、Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。
次の手順を実行し、ソースではGGSCIコマンド・インタフェースから、ターゲットではReplicatプロセスからそれぞれ接続可能なデータ・ソース名(DSN)を指定します。
NonStopシステムにログインして、TACLプロンプトを選択します。
$SYSTEM.SYSTEM.ODBCDSN
ODBC構成ファイルをEditまたはTEditで編集します。
DSNを[ODBC Data Sources]
リストに追加します(例3-1を参照)。このファイルにはデフォルトでTDM_Default_DataSource
というDSNおよびデフォルト接続設定が含まれています。
次の行を追加して、ユーザーのデータ・ソース接続を定義します(必要に応じて例3-1を参照)。
[dsn
]: ヘッダーのdsn
をDSNで置き換えます。
Description
: 必要に応じて、テキスト文字列の説明文を追加します。
Catalog
: データベース・カタログを追加します。
Schema
: データベース・スキーマを追加します。
Server
: NSKサーバーを追加します。サーバーはODBC/MXサーバーが稼働している場所で、TCP:
IP_address_or_domain_name
/IP_port
の形式(例3-1を参照)で指定する必要があります。
その他のパラメータは、TDM_Default_DataSource
の下に指定されているデフォルト設定以外にする場合にのみ追加します。
注意: ODBCDSN ファイルのDSNは、ODBC/MX サービスで定義されているDSNと完全に一致する必要があります。データ・ソース名では大/小文字が区別されます。 |
ファイルを保存して編集セッションを終了します。
例3/1 ODBC構成ファイルのテンプレート
TACL> Edit $SYSTEM.SYSTEM.ODBCDSN [ODBC] TraceFlags = 6 TraceStart = 0TraceFile = trlog [ODBC Data Sources] TDM_Default_DataSource = NonStop ODBC/MX 2.3 <dsn> = NonStop ODBC/MX 2.3 DataSourceName = <Driver> [TDM_Default_DataSource] Description = Default Data Source Catalog = CAT Schema = SCH DataLang = 0 FetchBufferSize = SYSTEM_DEFAULT Server = TCP:xxx.xxx.xxx.xxx/xxxx SQL_ATTR_CONNECTION_TIMEOUT = NO_TIMEOUT SQL_LOGIN_TIMEOUT = NO_TIMEOUT SQL_QUERY_TIMEOUT = NO_TIMEOUT [<dsn>] Description = <text string describing data source> Catalog = <target catalog> Schema = <target schema> Server = TCP:<ip address or domain name>/<ip port>
$SYSTEM.SYSTEM.ODBCDSN
ファイルおよびODBC for SQL/MXの構成方法の詳細は、『HP NonStop Open System Services ODBC/MX Client Driver』ドキュメントを参照してください。
http://h20000.www2.hp.com/bc/docs/support/SupportManual/c02132824/c02132824.pdf
Oracle GoldenGateでは、パラメータ・ファイルおよびコマンドの2部構成(schema.table
)および3部構成(catalog.schema.table
)の両方の表名をサポートしています。オブジェクト名の指定の詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。
2部構成の名前では、スキーマおよびオブジェクト名を指定します。名前のカタログをマップするには、その部分をExtractまたはReplicatグループにリンクする必要があります。1つのExtractまたはReplicatグループにリンクできるカタログは1つのみです。複数のカタログから取得または複数のカタログに適用するには、ソースでExtractグループごとにExtractグループを1つずつ、ターゲットでReplicatグループごとにReplicatグループを1つずつ作成する必要があります。カタログをExtractグループにリンクするには、SOURCEDB
パラメータを使用します。カタログをReplicatグループにリンクするには、TARGETDB
パラメータを使用します。SOURCEDB
およびTARGETDB
のUSERID
の部分は、デフォルト・スキーマを指定します。
SOURCEDBcatalog
USERIDschema
TARGETDBcatalog
USERIDschema
注意: Extractで使用されるAPIはデータベースにログインしないので、認証パスワードは必要ありません。 |
ターゲットのSQL/MX表でトリガー、カスケード削除制約およびカスケード更新制約を無効にしたり、Oracle GoldenGateデータベースのユーザーによる変更を無視するためにそれらの制約を変更したりします。Oracle GoldenGateでは、トリガーまたはカスケード制約の結果として生成されるDMLがレプリケートされます。同じトリガーや制約がターゲット表でアクティブになった場合、レプリケートされたバージョンのために重複となり、データベースでエラーが返されます。ソース表にemp_src
とsalary_src
、ターゲット表にemp_targ
とsalary_targ
を使用している次の例について考えます。
emp_src
に削除が発行されます。
それによって、削除がsalary_src
にカスケードされます。
Oracle GoldenGateによって、両方の削除がターゲットに送信されます。
親削除が最初に到達し、emp_targ
に適用されます。
親削除によって、削除がsalary_targ
にカスケードされます。
salary_src
からカスケードされた削除がsalary_targ
に適用されます。
行はすでに手順5で削除されたため、その行を見つけることはできません。
次の手順を実行して、NonStopターゲットのODBC接続タイムアウトをSYSTEM_DEFAULT
(10分)からNO_TIMEOUT
に変更します。
OSHでmxci
を実行し、モードをmxcs
に設定します。
/G/DEV01/SUPERDEV 1>mxci >>mode mxcs;
次のコマンドを発行して現在の設定を表示します。
info ds *,detail;
システムは次のように応答します。
例3-2
Name: \SYSA.$MX.TDM_Default_DataSource CpuList: ALL InitPri..........Same as Assoc Server CurrentState..................STARTED ConnectedServers....................0 AvailableServers....................4 LastStateChg.............Apr 12 15:36 LastUpdate...............Apr 12 14:56 IdleServer..........................4 IdleTimeout............SYSTEM_DEFAULT MaxServer.........................100 ConnTimeout............SYSTEM_DEFAULT InitServer..........................4 StartAutomatic.....................ON Trace.............................OFF SQLPrepareStat....................OFF ConnInfoStat.......................ON SQLExecuteStat....................OFF SessionInfoStat....................ON SQLExecDirectStat.................OFF SQLStmtStat.......................OFF SQLFetchStat......................OFF
次のようにして、IdleTimeout
およびConnTimeout
をNO_TIMEOUT
に変更します。
CS>alter ds "TDM_Default_DataSource", IdleTimeout NO_TIMEOUT; CS>>alter ds "TDM_Default_DataSource", ConnTimeout NO_TIMEOUT;
Oracle GoldenGateで使用される可能性があるds
に対して、変更を繰り返します。
次のパラメータをReplicatパラメータ・ファイルに追加して、ReplicatがSQL/MXターゲット・データベースで使用するODBC接続認証を指定します。
TARGETDBDSN
USERIDuser
, PASSWORDpassword
TARGETDB
およびUSERID
パラメータを1つのエントリとして使用します。
TARGETDB
で、ODBCデータ・ソース名を指定します。
USERID
でユーザー名およびパスワードを指定します。
NonStop SQL/MXソース・データベースとターゲット・データベース間でデータをレプリケートするには、2つのデータベースのバージョンと構造が同じ場合でも、Replicatプロセスにソース・データ定義を指定する必要があります。Oracle GoldenGateにメタデータが返される方法は、ネイティブAPIによってソース・データベースから返される場合と、ODBCによってターゲット・データベースから返される場合とでは少し異なります。
DEFGEN
ユーティリティを使用してデータ定義ファイルを作成します。
定義ファイルをターゲット・システムに転送します。
Replicatパラメータ・ファイルのSOURCEDEFS
パラメータを使用して、定義ファイルの完全修飾名を指定します。
データ定義ファイルの詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。