- Oracle GoldenGateクラシックのドキュメント
- インスタンス化
- 初期ロードを使用したOracle GoldenGateのインスタンス化
- ダイレクト・バルク・ロードを使用したSQL*Loaderへのデータのロード
ダイレクト・バルク・ロードを使用したSQL*Loaderへのデータのロード
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にデータをロードする手順
- 初期ロードの前提条件の要件を満たしていることを確認します。
LOCK ANY TABLEをターゲットOracleデータベースのReplicatデータベース・ユーザーに付与します。- ソース・システムとターゲット・システムで、GGSCIを実行してManagerを起動します。
START MANAGER
- ソース・システムで、次のコマンドを発行して初期ロードExtractを作成します。
ADD EXTRACTinitial-load_Extract, SOURCEISTABLE説明:
-
initial-load_Extractは、8文字以内の初期ロードExtractの名前です。 -
SOURCEISTABLEでは、ソース表から完全なレコードを直接読み取る初期ロード・プロセスとしてExtractを指定します。その他のADD EXTRACTサービス・オプションまたはデータソース引数を使用しないでください。
-
- ソース・システムで、次のコマンドを発行して初期ロードExtractのパラメータ・ファイルを作成します。
EDIT PARAMSinitial-load_Extract - 表7-4にリストされている順序でパラメータを入力します。パラメータ文ごとに新規行を開始します。SQL*Loaderへのダイレクト・バルク・ロード用の初期ロードExtractパラメータ・ファイルの例を次に示します。
EXTRACT initext SOURCEDB mydb, USERIDALIAS ogg RMTHOSTOPTIONS ny4387, MGRPORT 7888, ENCRYPT AES 192 KEYNAME mykey RMTTASK REPLICAT, GROUP initrep TABLE hr.*; TABLE sales.*;
表7-4 SQL*Loaderへのダイレクト・バルク・ロードのための初期ロードExtractのパラメータ
パラメータ 説明 EXTRACTinitial-load_Extract初期ロードExtractを指定します。
[, USERIDALIAS
alias, options| , USERIDuser,options]データベース接続情報を指定します。
USERIDとUSERIDALIASで、必要に応じてデータベース資格証明を指定します。RMTHOSTOPTIONS hostname, MGRPORT portnumber [, ENCRYPT algorithm KEYNAME keyname]
ターゲット・システム、Managerが稼働しているポート、およびTCP/IP経由でのデータ暗号化(オプション)を指定します。
RMTTASK replicat, GROUPinitial-load_Replicat-
initial-load_Replicatは、初期ロードReplicatグループの名前です。
ターゲット・システムのManagerに、初期ロードReplicatを1回かぎりのタスクとして動的に起動するように指示します。
TABLE [
container.]owner.object;オブジェクトの完全修飾名(複数オブジェクトの場合は完全修飾ワイルドカード表記)を指定します。データベースがOracleマルチテナント・コンテナ・データベースの場合は、
SOURCECATALOGが使用されていないかぎり、オブジェクト名にコンテナの名前を含める必要があります。パラメータ・ファイル内のオブジェクト名指定のガイドラインは、「Oracle GoldenGateの入力におけるオブジェクト名の指定」を参照してください。CATALOGEXCLUDESCHEMAEXCLUDETABLEEXCLUDEEXCLUDEWILDCARDOBJECTSONLY関連付けられた
TABLE文のワイルドカード表記から特定のオブジェクトを除外するために、互いに組み合せて使用できるパラメータ。詳細は、『Oracle GoldenGateリファレンス』を参照してください。 -
- 適切なオプション・パラメータを入力します。
- ファイルを保存して閉じます。
- ターゲット・システムで、次のコマンドを発行して初期ロードReplicatを作成します。
ADD REPLICATinitial-load_Replicat, SPECIALRUN説明:
-
initial-load_Replicatは、初期ロードReplicatタスクの名前です。 -
SPECIALRUNでは、初期ロードReplicatを、継続的プロセスではなく、ワンタイム・タスクとして識別します。
-
- ターゲット・システムで、次のコマンドを発行して初期ロードReplicatのパラメータ・ファイルを作成します。
EDIT PARAMSinitial-load_Replicat - 表7-5にリストされている順序でパラメータを入力します。パラメータ文ごとに新規行を開始します。SQL*Loaderへのダイレクト・ロード用の初期ロードReplicatパラメータ・ファイルの例を次に示します。
REPLICAT initrep USERIDALIAS ogg BULKLOAD SOURCEDEFS /ggs/dirdef/source_defs MAP hr.*, TARGET hr.*; MAP sales.*, TARGET hr.*;
表7-5 SQL*Loaderへのダイレクト・ロードのための初期ロードReplicatのパラメータ
パラメータ 説明 REPLICATinitial-load_ReplicatManagerで起動する初期ロードReplicatタスクを指定します。初期ロードReplicatを作成したときに指定した名前を使用します。
[TARGETDB
container] [, USERIDALIASalias, options| , USERIDuser,options]データベース接続情報を指定します。
TARGETDBはターゲットOracleコンテナを指定します。詳細は、『Oracle GoldenGateリファレンス』を参照してください。USERIDとUSERIDALIASで、必要に応じてデータベース資格証明を指定します。BULKLOAD
Oracle SQL*Loaderインタフェースと直接対話するようReplicatに指示します。詳細は、『Oracle GoldenGateリファレンス』を参照してください。
{SOURCEDEFSfull_pathname} | ASSUMETARGETDEFS-
SOURCEDEFSは、ソース表とターゲット表に異なる定義が含まれる場合に使用します。DEFGENによって生成されたソース定義ファイルを指定します。 -
ASSUMETARGETDEFSは、ソース表とターゲット表に同じ定義が含まれる場合に使用します。
データ定義の解釈方法を指定します。
SOURCECATALOG以降の
MAP文に対して、デフォルトのソースOracleコンテナを指定します。3つの部分からなる名前が必要とされる場合に、2つの部分からなる名前(schema.object)を使用できるようにします。このパラメータのインスタンスを複数使用すると、MAPのパラメータの異なる組合せに対して、異なるデフォルト・コンテナを指定できます。MAP [
container.]owner.object, TARGETowner.object[, DEFtemplate] ;単一または複数のソース・オブジェクトと、単一または複数のターゲット・オブジェクトの関係を指定します。
MAPにはソース・オブジェクトを指定し、TARGETにはターゲット・オブジェクトを指定します。ソース・オブジェクトに対して、オブジェクトの完全修飾名(複数オブジェクトの場合は完全修飾ワイルドカード表記)を指定します。Oracleマルチテナント・コンテナ・データベースの場合は、
SOURCECATALOGが使用されていないかぎり、ソース・オブジェクト名にコンテナの名前を含める必要があります。ターゲット・オブジェクトに対しては、データベースに関係なく、名前の
owner.objectコンポーネントだけを指定します。Replicatは、1つのOracleコンテナにのみ接続できます。データのロード先の各コンテナごとに、別々のReplicatプロセスを使用してください。パラメータ・ファイル内のオブジェクト名指定のガイドラインは、「Oracle GoldenGateの入力におけるオブジェクト名の指定」を参照してください。
DEFオプションは、定義テンプレートを指定します。CATALOGEXCLUDESCHEMAEXCLUDEMAPEXCLUDEEXCLUDEWILDCARDOBJECTSONLY関連付けられた
MAP文のワイルドカード表記から特定のソース・オブジェクトを除外するために、互いに組み合せて使用できるパラメータ。詳細は、『Oracle GoldenGateリファレンス』を参照してください。 -
- 『Oracle GoldenGateリファレンス』にリストされているReplicatの適切なオプション・パラメータを入力します。
- パラメータ・ファイルを保存して閉じます。
- ソース・システムで、変更の抽出を開始します。
START EXTRACTgroup - Replicatのパラメータ・ファイルを表示して、
HANDLECOLLISIONSパラメータがリストされていることを確認します。リストされていない場合は、このパラメータをファイルに追加します。 - (Oracleで順序をレプリケートする場合)
update.Sequenceに対するEXECUTE権限を持つユーザーとしてDBLOGINコマンドを発行します。GGSCI> DBLOGIN USERID DBLOGINuser, PASSWORD
password[encryption_options] - (Oracleで順序をレプリケートする場合)次のコマンドを発行して各ソース順序を更新し、REDOを生成します。このREDOから、Replicatがターゲット上の順序の初期同期を実行します。順序(所有者ではない)の名前は、任意の文字またはすべて文字をアスタリスク・ワイルドカードで表すことができます。
FLUSH SEQUENCE
owner.sequence - ソース・システムで、初期ロードExtractを起動します。
START EXTRACTinitial-load_Extract注意:
初期ロードReplicatは起動しないでください。Managerプロセスで自動的に起動し、ロードの完了時に終了します。
- ターゲット・システムで、次のコマンドを発行してロードが終了したことを確認します。ロードが終了するまで待機してから、次のステップに進みます。
VIEW REPORTinitial-load_Extract - ターゲット・システムで、変更のレプリケーションを開始します。
START REPLICATgroup - ターゲット・システムで、次のコマンドを発行して変更のレプリケーションのステータスを確認します。
INFO REPLICATgroup - 初期ロード中に生成されたすべての変更データがReplicatにより適用されたことを確認するまで、
INFO REPLICATコマンドを発行し続けます。たとえば、初期ロードExtractが12:05に停止した場合、Replicatによってその時刻までデータが適用されていることを確認します。 - ターゲット・システムで、次のコマンドを発行して
HANDLECOLLISIONSパラメータをオフにし、初期ロードのエラー処理を無効化します。SEND REPLICATgroup, NOHANDLECOLLISIONS - ターゲット・システムで、Replicatのパラメータ・ファイルを編集して
HANDLECOLLISIONSパラメータを削除します。これによって、次回Replicatが起動したときにHANDLECOLLISIONSが再度有効化されることを防止します。注意:
ローカル・オペレーティング・システムのものとは異なる文字セットを使用した既存のパラメータ・ファイル(
CHARSETオプションを使用して別の文字セットを指定したファイルなど)は、VIEW PARAMSコマンドまたはEDIT PARAMSコマンドを使用して表示や編集を行わないでください。そのようなパラメータ・ファイルはGGSCIの外部から表示してください。そうしないと、内容が破損する可能性があります。 - パラメータ・ファイルを保存して閉じます。
これ以降、Oracle GoldenGateでデータ変更の同期が続けられます。
