ソースとターゲットの間の表属性の調整
Oracle GoldenGate DDL機能がデータベースでサポートされていない場合に、ソース表の属性を変更するには、この手順に従います。属性の変更には、列またはパーティションの追加または変更が含まれます。ここでは、レプリケーション・レイテンシを発生させずにターゲット表に同じ変更を加える方法を示します。
ノート: OracleおよびMySQLのデータベースの場合、この手順を使用するかわりに、Oracle GoldenGateのDDLサポート機能を有効化してDDLの変更をターゲットへ伝播できます。
- ソース・システムとターゲット・システム上で、トランザクション・ログ内の停止ポイントを示すマーカーを生成するための表(マーカー表)。単純な列を2つ作成します(一方は主キー、もう一方は通常の列です)。たとえば:
CREATE TABLE marker
(
id int NOT NULL,
column varchar(25) NOT NULL,
PRIMARY KEY (id)
);
- ソース・システムとターゲット・システムの両方で、マーカー表に行を挿入します。
INSERT INTO marker VALUES (1, 1);
COMMIT;
-
ソース・システムで、管理クライアントを実行します。
-
Extractのパラメータ・ファイルを編集のために開きます。
注意:ローカル・オペレーティング・システムのものとは異なるキャラクタ・セットにある既存のパラメータ・ファイル(
CHARSETオプションを使用して別の文字セットを指定したものなど)は、VIEW PARAMSコマンドまたはEDIT PARAMSコマンドを使用して表示したり編集を行わないでください。この場合は、コマンドライン・インタフェース外部からパラメータ・ファイルを表示してください。そうしないと、内容が破損する可能性があります。 -
Extractのパラメータ・ファイルの
TABLE文にマーカー表を追加します。
TABLE marker;
-
パラメータ・ファイルを保存して閉じます。
-
データ・ポンプを使用している場合、データ・ポンプの
TABLE文にマーカー表を追加します。 -
Extractおよびデータ・ポンプのプロセスを停止し、取得のラグが発生しないよう、ただちに再起動します。
STOP EXTRACT *group*
START EXTRACT *group*
-
ターゲット・システムで、管理クライアントを実行します。
-
Replicatのパラメータ・ファイルを編集のために開きます。
注意:ローカル・オペレーティング・システムのもの以外の文字セットを使用した既存のパラメータ・ファイル(
CHARSETオプションを使用して別の文字セットを指定したものなど)は、VIEW PARAMSコマンドまたはEDIT PARAMSコマンドを使用して表示したり編集を行わないでください。その場合、管理クライアントの外部からパラメータ・ファイルを表示してください。そうしないと、内容が破損する可能性があります。 -
Replicatのパラメータ・ファイルの
MAP文にマーカー表を追加し、次に示すように、EVENTACTIONSパラメータを使用してReplicatを停止し、マーカー表に対する操作を無視します。
MAP marker, TARGET marker, EVENTACTIONS (STOP, IGNORE);
-
パラメータ・ファイルを保存して閉じます。
-
Replicatプロセスを停止します。その後、ただちに再起動します。
STOP REPLICAT *group*
START REPLICAT *group*
-
ソース表の表属性とターゲット表の両方の表属性を変更する準備ができたら、それらの表に対するユーザー・アクティビティをすべて停止します。
-
ソース・システムで、マーカー表に対する
UPDATE操作をトランザクションの唯一の操作として実行します。
UPDATE marker
SET column=2,
WHERE id=1;
COMMIT;
- ターゲット・システムで、
EVENTACTIONSルールの結果としてReplicatが停止したことが示されるまで、次のコマンドを発行します。
STATUS REPLICAT *group*
-
ソース表とターゲット表に対してDDLを実行しますが、まだユーザー・アクティビティは許可しません。
-
Replicatの起動
START REPLICAT *group*
- ソース表とターゲット表に対するユーザー・アクティビティを許可します。