この章では、初期データ・ロードの実行によるレプリケーション環境のインスタンス化について説明します。
この章の内容は次のとおりです。
Oracle GoldenGateを使用して、次の処理を実行できます。
Oracle GoldenGateとの変更同期に備えて、初期同期の実行の一環としてデータベース表にデータをロードできます。
データベース・ユーティリティで実行される方法以外のすべての初期ロード方式では、Oracle GoldenGateのパラレル・プロセスを使用することで、大規模データベースをより高速にロードできます。パラレル処理を使用するには、次の手順を実行します。
この章の指示に従って、使用するパラレル・プロセスの各セットに対して初期ロードExtractおよび初期ロードReplicatを作成します。
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を、複数の初期ロード・プロセスと変更同期プロセスに使用できます。詳細は、第3章「Managerおよびネットワーク通信の構成」を参照してください。
データ定義ファイルは、ソース・データベースとターゲット・データベースに異なる定義が存在する場合に必要です。Oracle GoldenGateは、このファイルを使用して、データをターゲット・データベースで必要とされる形式に変換します。詳細は、第13章「メタデータへのレプリケートされたデータの関連付け」を参照してください。
初期ロード中のトランザクション変更の取得およびレプリケーションに備えるため、オンラインのExtractグループおよびReplicatグループを作成します。これらのグループは、ロード手順の実行中に起動できます。詳細は、第14章「オンライン変更同期の構成」を参照してください。
注意: 静止されたソース・データベースからロードを実行し、続けて継続的な変更同期を実行しない場合、これらのグループは省略できます。 |
初期ロードの指示で要求されるまで、ExtractグループまたはReplicatグループは起動しないでください。変更同期によって、ロードが適用されている間にトランザクション変更が追跡され、その後ターゲット表がそれらの変更に応じて調整されます。
注意: Extractが新しいOracle GoldenGate構成で初めて起動されたとき、開いているトランザクションはスキップされます。Extractの起動後に開始されたトランザクションのみキャプチャされます。 |
変更同期パラメータ・ファイルで使用するパラメータの一部は、初期ロードのExtractおよびReplicatパラメータ・ファイルにも必要です。これらのパラメータは、あるパラメータ・ファイルから別のパラメータ・ファイルにコピーできます。または、これらのパラメータを中央ファイルに格納し、各パラメータ・ファイルでOBEY
パラメータを使用して取得できます。別の方法として、共有パラメータ用のOracle GoldenGateマクロを作成し、そのマクロをMACRO
パラメータを使用して各パラメータ・ファイルからコールできます。
OBEYおよびマクロの使用方法の詳細は、第4章「Oracle GoldenGateプロセス・インタフェースのスタート・ガイド」
を参照してください。
データベース・コピー・ユーティリティを使用してターゲット・データを構築するには、データベース・ユーティリティでデータの静的コピーを作成および適用しながら、変更同期Extractグループを起動して進行中のデータ変更を抽出します。コピーが終了したら、変更同期Replicatグループを起動して、コピーの適用中に変更された行を再同期します。これ以降、ExtractとReplicatの両方が継続的に実行され、データ同期が維持されます。この方法では、初期ロード用の特別なExtractプロセスまたはReplicatプロセスを使用しません。
注意: この方法でロードされるオブジェクトとデータ型は、使用するデータベース用のOracle GoldenGateおよび使用するデータベース・ユーティリティでサポートされている必要があります。データベースに対してサポートされているアイテムについては、そのデータベースに対応するOracle GoldenGateのインストレーションおよび構成のドキュメントを参照してください。データベース・ユーティリティでサポートされているアイテムについては、そのデータベース・ベンダーのドキュメントを参照してください。 |
16.1.2項「初期ロードの前提条件」の要件を満たしていることを確認します。
ソース・システムとターゲット・システムで、GGSCIを実行してManagerプロセスを起動します。
START MANAGER
注意: Windowsクラスタでは、クラスタ・アドミニストレータでManagerリソースを起動します。 |
ソース・システムで、変更の抽出を開始します。
START EXTRACT group
説明:
group
は、Extractグループの名前です。
(Oracleで順序をレプリケートする場合)update.Sequence
に対するEXECUTE
権限を持つユーザーとしてDBLOGIN
コマンドを発行します。
GGSCI> DBLOGIN USERID DBLOGINuser, PASSWORD password [encryption_options]
(Oracleで順序をレプリケートする場合)次のコマンドを発行して各ソース順序を更新し、REDOを生成します。このREDOから、Replicatがターゲット上の順序の初期同期を実行します。順序(所有者ではない)の名前は、任意の文字またはすべて文字をアスタリスク・ワイルドカードで表すことができます。
FLUSH SEQUENCEowner
.sequence
ソース・システムで、コピーの作成を開始します。
コピーが終了するまで待機し、完了した時刻を記録します。
Replicatのパラメータ・ファイルを表示して、HANDLECOLLISIONS
パラメータがリストされていることを確認します。リストされていない場合は、このパラメータをファイルに追加します。
注意: ローカル・オペレーティング・システムのものとは異なるキャラクタ・セットを使用した既存のパラメータ・ファイル(CHARSET オプションを使用して別のキャラクタ・セットを指定したファイルなど)は、VIEW PARAMS コマンドまたはEDIT PARAMS コマンドを使用して表示や編集を行わないでください。そのようなパラメータ・ファイルはGGSCIの外部から表示してください。そうしないと、内容が破損する可能性があります。 |
ターゲット・システムで、変更のレプリケーションを開始します。
START REPLICAT group
説明:
group
は、Replicatグループの名前です。
ターゲット・システムで、次のコマンドを発行して変更のレプリケーションのステータスを確認します。
INFO REPLICAT group
初期ロード中に生成されたすべての変更データが変更のレプリケーションにより適用されたことを確認するまで、INFO REPLICAT
コマンドを発行し続けます。前に記録した完了時刻を参照してください。たとえば、コピーが12:05に停止した場合、変更のレプリケーションによってその時刻までデータが適用されていることを確認します。
ターゲット・システムで、次のコマンドを発行してHANDLECOLLISIONS
パラメータをオフにし、初期ロードのエラー処理を無効化します。
SEND REPLICAT group
, NOHANDLECOLLISIONS
ターゲット・システムで、Replicatのパラメータ・ファイルを編集してHANDLECOLLISIONS
パラメータを削除します。これによって、次回Replicatが起動したときにHANDLECOLLISIONS
が再度有効化されることを防止します。
注意: ローカル・オペレーティング・システムのものとは異なるキャラクタ・セットを使用した既存のパラメータ・ファイル(CHARSET オプションを使用して別のキャラクタ・セットを指定したファイルなど)は、VIEW PARAMS コマンドまたはEDIT PARAMS コマンドを使用して表示や編集を行わないでください。そのようなパラメータ・ファイルはGGSCIの外部から表示してください。そうしないと、内容が破損する可能性があります。 |
パラメータ・ファイルを保存して閉じます。
これ以降、Oracle GoldenGateでデータ変更の同期が続けられます。
この方法では、Oracle Data Pumpユーティリティを使用して、ターゲット・データを構築します。コピーをターゲットに適用した後、コピーが停止したSCNを記録します。続いて指定されたSCNでExtract、データ・ポンプおよびReplicatを開始します。コピーに含まれているトランザクションは、整合性違反によるコリジョンを回避するためにスキップされます。プロセスの開始地点から、Oracle GoldenGateはデータ同期を維持します。この方法では、初期ロードOracle GoldenGateプロセスは不要です。
Oracle Data Pumpでインスタンス化を実行するには、My Oracle Supportドキュメント1276058.1を参照してください。このドキュメントを入手するには、次のようにします。
http://support.oracle.comに移動します。
「Sign In」の下部から言語を選択し、Oracleシングル・サインオン(SSO)でログインします。
「Dashboard」で、見出し「Knowledge Base」を展開します。
「Enter search terms」の下の箇所で、ドキュメントID「1276058.1
」を貼り付けるか入力し、「Search」をクリックします。
検索結果で「Oracle GoldenGate Best Practices: Instantiation from an Oracle Source Database [Article ID 1276058.1]」を選択します。
「Attachments」の下のリンクをクリックして、記事を開きます。
Replicatを使用してターゲット・データを構築するには、初期ロードExtractを使用してソース表からソース・レコードを抽出し、それらのレコードを正規形式で抽出ファイルに書き込みます。初期ロードReplicatは、データベース・インタフェースを使用してこのファイルからデータをロードします。ロード中、変更同期グループは、増分変更を抽出してレプリケートします。その後、これらの変更は、ロードの結果に応じて調整されます。
ロード中、レコードは、1つずつターゲット・データベースに適用されるため、この方法は他の初期ロード方式と比較して非常に低速です。この方法では、ソース・システムとターゲット・システムのいずれかでデータ変換を実行できます。
ファイルからReplicatにデータをロードする手順
16.1.2項「初期ロードの前提条件」の要件を満たしていることを確認します。
ソース・システムとターゲット・システムで、GGSCIを実行してManagerを起動します。
START MANAGER
注意: Windowsクラスタでは、クラスタ・アドミニストレータでManagerリソースを起動します。 |
ソース・システムで、次のコマンドを発行して初期ロードExtractのパラメータ・ファイルを作成します。
EDIT PARAMS initial-load_Extract
表16-1にリストされている順序でパラメータを入力します。パラメータ文ごとに新規行を開始します。ファイルからReplicatにデータをロードするための初期ロードExtractパラメータ・ファイルの例を次に示します。
SOURCEISTABLE SOURCEDB mydb, USERIDALIAS ogg RMTHOSTOPTIONS ny4387, MGRPORT 7888, ENCRYPT AES 192 KEYNAME mykey ENCRYPTTRAIL AES192 RMTFILE /ggs/dirdat/initld, MEGABYTES 2, PURGE TABLE hr.*; TABLE sales.*;
パラメータ | 説明 |
---|---|
SOURCEISTABLE |
Extractをソース表からレコードを直接抽出する初期ロード・プロセスとして指定します。 |
[SOURCEDB |
データベース接続情報を指定します。
|
RMTHOSTOPTIONS |
ターゲット・システム、Managerが稼働しているポート、およびTCP/IP経由でのデータ暗号化(オプション)を指定します。 |
ENCRYPTTRAIL |
リモート・ファイルでデータを暗号化します。セキュリティ・オプションの詳細は、第11章「Oracle GoldenGateのセキュリティの構成」を参照してください。 |
RMTFILE
|
ロード・データを書き込む抽出ファイルを指定します。Oracle GoldenGateでは、ロード中にこのファイルが作成されます。チェックポイントは、 抽出ファイルのサイズを2GB以下にする必要があることに注意してください。 |
TABLE [ |
オブジェクトの完全修飾名(複数オブジェクトの場合は完全修飾ワイルドカード表記)を指定します。データベースがOracleマルチテナント・コンテナ・データベースまたはSQL/MXデータベースの場合は、 パラメータ・ファイル内のオブジェクト名指定のガイドラインは、4.5項「Oracle GoldenGateの入力におけるオブジェクト名の指定」を参照してください。 |
|
関連付けられた |
Oracle GoldenGateリファレンスfor Windows and UNIXにリストされているExtractの適切なオプション・パラメータを入力します。
パラメータ・ファイルを保存して閉じます。
ターゲット・システムで、次のコマンドを発行して初期ロードReplicatのパラメータ・ファイルを作成します。
EDIT PARAMS initial-load_Replicat
表16-2にリストされている順序でパラメータを入力します。パラメータ文ごとに新規行を開始します。ファイルからReplicatにデータをロードするための初期ロードReplicatパラメータ・ファイルの例を次に示します。
SPECIALRUN END RUNTIME TARGETDB mydb, USERIDALIAS ogg EXTFILE /ggs/dirdat/initld SOURCEDEFS /ggs/dirdef/source_defs MAP hr.*, TARGET hr.*; MAP sales.*, TARGET hr.*;
パラメータ | 説明 |
---|---|
SPECIALRUN |
初期ロードReplicatをチェックポイントを使用しない1回かぎりの実行として実装します。 |
END RUNTIME |
ロードの完了時に終了するように初期ロードReplicatに指示します。 |
[TARGETDB |
データベース接続情報を指定します。
|
EXTFILE
|
Extractパラメータの |
{SOURCEDEFS
|
データ定義の解釈方法を指定します。 データ定義ファイルの詳細は、第13章「メタデータへのレプリケートされたデータの関連付け」を参照してください。 |
|
以降の |
MAP [ |
単一または複数のソース・オブジェクトと、単一または複数のターゲット・オブジェクトの関係を指定します。 ソース・オブジェクトに対して、オブジェクトの完全修飾名(複数オブジェクトの場合は完全修飾ワイルドカード表記)を指定します。Oracleマルチテナント・コンテナ・データベースまたはSQL/MXデータベースの場合、 ターゲット・オブジェクトに対しては、データベースに関係なく、名前の パラメータ・ファイル内のオブジェクト名指定のガイドラインは、4.5項「Oracle GoldenGateの入力におけるオブジェクト名の指定」を参照してください。
|
|
関連付けられた |
Oracle GoldenGateリファレンスfor Windows and UNIXにリストされているReplicatの適切なオプション・パラメータを入力します。
ファイルを保存して閉じます。
Replicatのパラメータ・ファイルを表示して、HANDLECOLLISIONS
パラメータがリストされていることを確認します。リストされていない場合は、このパラメータをファイルに追加します。
ソース・システムで、変更の抽出を開始します。
START EXTRACT group
(Oracleで順序をレプリケートする場合)update.Sequence
に対するEXECUTE
権限を持つユーザーとしてDBLOGIN
コマンドを発行します。
GGSCI> DBLOGIN USERID DBLOGINuser, PASSWORDpassword
[encryption_options
]
(Oracleで順序をレプリケートする場合)次のコマンドを発行して各ソース順序を更新し、REDOを生成します。このREDOから、Replicatがターゲット上の順序の初期同期を実行します。順序(所有者ではない)の名前は、任意の文字またはすべて文字をアスタリスク・ワイルドカードで表すことができます。
FLUSH SEQUENCE owner.sequence
ソース・システムのOracle GoldenGateがインストールされているディレクトリから、初期ロードExtractを起動します。
UNIXおよびLinux:
$ /GGS directory
/extract paramfile dirprm/initial-load_Extract
.prm reportfilepath
Windows:
C:\>GGS directory
\extract paramfile dirprm\initial-load_Extract
.prm reportfilepath
説明:
initial-load_Extract
はパラメータ・ファイルの作成時に使用した初期ロードExtractの名前であり、path
はExtractレポート・ファイルの相対名または完全修飾名です。
オペレーティング・システムの標準的なファイル表示方法を使用してExtractレポート・ファイルを表示し、初期抽出の進行状況および結果を確認します。
初期抽出が終了するまで待機します。
ターゲット・システムで、初期ロードReplicatを起動します。
UNIXおよびLinux:
$ /GGS directory
/replicat paramfile dirprm/initial-load_Replicat
.prm reportfilepath
Windows:
C:\>GGS directory
\replicat paramfile dirprm\initial-load_Replicat
.prm reportfilepath
説明:
initial-load_Replicat
はパラメータ・ファイルの作成時に使用した初期ロードReplicatの名前であり、path
はReplicatレポート・ファイルの相対名または完全修飾名です。
初期ロードReplicatの実行が終了したら、オペレーティング・システムの標準的なファイル表示方法を使用してReplicatレポート・ファイルを表示し、結果を確認します。
ターゲット・システムで、変更のレプリケーションを開始します。
START REPLICAT group
ターゲット・システムで、次のコマンドを発行して変更のレプリケーションのステータスを確認します。
INFO REPLICAT group
初期ロード中に生成されたすべての変更データがReplicatにより適用されたことを確認するまで、INFO REPLICAT
コマンドを発行し続けます。たとえば、初期ロードExtractが12:05に停止した場合、Replicatによってその時刻までデータが適用されていることを確認します。
ターゲット・システムで、次のコマンドを発行してHANDLECOLLISIONS
パラメータをオフにし、初期ロードのエラー処理を無効化します。
SEND REPLICAT group
, NOHANDLECOLLISIONS
ターゲット・システムで、Replicatのパラメータ・ファイルを編集してHANDLECOLLISIONS
パラメータを削除します。これによって、次回Replicatが起動したときにHANDLECOLLISIONS
が再度有効化されることを防止します。
注意: ローカル・オペレーティング・システムのものとは異なるキャラクタ・セットを使用した既存のパラメータ・ファイル(CHARSET オプションを使用して別のキャラクタ・セットを指定したファイルなど)は、VIEW PARAMS コマンドまたはEDIT PARAMS コマンドを使用して表示や編集を行わないでください。そのようなパラメータ・ファイルはGGSCIの外部から表示してください。そうしないと、内容が破損する可能性があります。 |
パラメータ・ファイルを保存して閉じます。
これ以降、Oracle GoldenGateでデータ変更の同期が続けられます。
データベースのバルク・ロード・ユーティリティを使用するには、初期ロードExtractを使用してソース表からソース・レコードを抽出し、それらのレコードを外部ASCII形式で抽出ファイルに書き込みます。ファイルを読み取ることができるのは、Oracle SQL*Loader、Microsoft社のBCP、DTSまたはSQL Server Integration Services (SSIS)ユーティリティ、あるいはIBM社のロード・ユーティリティ(LOADUTIL
)です。
注意: この方法でロードされるオブジェクトとデータ型は、使用するデータベース用のOracle GoldenGateおよび使用するデータベース・ユーティリティでサポートされている必要があります。データベースに対してサポートされているアイテムについては、そのデータベースに対応するOracle GoldenGateのインストレーションおよび構成のドキュメントを参照してください。データベース・ユーティリティでサポートされているアイテムについては、そのデータベース・ベンダーのドキュメントを参照してください。 |
ロード中、変更同期グループは、増分変更を抽出してレプリケートします。その後、これらの変更は、ロードの結果に応じて調整されます。ロード処理の一環として、Oracle GoldenGateで初期ロードReplicatを使用して、データベース・ユーティリティに必要な実行ファイルと制御ファイルを作成します。
制御ファイルは動的に生成され、変換ルールで事前構成できないため、すべてのデータ変換はソース・システムで初期ロードExtractによって実行される必要があります。
ファイルからデータベース・ユーティリティにデータをロードする手順
「初期ロードの前提条件」を満たしていることを確認します。
ソース・システムとターゲット・システムで、GGSCIを実行してManagerを起動します。
START MANAGER
ソース・システムで、次のコマンドを発行して初期ロードExtractのパラメータ・ファイルを作成します。
EDIT PARAMS initial-load_Extract
表16-3にリストされている順序でパラメータを入力します。パラメータ文ごとに新規行を開始します。ファイルからデータベース・ユーティリティにデータをロードするための初期ロードExtractパラメータ・ファイルの例を次に示します。
SOURCEISTABLE SOURCEDB mydb, USERIDALIAS ogg RMTHOSTOPTIONS ny4387, MGRPORT 7888, ENCRYPT AES 192 KEYNAME mykey ENCRYPTTRAIL AES192 FORMATASCII, SQLLOADER RMTFILE /ggs/dirdat/initld, MEGABYTES 2, PURGE TABLE hr.*; TABLE sales.*;
パラメータ | 説明 |
---|---|
SOURCEISTABLE |
Extractを、ソース表から直接レコードを抽出する初期ロード・プロセスとして指定します。 |
[SOURCEDB |
データベース接続情報を指定します。
|
RMTHOSTOPTIONS
|
ターゲット・システム、Managerが稼働しているポート、およびTCP/IP経由でのデータ暗号化(オプション)を指定します。
|
ENCRYPTTRAIL |
リモート・ファイルでデータを暗号化します。セキュリティ・オプションの詳細は、第11章「Oracle GoldenGateのセキュリティの構成」を参照してください。 |
FORMATASCII, {BCP | SQLLOADER}
|
出力をデフォルトの正規形式ではなくASCIIテキストとしてフォーマットするように指定します。このパラメータは、 |
RMTFILE
|
ロード・データを書き込む抽出ファイルを指定します。Oracle GoldenGateでは、ロード中にこのファイルが作成されます。チェックポイントは、 |
TABLE [ |
オブジェクトの完全修飾名(複数オブジェクトの場合は完全修飾ワイルドカード表記)を指定します。データベースがOracleマルチテナント・コンテナ・データベースの場合は、 |
|
関連付けられた |
Oracle GoldenGateリファレンスfor Windows and UNIXにリストされているExtractの適切なオプション・パラメータを入力します。
パラメータ・ファイルを保存して閉じます。
ターゲット・システムで、次のコマンドを発行して初期ロードReplicatのパラメータ・ファイルを作成します。
EDIT PARAMS initial-load_Replicat
表16-4にリストされている順序でパラメータを入力します。パラメータ文ごとに新規行を開始します。ファイルからデータベース・ユーティリティにデータをロードするための初期ロードReplicatパラメータ・ファイルの例を次に示します。
GENLOADFILES sqlldr.tpl USERIDALIAS ogg EXTFILE /ggs/dirdat/initld SOURCEDEFS /ggs/dirdef/source_defs MAP hr.*, TARGET hr.*; MAP sales.*, TARGET hr.*;
パラメータ | 説明 |
---|---|
GENLOADFILES |
データベース・ユーティリティの実行ファイルと制御ファイルを生成します。このパラメータの使用方法の詳細は、Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。 |
[TARGETDB |
データベース接続情報を指定します。
|
EXTFILE
|
Extractパラメータの |
{SOURCEDEFS
|
データ定義の解釈方法を指定します。データ定義ファイルの詳細は、第13章「メタデータへのレプリケートされたデータの関連付け」を参照してください。 |
|
以降の |
MAP [ |
単一または複数のソース・オブジェクトと、単一または複数のターゲット・オブジェクトの関係を指定します。 ソース・オブジェクトに対して、オブジェクトの完全修飾名(複数オブジェクトの場合は完全修飾ワイルドカード表記)を指定します。Oracleマルチテナント・コンテナ・データベースの場合は、 ターゲット・オブジェクトに対しては、データベースに関係なく、名前の パラメータ・ファイル内のオブジェクト名指定のガイドラインは、4.5項「Oracle GoldenGateの入力におけるオブジェクト名の指定」を参照してください。
|
|
関連付けられた |
Oracle GoldenGateリファレンスfor Windows and UNIXにリストされているReplicatの適切なオプション・パラメータを入力します。
パラメータ・ファイルを保存して閉じます。
Replicatのパラメータ・ファイルを表示して、HANDLECOLLISIONS
パラメータがリストされていることを確認します。リストされていない場合は、このパラメータをファイルに追加します。
ソース・システムで、変更の抽出を開始します。
START EXTRACT group
(Oracleで順序をレプリケートする場合)update.Sequence
に対するEXECUTE
権限を持つユーザーとしてDBLOGIN
コマンドを発行します。
GGSCI> DBLOGIN USERID DBLOGINuser, PASSWORDpassword
[encryption_options
]
(Oracleで順序をレプリケートする場合)次のコマンドを発行して各ソース順序を更新し、REDOを生成します。このREDOから、Replicatがターゲット上の順序の初期同期を実行します。順序(所有者ではない)の名前は、任意の文字またはすべて文字をアスタリスク・ワイルドカードで表すことができます。
FLUSH SEQUENCEowner
.sequence
ソース・システムのOracle GoldenGateがインストールされているディレクトリから、初期ロードExtractを起動します。
UNIXおよびLinux:
$ /GGS directory
/extract paramfile dirprm/initial-load_Extract
.prm reportfilepath
Windows:
C:\>GGS directory
\extract paramfile dirprm\initial-load_Extract
.prm reportfilepath
説明:
initial-load_Extract
はパラメータ・ファイルの作成時に使用した初期ロードExtractの名前であり、path
はExtractレポート・ファイルの相対名または完全修飾名です。
オペレーティング・システムの標準的なファイル表示方法を使用してExtractレポート・ファイルを表示し、初期抽出の進行状況および結果を確認します。
初期抽出が終了するまで待機します。
ターゲット・システムで、初期ロードReplicatを起動します。
UNIXおよびLinux:
$ /GGS directory
/replicat paramfile dirprm/initial-load_Replicat
.prm reportfilepath
Windows:
C:\>GGS directory
\replicat paramfile dirprm\initial-load_Replicat
.prm reportfilepath
説明:
initial-load_Replicat
はパラメータ・ファイルの作成時に使用した初期ロードReplicatの名前であり、path
はReplicatレポート・ファイルの相対名または完全修飾名です。
初期ロードReplicatの実行が終了したら、オペレーティング・システムの標準的なファイル表示方法を使用してReplicatレポート・ファイルを表示し、結果を確認します。
ASCII形式の抽出ファイルと、初期ロードReplicatによって作成された実行ファイルおよび制御ファイルを使用して、データベース・ユーティリティでデータをロードします。
ターゲット表へのロードが完了するまで待機します。
ターゲット・システムで、変更のレプリケーションを開始します。
START REPLICAT group
ターゲット・システムで、次のコマンドを発行して変更のレプリケーションのステータスを確認します。
INFO REPLICAT group
初期ロード中に生成されたすべての変更データがReplicatにより適用されたことを確認するまで、INFO REPLICAT
コマンドを発行し続けます。たとえば、初期ロードExtractが12:05に停止した場合、Replicatによってその時刻までデータが適用されていることを確認します。
ターゲット・システムで、次のコマンドを発行してHANDLECOLLISIONS
パラメータをオフにし、初期ロードのエラー処理を無効化します。
SEND REPLICAT group
, NOHANDLECOLLISIONS
ターゲット・システムで、Replicatのパラメータ・ファイルを編集してHANDLECOLLISIONS
パラメータを削除します。これによって、次回Replicatが起動したときにHANDLECOLLISIONS
が再度有効化されることを防止します。
注意: ローカル・オペレーティング・システムのものとは異なるキャラクタ・セットを使用した既存のパラメータ・ファイル(CHARSET オプションを使用して別のキャラクタ・セットを指定したファイルなど)は、VIEW PARAMS コマンドまたはEDIT PARAMS コマンドを使用して表示や編集を行わないでください。そのようなパラメータ・ファイルはGGSCIの外部から表示してください。そうしないと、内容が破損する可能性があります。 |
パラメータ・ファイルを保存して閉じます。
これ以降、Oracle GoldenGateでデータ変更の同期が続けられます。
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ダイレクト・ロードを使用してデータをロードする手順
「初期ロードの前提条件」を満たしていることを確認します。
ソース・システムとターゲット・システムで、GGSCIを実行してManagerを起動します。
START MANAGER
注意: Windowsクラスタでは、クラスタ・アドミニストレータでManagerリソースを起動します。 |
ソースで、次のコマンドを発行して初期ロードExtractを作成します。
ADD EXTRACT initial-load_Extract
, SOURCEISTABLE
説明:
initial-load_Extract
は、8文字以内の初期ロードExtractの名前です。
SOURCEISTABLE
では、ソース表から完全なレコードを直接読み取る初期ロード・プロセスとしてExtractを指定します。その他のADD EXTRACT
サービス・オプションまたはデータソース引数を使用しないでください。
ソース・システムで、次のコマンドを発行して初期ロードExtractのパラメータ・ファイルを作成します。
EDIT PARAMS initial-load_Extract
表16-5にリストされている順序でパラメータを入力します。パラメータ文ごとに新規行を開始します。Oracle GoldenGateダイレクト・ロード用の初期ロードExtractパラメータ・ファイルの例を次に示します。
EXTRACT initext SOURCEDB mydb, USERIDALIAS ogg RMTHOSTOPTIONS ny4387, MGRPORT 7888, ENCRYPT AES 192 KEYNAME mykey RMTTASK REPLICAT, GROUP initrep TABLE hr.*; TABLE sales.*;
表16-5 Oracle GoldenGateダイレクト・ロードのための初期ロードExtractのパラメータ
パラメータ | 説明 |
---|---|
EXTRACT |
初期ロードExtractを指定します。 |
[SOURCEDB |
データベース接続情報を指定します。
|
RMTHOSTOPTIONS |
ターゲット・システム、Managerが稼働しているポート、およびTCP/IP経由でのデータ暗号化(オプション)を指定します。 |
RMTTASK replicat,
GROUP
|
ターゲット・システムのManagerに、初期ロードReplicatを1回かぎりのタスクとして動的に起動するように指示します。 |
TABLE [ |
オブジェクトの完全修飾名(複数オブジェクトの場合は完全修飾ワイルドカード表記)を指定します。データベースがOracleマルチテナント・データベースまたはSQL/MXデータベースの場合は、 |
|
関連付けられた |
Oracle GoldenGateリファレンスfor Windows and UNIXにリストされているExtractの適切なオプション・パラメータを入力します。
ファイルを保存して閉じます。
ターゲット・システムで、次のコマンドを発行して初期ロードReplicatタスクを作成します。
ADD REPLICAT initial-load_Replicat
, SPECIALRUN
説明:
initial-load_Replicat
は、初期ロードReplicatタスクの名前です。
SPECIALRUN
では、初期ロードReplicatを継続的なプロセスではなく1回かぎりの実行として指定します。
ターゲット・システムで、次のコマンドを発行して初期ロードReplicatのパラメータ・ファイルを作成します。
EDIT PARAMS initial-load_Replicat
表16-6にリストされている順序でパラメータを入力します。パラメータ文ごとに新規行を開始します。Oracle GoldenGateダイレクト・ロード用の初期ロードReplicatパラメータ・ファイルの例を次に示します。
REPLICAT initrep TARGETDB mydb, USERIDALIAS ogg SOURCEDEFS /ggs/dirdef/source_defs MAP hr.*, TARGET hr.*; MAP sales.*, TARGET hr.*;
表16-6 Oracle GoldenGateダイレクト・ロードのための初期ロードReplicatのパラメータ
パラメータ | 説明 |
---|---|
REPLICAT |
Managerで起動する初期ロードReplicatタスクを指定します。初期ロードReplicatを作成したときに指定した名前を使用します。 |
[TARGETDB |
データベース接続情報を指定します。
|
{SOURCEDEFS
|
データ定義の解釈方法を指定します。データ定義ファイルの詳細は、第13章「メタデータへのレプリケートされたデータの関連付け」を参照してください。 |
|
以降の |
MAP [ |
単一または複数のソース・オブジェクトと、単一または複数のターゲット・オブジェクトの関係を指定します。 ソース・オブジェクトに対して、オブジェクトの完全修飾名(複数オブジェクトの場合は完全修飾ワイルドカード表記)を指定します。Oracleマルチテナント・コンテナ・データベースまたはSQL/MXデータベースの場合、 ターゲット・オブジェクトに対しては、データベースに関係なく、名前の パラメータ・ファイル内のオブジェクト名指定のガイドラインは、4.5項「Oracle GoldenGateの入力におけるオブジェクト名の指定」を参照してください。
|
|
関連付けられた |
Oracle GoldenGateリファレンスfor Windows and UNIXにリストされているReplicatの適切なオプション・パラメータを入力します。
パラメータ・ファイルを保存して閉じます。
ソース・システムで、変更の抽出を開始します。
START EXTRACT group
Replicatのパラメータ・ファイルを表示して、HANDLECOLLISIONS
パラメータがリストされていることを確認します。リストされていない場合は、このパラメータをファイルに追加します。
(Oracleで順序をレプリケートする場合)update.Sequence
に対するEXECUTE
権限を持つユーザーとしてDBLOGIN
コマンドを発行します。
GGSCI> DBLOGIN USERID DBLOGINuser, PASSWORDpassword
[encryption_options
]
(Oracleで順序をレプリケートする場合)次のコマンドを発行して各ソース順序を更新し、REDOを生成します。このREDOから、Replicatがターゲット上の順序の初期同期を実行します。順序(所有者ではない)の名前は、任意の文字またはすべて文字をアスタリスク・ワイルドカードで表すことができます。
FLUSH SEQUENCEowner
.sequence
ソース・システムで、初期ロードExtractを起動します。
START EXTRACT initial-load_Extract
注意: 初期ロードReplicatは起動しないでください。Managerプロセスで自動的に起動し、ロードの完了時に終了します。 |
ターゲット・システムで、次のコマンドを発行してロードが終了したかどうかを確認します。ロードが終了するまで待機してから、次の手順に進みます。
VIEW REPORT initial-load_Replicat
ターゲット・システムで、変更のレプリケーションを開始します。
START REPLICAT group
ターゲット・システムで、次のコマンドを発行して変更のレプリケーションのステータスを確認します。
INFO REPLICAT group
初期ロード中に生成されたすべての変更データがReplicatにより適用されたことを確認するまで、INFO REPLICAT
コマンドを発行し続けます。たとえば、初期ロードExtractが12:05に停止した場合、Replicatによってその時刻までデータが適用されていることを確認します。
ターゲット・システムで、次のコマンドを発行してHANDLECOLLISIONS
パラメータをオフにし、初期ロードのエラー処理を無効化します。
SEND REPLICAT group
, NOHANDLECOLLISIONS
ターゲット・システムで、Replicatのパラメータ・ファイルを編集してHANDLECOLLISIONS
パラメータを削除します。これによって、次回Replicatが起動したときにHANDLECOLLISIONS
が再度有効化されることを防止します。
注意: ローカル・オペレーティング・システムのものとは異なるキャラクタ・セットを使用した既存のパラメータ・ファイル(CHARSET オプションを使用して別のキャラクタ・セットを指定したファイルなど)は、VIEW PARAMS コマンドまたはEDIT PARAMS コマンドを使用して表示や編集を行わないでください。そのようなパラメータ・ファイルはGGSCIの外部から表示してください。そうしないと、内容が破損する可能性があります。 |
パラメータ・ファイルを保存して閉じます。これ以降、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にデータをロードする手順
「初期ロードの前提条件」の要件を満たしていることを確認します。
LOCK ANY TABLE
をターゲットOracleデータベースのReplicatデータベース・ユーザーに付与します。
ソース・システムとターゲット・システムで、GGSCIを実行してManagerを起動します。
START MANAGER
ソース・システムで、次のコマンドを発行して初期ロードExtractを作成します。
ADD EXTRACT initial-load_Extract
, SOURCEISTABLE
説明:
initial-load_Extract
は、8文字以内の初期ロードExtractの名前です。
SOURCEISTABLE
では、ソース表から完全なレコードを直接読み取る初期ロード・プロセスとしてExtractを指定します。その他のADD EXTRACT
サービス・オプションまたはデータソース引数を使用しないでください。
ソース・システムで、次のコマンドを発行して初期ロードExtractのパラメータ・ファイルを作成します。
EDIT PARAMS initial-load_Extract
表16-7にリストされている順序でパラメータを入力します。パラメータ文ごとに新規行を開始します。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.*;
表16-7 SQL*Loaderへのダイレクト・バルク・ロードのための初期ロードExtractのパラメータ
パラメータ | 説明 |
---|---|
EXTRACT |
初期ロードExtractを指定します。 |
[, USERIDALIAS |
データベース接続情報を指定します。
|
RMTHOSTOPTIONS hostname, MGRPORT portnumber [, ENCRYPT algorithm KEYNAME keyname] |
ターゲット・システム、Managerが稼働しているポート、およびTCP/IP経由でのデータ暗号化(オプション)を指定します。 |
RMTTASK replicat,
GROUP
|
ターゲット・システムのManagerに、初期ロードReplicatを1回かぎりのタスクとして動的に起動するように指示します。 |
TABLE [ |
オブジェクトの完全修飾名(複数オブジェクトの場合は完全修飾ワイルドカード表記)を指定します。データベースがOracleマルチテナント・コンテナ・データベースの場合は、 |
|
関連付けられた |
適切なオプション・パラメータを入力します。
ファイルを保存して閉じます。
ターゲット・システムで、次のコマンドを発行して初期ロードReplicatを作成します。
ADD REPLICAT initial-load_Replicat
, SPECIALRUN
説明:
initial-load_Replicat
は、初期ロードReplicatタスクの名前です。
SPECIALRUN
では、初期ロードReplicatを、継続的プロセスではなく、ワンタイム・タスクとして識別します。
ターゲット・システムで、次のコマンドを発行して初期ロードReplicatのパラメータ・ファイルを作成します。
EDIT PARAMS initial-load_Replicat
表16-8にリストされている順序でパラメータを入力します。パラメータ文ごとに新規行を開始します。SQL*Loaderへのダイレクト・ロード用の初期ロードReplicatパラメータ・ファイルの例を次に示します。
REPLICAT initrep USERIDALIAS ogg BULKLOAD SOURCEDEFS /ggs/dirdef/source_defs MAP hr.*, TARGET hr.*; MAP sales.*, TARGET hr.*;
表16-8 SQL*Loaderへのダイレクト・ロードのための初期ロードReplicatのパラメータ
パラメータ | 説明 |
---|---|
REPLICAT |
Managerで起動する初期ロードReplicatタスクを指定します。初期ロードReplicatを作成したときに指定した名前を使用します。 |
[TARGETDB |
データベース接続情報を指定します。
|
BULKLOAD |
Oracle SQL*Loaderインタフェースと直接対話するようReplicatに指示します。詳細は、Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。 |
{SOURCEDEFS
|
データ定義の解釈方法を指定します。データ定義ファイルの詳細は、第13章「メタデータへのレプリケートされたデータの関連付け」を参照してください。 |
|
以降の |
MAP [ |
単一または複数のソース・オブジェクトと、単一または複数のターゲット・オブジェクトの関係を指定します。 ソース・オブジェクトに対して、オブジェクトの完全修飾名(複数オブジェクトの場合は完全修飾ワイルドカード表記)を指定します。Oracleマルチテナント・コンテナ・データベースの場合は、 ターゲット・オブジェクトに対しては、データベースに関係なく、名前の パラメータ・ファイル内のオブジェクト名指定のガイドラインは、4.5項「Oracle GoldenGateの入力におけるオブジェクト名の指定」を参照してください。
|
|
関連付けられた |
Oracle GoldenGateリファレンスfor Windows and UNIXにリストされているReplicatの適切なオプション・パラメータを入力します。
パラメータ・ファイルを保存して閉じます。
ソース・システムで、変更の抽出を開始します。
START EXTRACT group
Replicatのパラメータ・ファイルを表示して、HANDLECOLLISIONS
パラメータがリストされていることを確認します。リストされていない場合は、このパラメータをファイルに追加します。
(Oracleで順序をレプリケートする場合)update.Sequence
に対するEXECUTE
権限を持つユーザーとしてDBLOGIN
コマンドを発行します。
GGSCI> DBLOGIN USERID DBLOGINuser, PASSWORDpassword
[encryption_options
]
(Oracleで順序をレプリケートする場合)次のコマンドを発行して各ソース順序を更新し、REDOを生成します。このREDOから、Replicatがターゲット上の順序の初期同期を実行します。順序(所有者ではない)の名前は、任意の文字またはすべて文字をアスタリスク・ワイルドカードで表すことができます。
FLUSH SEQUENCEowner
.sequence
ソース・システムで、初期ロードExtractを起動します。
START EXTRACT initial-load_Extract
注意: 初期ロードReplicatは起動しないでください。Managerプロセスで自動的に起動し、ロードの完了時に終了します。 |
ターゲット・システムで、次のコマンドを発行してロードが終了したことを確認します。ロードが終了するまで待機してから、次の手順に進みます。
VIEW REPORT initial-load_Extract
ターゲット・システムで、変更のレプリケーションを開始します。
START REPLICAT group
ターゲット・システムで、次のコマンドを発行して変更のレプリケーションのステータスを確認します。
INFO REPLICAT group
初期ロード中に生成されたすべての変更データがReplicatにより適用されたことを確認するまで、INFO REPLICAT
コマンドを発行し続けます。たとえば、初期ロードExtractが12:05に停止した場合、Replicatによってその時刻までデータが適用されていることを確認します。
ターゲット・システムで、次のコマンドを発行してHANDLECOLLISIONS
パラメータをオフにし、初期ロードのエラー処理を無効化します。
SEND REPLICAT group
, NOHANDLECOLLISIONS
ターゲット・システムで、Replicatのパラメータ・ファイルを編集してHANDLECOLLISIONS
パラメータを削除します。これによって、次回Replicatが起動したときにHANDLECOLLISIONS
が再度有効化されることを防止します。
注意: ローカル・オペレーティング・システムのものとは異なるキャラクタ・セットを使用した既存のパラメータ・ファイル(CHARSET オプションを使用して別のキャラクタ・セットを指定したファイルなど)は、VIEW PARAMS コマンドまたはEDIT PARAMS コマンドを使用して表示や編集を行わないでください。そのようなパラメータ・ファイルはGGSCIの外部から表示してください。そうしないと、内容が破損する可能性があります。 |
パラメータ・ファイルを保存して閉じます。
これ以降、Oracle GoldenGateでデータ変更の同期が続けられます。
2つのTeradataデータベースを同期する場合に推奨される方法は、任意のTeradataデータ・ロード・ユーティリティを使用することです。推奨ユーティリティは、MultiLoadです。
この手順では、ExtractおよびReplicatの変更同期グループが使用できる状態で、Teradataレプリケーション用に適切に構成されている必要があります。詳細は、第14章「オンライン変更同期の構成」を参照してください。
複数のExtractグループおよびReplicatグループを使用する場合、すべてのグループで必要に応じて各手順を実行してください。
Teradataロード・ユーティリティを使用してデータをロードする手順
ユーティリティで必要とされるスクリプトを作成します。
プライマリExtractグループを起動します。
START EXTRACT group
データ・ポンプを起動します(使用する場合)。
START EXTRACT data_pump
Replicatのパラメータ・ファイルを編集のために開きます。
注意: ローカル・オペレーティング・システムのものとは異なるキャラクタ・セットを使用した既存のパラメータ・ファイル(CHARSET オプションを使用して別のキャラクタ・セットを指定したファイルなど)は、VIEW PARAMS コマンドまたはEDIT PARAMS コマンドを使用して表示や編集を行わないでください。そのようなパラメータ・ファイルはGGSCIの外部から表示してください。そうしないと、内容が破損する可能性があります。 |
Replicatのパラメータ・ファイルに次のパラメータを追加します。
END RUNTIME HANDLECOLLISIONS
END RUNTIME
では、Replicatに対し、Replicatの起動時以降のタイムスタンプを持つOracle GoldenGateの証跡レコードを読み取った時点で正常に終了するように指示します。
HANDLECOLLISIONS
では、Replicatに対し、トランザクション変更とコピー結果のコリジョンによって発生するエラーを解決する手段として、重複レコードを上書きし、欠落レコードを無視するように指示します。
Replicatのパラメータ・ファイルを保存して閉じます。
ロード・ユーティリティを起動します。
ターゲットでロードが完了したら、Replicatプロセスを起動します。
各Replicatプロセスが停止したら、パラメータ・ファイルからHANDLECOLLISIONS
パラメータとEND RUNTIME
パラメータを削除します。
Replicatプロセスを再起動します。これで2つのデータベースは同期し、Oracle GoldenGateのレプリケーションを通じて最新状態に維持されます。