この章の内容は次のとおりです。
Oracle GoldenGateを使用して、次の処理を実行できます。
スタンドアロンのバッチ・ロードを実行して、移行などの目的でデータベース表にデータを移入できます。
Oracle GoldenGateとの変更同期に備えて、初期同期の実行の一環としてデータベース表にデータをロードできます。
データベース・ユーティリティで実行される方法以外のすべての初期ロード方式では、Oracle GoldenGateのパラレル・プロセスを使用することで、大規模データベースをより高速にロードできます。パラレル処理を使用するには、次の手順を実行します。
TABLE
パラメータおよびMAP
パラメータを使用して、ExtractプロセスとReplicatプロセスのペアごとに異なる表セットを指定します。または、TABLE
のSQLPREDICATE
オプションを使用して、異なるExtractプロセス間でサイズの大きい表の行を分割します。すべての初期ロード方式で、RMTHOST
パラメータにTCPBUFSIZE
を使用する方が、これを使用しないロードよりスループットが3倍向上することがテストで示されています。ターゲット・システムがNonStopの場合は、このパラメータを使用しないでください。
次の項で説明している初期ロードの実行の前提条件に適合していることを検証します。
初期ロードを実行する前に、DDLの抽出およびレプリケーションを無効化します。DDL処理は、ExtractおよびReplicatパラメータ・ファイルのDDL
パラメータで制御されます。
ロードを高速に行い、エラーが起こらないようにするための推奨事項は、次のとおりです。
データ: ターゲット表が空であることを確認します。そうでない場合、行の重複エラーや既存の行とロードされる行との間に競合が発生することがあります。
制約: 外部キー制約およびチェック制約を無効化します。外部キー制約ではエラーが発生する可能性があり、チェック制約ではロード・プロセスが低速化する可能性があります。制約は、ロードが正常に終了した後に再度有効化できます。
索引: ターゲット表から索引を削除します。索引は、挿入には必要ありません。索引によって、ロード・プロセスの速度が大幅に低下します。表に挿入される行ごとに、データベースではその表に対するすべての索引が更新されます。ロードの完了後、索引を再度追加できます。
注意:
1次索引は、DB2 for z/OSのターゲット表にアクセスするすべてのアプリケーションに必要です。1次索引以外の他のすべての索引は、ターゲット表から削除できます。
キー: Oracle GoldenGateでレプリケート済の増分データ変更とロードの結果とを調整するには、各ターゲット表に主キーまたは一意キーが含まれている必要があります。アプリケーションを通じてキーを作成できない場合、TABLE
パラメータおよびMAP
パラメータのKEYCOLS
オプションを使用して、Oracle GoldenGate用の代替キーとなる列を指定します。キーは、処理対象の行の識別に役立ちます。キーを作成できない場合、ロードのためにソース・データベースを静止する必要があります。
ソース・システムとターゲット・システムで、Managerプロセスを構成して起動します。1つのManagerを、複数の初期ロード・プロセスと変更同期プロセスに使用できます。詳細は、Managerおよびネットワーク通信の構成を参照してください。
データ定義ファイルは、ソース・データベースとターゲット・データベースに異なる定義が存在する場合に必要です。Oracle GoldenGateは、このファイルを使用して、データをターゲット・データベースで必要とされる形式に変換します。詳細は、メタデータへのレプリケートされたデータの関連付けを参照してください。
初期ロード中のトランザクション変更の取得およびレプリケーションに備えるため、オンラインのExtractグループおよびReplicatグループを作成します。これらのグループは、ロード手順の実行中に起動できます。詳細は、「オンライン変更同期の構成」を参照してください。
注意:
静止されたソース・データベースからロードを実行し、続けて継続的な変更同期を実行しない場合、これらのグループは省略できます。
初期ロードの指示で要求されるまで、ExtractグループまたはReplicatグループは起動しないでください。変更同期によって、ロードが適用されている間にトランザクション変更が追跡され、その後ターゲット表がそれらの変更に応じて調整されます。
注意:
Extractが新しいOracle GoldenGate構成で初めて起動されたとき、開いているトランザクションはスキップされます。Extractの起動後に開始されたトランザクションのみキャプチャされます。
変更同期パラメータ・ファイルで使用するパラメータの一部は、初期ロードのExtractおよびReplicatパラメータ・ファイルにも必要です。これらのパラメータは、あるパラメータ・ファイルから別のパラメータ・ファイルにコピーできます。または、これらのパラメータを中央ファイルに格納し、各パラメータ・ファイルでOBEY
パラメータを使用して取得できます。別の方法として、共有パラメータ用のOracle GoldenGateマクロを作成し、そのマクロをMACRO
パラメータを使用して各パラメータ・ファイルからコールできます。
OBEY
およびマクロの使用方法の詳細は、Oracle GoldenGateプロセス・インタフェースのスタート・ガイドを参照してください。
データベース・コピー・ユーティリティを使用してターゲット・データを構築するには、データベース・ユーティリティでデータの静的コピーを作成および適用しながら、変更同期Extractグループを起動して進行中のデータ変更を抽出します。コピーが終了したら、変更同期Replicatグループを起動して、コピーの適用中に変更された行を再同期します。これ以降、ExtractとReplicatの両方が継続的に実行され、データ同期が維持されます。この方法では、初期ロード用の特別なExtractプロセスまたはReplicatプロセスを使用しません。
注意:
この方法でロードされるオブジェクトとデータ型は、使用するデータベース用のOracle GoldenGateおよび使用するデータベース・ユーティリティでサポートされている必要があります。データベースに対してサポートされているアイテムについては、そのデータベースに対応するOracle GoldenGateのインストレーションおよび構成のドキュメントを参照してください。データベース・ユーティリティでサポートされているアイテムについては、そのデータベース・ベンダーのドキュメントを参照してください。
この方法では、Oracle Data Pumpユーティリティを使用して、ターゲット・データを構築します。コピーをターゲットに適用した後、コピーが停止したSCNを記録します。コピーに含まれているトランザクションは、整合性違反によるコリジョンを回避するためにスキップされます。プロセスの開始地点から、Oracle GoldenGateはデータ同期を維持します。これらの方法では、初期ロードOracle GoldenGateプロセスは不要です。
Oracle Data Pumpを使用するOracle Databaseで、表ごとのCSNフィルタリングを自動的にインスタンス化して、すべての表が同じSCNに配置されるのを防ぐことができます。
ソース・データベースの場合
ADD TRANDATA
およびADD SCHEMATRANDATA
を使用して、表を自動的に準備します。
INFO TRANDATA
を使用して、表のインスタンス化の準備ができていることと、それが実行されたポイントを確認します。
ターゲット・データベースでReplicatを停止します。
適切なTABLE
文でExtractを起動します。
Oracle Datapumpを使用して表をEXPORT
します。これにより、インポート時にターゲットでインスタンス化SCNを設定するインポート・アクションが自動的に生成されます。
ターゲット・データベースの場合
詳細は、Oracle GoldenGate Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。
Oracle Data Pumpでインスタンス化を実行するには、My Oracle Supportドキュメント1276058.1を参照してください。このドキュメントを入手するには、次のようにします。
1276058.1
」を貼り付けるか入力し、「Search」をクリックします。Replicatを使用してターゲット・データを構築するには、初期ロードExtractを使用してソース表からソース・レコードを抽出し、それらのレコードを正規形式で抽出ファイルに書き込みます。初期ロードReplicatは、データベース・インタフェースを使用してこのファイルからデータをロードします。ロード中、変更同期グループは、増分変更を抽出してレプリケートします。その後、これらの変更は、ロードの結果に応じて調整されます。
ロード中、レコードは、1つずつターゲット・データベースに適用されるため、この方法は他の初期ロード方式と比較して非常に低速です。この方法では、ソース・システムとターゲット・システムのいずれかでデータ変換を実行できます。
ファイルからReplicatにデータをロードする手順
データベースのバルク・ロード・ユーティリティを使用するには、初期ロードExtractを使用してソース表からソース・レコードを抽出し、それらのレコードを外部ASCII形式で抽出ファイルに書き込みます。ファイルを読み取ることができるのは、Oracle SQL*Loader、Microsoft社のBCP、DTSまたはSQL Server Integration Services(SSIS)ユーティリティ、あるいはIBM社のロード・ユーティリティ(LOADUTIL
)です。
注意:
この方法でロードされるオブジェクトとデータ型は、使用するデータベース用のOracle GoldenGateおよび使用するデータベース・ユーティリティでサポートされている必要があります。データベースに対してサポートされているアイテムについては、そのデータベースに対応するOracle GoldenGateのインストレーションおよび構成のドキュメントを参照してください。データベース・ユーティリティでサポートされているアイテムについては、そのデータベース・ベンダーのドキュメントを参照してください。
ロード中、変更同期グループは、増分変更を抽出してレプリケートします。その後、これらの変更は、ロードの結果に応じて調整されます。ロード処理の一環として、Oracle GoldenGateで初期ロードReplicatを使用して、データベース・ユーティリティに必要な実行ファイルと制御ファイルを作成します。
制御ファイルは動的に生成され、変換ルールで事前構成できないため、すべてのデータ変換はソース・システムで初期ロードExtractによって実行される必要があります。
ファイルからデータベース・ユーティリティにデータをロードする手順
Oracle GoldenGateダイレクト・ロードを使用するには、Oracle GoldenGateの初期ロードExtractを実行してソース・レコードを抽出し、それらのレコードを初期ロードReplicatタスクに直接送信します。タスクは、Managerプロセスによって動的に起動されるため、Collectorプロセスやファイルを使用する必要はありません。初期ロードReplicatタスクによって、ターゲット・データベースに対するロードがサイズの大きいブロック単位で行われます。変換およびマッピングは、ExtractまたはReplicat、あるいはその両方で実行できます。ロード中、変更同期グループは、増分変更を抽出してレプリケートします。その後、これらの変更は、ロードの結果に応じて調整されます。
Replicatで使用するポートを制御し、検索およびバインドのプロセスを高速化するには、Managerのパラメータ・ファイルでDYNAMICPORTLIST
パラメータを指定します。Managerは、このパラメータで指定されたポート番号のリストをReplicatタスク・プロセスに渡します。Replicatはまずこのリストのポートを検索し、リストのポートが使用できない場合にのみ、デフォルトのManagerポート番号からスキャンを開始して、使用可能なポートが見つかるまで昇順でスキャンを続けます。
このメソッドは、標準的な文字、数字、日時データ型の他に、CLOB
、NCLOB
、BLOB
、LONG
、XML
、および次の属性とともに埋め込まれているユーザー定義データ型(UDT
)もサポートします: CHAR
、NCHAR
、VARCHAR
、NVARCHAR
、RAW
、NUMBER
、DATE
、FLOAT
、TIMESTAMP
、CLOB
、BLOB
、XML
およびUDT
。必要に応じて、ソースとターゲットの間でキャラクタ・セットが変換されます。
このメソッドはOracle内部表をサポートしていますが、ロード時に、ソースとターゲットのキャラクタ・セットを変換しません。
Oracle GoldenGateダイレクト・ロードを使用してデータをロードする手順
Oracle SQL*Loaderユーティリティを使用してターゲット・データを構築するには、Oracle GoldenGateの初期ロードExtractを実行してソース・レコードを抽出し、それらのレコードを初期ロードReplicatタスクに直接送信します。タスクは、Managerプロセスによって動的に起動されるプロセスであり、Collectorプロセスやファイルを使用する必要はありません。初期ロードReplicatタスクは、SQL*LoaderのAPIとのインタフェースになり、ダイレクト・パス・バルク・ロードとしてデータをロードします。データ・マッピングと変換は、初期ロードExtractまたは初期ロードReplicat、あるいはその両方で行えます。ロード中、変更同期グループは、増分変更を抽出してレプリケートします。その後、これらの変更は、ロードの結果に応じて調整されます。
Replicatで使用するポートを制御し、検索およびバインドのプロセスを高速化するには、Managerのパラメータ・ファイルでDYNAMICPORTLIST
パラメータを指定します。Managerは、このパラメータで指定されたポート番号のリストをReplicatタスク・プロセスに渡します。Replicatはまずこのリストのポートを検索し、リストのポートが使用できない場合にのみ、デフォルトのManagerポート番号からスキャンを開始して、使用可能なポートが見つかるまで昇順でスキャンを続けます。
このメソッドは、標準的な文字、数字、日時データ型の他に、CLOB
、NCLOB
、BLOB
、LONG
、XML
、および次の属性とともに埋め込まれているユーザー定義データ型(UDT
)もサポートします: CHAR
、NCHAR
、VARCHAR
、NVARCHAR
、RAW
、NUMBER
、DATE
、FLOAT
、TIMESTAMP
、CLOB
、BLOB
、XML
およびUDT
。VARRAYS
はサポートされていません。必要に応じて、ソースとターゲットの間でキャラクタ・セットが変換されます。
このメソッドはOracle内部表をサポートしていますが、ロード時に、ソースとターゲットのキャラクタ・セットを変換しません。
ダイレクト・バルク・ロードを使用してSQL*Loaderにデータをロードする手順
2つのTeradataデータベースを同期する場合に推奨される方法は、任意のTeradataデータ・ロード・ユーティリティを使用することです。推奨されるユーティリティはMultiLoadです。
この手順では、ExtractおよびReplicatの変更同期グループが使用できる状態で、Teradataレプリケーション用に適切に構成されている必要があります。詳細は、オンライン変更同期の構成を参照してください。
複数のExtractグループおよびReplicatグループを使用する場合、すべてのグループで必要に応じて各手順を実行してください。
Teradataロード・ユーティリティを使用してデータをロードする手順