この章では、レプリケーション環境をアクティブにし、データ変更を処理しながら、アプリケーション、システムおよびOracle GoldenGateを変更する手順について説明します。
この章の内容は次のとおりです。
通常、アプリケーション・パッチおよびアプリケーション・アップグレードでは、新規オブジェクトの追加や既存オブジェクトの変更などを伴うDDLが実行されます。Oracle GoldenGate環境でアプリケーションのパッチまたはアップグレードを適用するには、次のいずれかを実行します。
使用中のデータベースのタイプに対するDDLレプリケーションがOracle GoldenGateでサポートされている場合は、DDLレプリケーションを使用すると、レプリケーション・プロセスを停止せずにDDLをレプリケートできます。この方法を使用するには、ソース表とターゲット表の構造が同一である必要があります。
レプリケーションを継続させるための適切な手順を踏んだ後、ソースとターゲットの両方でパッチまたはアップグレードを手動で適用できます。
Oracle GoldenGateを使用してパッチのDDLをレプリケートする手順
ある程度時間をかけてOracle GoldenGateのDDLサポートについて学習し、DDLサポートのインストールと構成を行います(まだ行っていない場合)。このドキュメントで、使用中のデータベースに関する指示を参照してください。DDL環境を整えておけば、将来パッチやアップグレードを適用するのが容易になります。
アプリケーションのパッチまたはアップグレードによって追加される新規オブジェクトをデータ・レプリケーションに含める場合、必ずそれらのオブジェクトをDDL
パラメータ文に追加します。TABLE
文およびMAP
文に新しいオブジェクトを追加するには、20.4.2項「Oracle GoldenGate構成への表の追加」の手順を参照してください。
アプリケーションのパッチまたはアップグレードによってトリガーまたはカスケード制約がインストールされる場合、ターゲットで実行されるDMLと、ソースのトリガーまたはカスケード操作からレプリケートされる同じDDLとの間でコリジョンが発生しないように、ターゲットでそれらのオブジェクトを無効化します。
ソースおよびターゲットでパッチを手動で適用する手順
ソース・データベースへのアクセスを停止します。
Extractがトランザクション・ログに残っているトランザクション・データの取得を終了するまで待機します。Extractの終了を確認するには、EOFに到達した
ことを示すメッセージが戻されるまでGGSCIで次のコマンドを発行します。
SEND EXTRACT group
GETLAG
Extractを停止します。
STOP EXTRACT group
ソースに対するパッチの適用を開始します。
データ・ポンプ(使用している場合)およびReplicatがそれぞれの証跡に含まれるデータの処理を終了するまで待機します。それぞれの終了を確認するには、EOFに到達した
ことを示すメッセージが戻されるまで次のコマンドを使用します。
SEND EXTRACTgroup
GETLAG SEND REPLICATgroup
GETLAG
データ・ポンプおよびReplicatを停止します。
STOP EXTRACTgroup
STOP REPLICATgroup
この時点で、ソースからレプリケートされたトランザクション変更はすべてターゲットに適用されたため、ソースとターゲットのデータは同一となります。
ターゲットにパッチを適用します。
パッチによって表の定義が変更された場合、ソース表に対しDEFGENを実行して更新後のソース定義を生成し、ターゲット・システムにある既存のソース定義ファイルの古い定義を新しい定義に置き換えます。
ユーザー・アクティビティの取得を再開する準備が整ったら、Oracle GoldenGateプロセスを起動します。
トランザクション・ログを初期化する場合、最初にすべてのデータをOracle GoldenGateによって処理し、次にExtractグループとその関連証跡を削除してから再度追加する必要があります。
アプリケーションによるデータベースへのアクセスを停止します。これにより、トランザクション・データの記録が停止されます。
GGSCIを実行し、プライマリExtractグループに対してSEND EXTRACT
コマンドをLOGEND
オプション付きで発行します。このコマンドで、Extractがトランザクション・ログに残っているレコードの処理を終了したかどうかを問い合せます。
SEND EXTRACT group
LOGEND
処理するレコードがなくなったことを示すYES
ステータスが戻されるまで、コマンドを発行し続けます。
ターゲット・システムでGGSCIを実行し、SEND REPLICAT
コマンドをSTATUS
オプション付きで発行します。このコマンドで、Replicatが証跡に残っているデータの処理を終了したかどうかを問い合せます。
SEND REPLICAT group
STATUS
現在のトランザクションで0(ゼロ)レコードと示されるまで、コマンドを発行し続けます。次に例を示します。
Sending STATUS request to REPLICAT REPSTAB... Current status: Seqno 0, Rba 9035 0 records in current transaction.
プライマリExtractグループ、データ・ポンプ(使用している場合)およびReplicatグループを停止します。
STOP EXTRACTgroup
STOP EXTRACTpump_group
STOP REPLICATgroup
Extract、データ・ポンプおよびReplicatグループを削除します。
DELETE EXTRACTgroup
DELETE EXTRACTpump_group
DELETE REPLICATgroup
標準のオペレーティング・システム・コマンドを使用して、証跡ファイルを削除します。
データベースを停止します。
データベースを初期化して再起動します。
プライマリExtractグループを再作成します。
ADD EXTRACT group
TRANLOG, BEGIN NOW
ローカル証跡を再作成します(使用する場合)。
ADD EXTTRAILtrail
, EXTRACTgroup
データ・ポンプを再作成します(使用する場合)。
ADD EXTRACTpump_group
, EXTTRAILSOURCEtrail
リモート証跡を再作成します。
ADD RMTTRAILtrail
, EXTRACTpump_group
Replicatグループを再作成します。
ADD REPLICATgroup
, EXTTRAILtrail
Extract、データ・ポンプ(使用する場合)およびReplicatを起動します。
START EXTRACTgroup
START EXTRACTpump_group
START REPLICATgroup
メンテナンスや他のOracle GoldenGateに影響する作業のためにシステムを停止する場合、次の手順に従って、Extractで確実にすべてのトランザクション・ログ・レコードを処理します。そうしないと、同期データが失われる可能性があります。
Oracle GoldenGateによって処理されるトランザクションを生成するすべてのアプリケーションおよびデータベース・アクティビティを停止します。
GGSCIを実行します。
GGSCIで、SEND EXTRACT
コマンドをLOGEND
オプション付きで発行します。このコマンドで、Extractプロセスがデータソースのレコードの処理を終了したかどうかを問い合せます。
SEND EXTRACT group
LOGEND
YES
ステータスが戻されるまで、コマンドを発行し続けます。その時点で、すべてのトランザクション・ログ・データが処理されているため、Oracle GoldenGateとシステムを安全に停止できます。
この項では、データベースの表および構造に対して実行される管理操作について説明します。
20.4.2項「Oracle GoldenGate構成への表の追加」
20.4.4項「DB2 z/OSの表の列を追加するALTER TABLEの実行」
20.4.6項「クラシック・キャプチャを使用する場合のOracle RACスレッド数の変更」
20.4.9項「DB2表の再編成(z/OSプラットフォーム)」
この手順は、ソース・データベースの次のメタデータの変更時にReplicatエラーを防止するために必要です。
データベースのキャラクタ・セット
国のキャラクタ・セット
ロケール
タイムゾーン
オブジェクト名の大/小文字区別
この手順を実行せずにこれらの変更を行った場合、次のエラーが発生します。
2013-05-26 20:10:09 ERROR OGG-05500 Detected database metadata mismatch between current trail file ./dirdat/_p/v1000003 and the previous sequence. *DBTIMEZONE: [GMT]/[UTC].
この手順では、Extractを停止し、次に新しい証跡ファイルを作成します。新しいデータベース・メタデータは、変更後に開始したトランザクションを持つこの新しいファイルに含まれます。
ソース・データベースでトランザクション・アクティビティを停止します。データベースへのメタデータ変更はまだ行わないでください。
ソース・システムのGGSCIで、取得するREDOデータがこれ以上ないことが示されるまで、LOGEND
オプションを指定したSEND EXTRACT
コマンドを発行します。
SEND EXTRACT group
LOGEND
Extractを停止します。
STOP EXTRACT group
各ターゲット・システムで、証跡のすべてのデータの処理が完了したことを示す"At EOF
"ステータスが表示されるまで、STATUS
オプションを指定したSEND REPLICAT
コマンドを発行します。これは、すべてのReplicatプロセスで"At EOF
"が返されるまで、すべてのターゲット・システムで実行する必要があります。
SEND REPLICAT group
STATUS
データ・ポンプおよびReplicatを停止します。
STOP EXTRACTgroup
STOP REPLICATgroup
データベース・メタデータを変更します。
ソース・システムのGGSCIで、プライマリExtractが新しいファイルの開始にローカル証跡をロールオーバーするために、ALTER EXTRACT
コマンドをETROLLOVER
オプションを指定して発行します。
ALTER EXTRACT group
, ETROLLOVER
データ・ポンプが新しいファイルの開始にリモート証跡をロールオーバーするために、ALTER EXTRACT
コマンドをETROLLOVER
オプションを指定して発行します。
ALTER EXTRACT pump
, ETROLLOVER
Extractを起動します。
START EXTRACT group
GGSCIで、起動するデータ・ポンプとReplicatプロセスを新しい証跡シーケンス番号に再配置します。
ALTER EXTRACTpump
, EXTSEQNOseqno
, EXTRBARBA
ALTER REPLICATgroup
, EXTSEQNOseqno
, EXTRBARBA
データ・ポンプを起動します。
START EXTRACT group
Replicatプロセスを起動します。
START REPLICAT group
この手順では、Oracle GoldenGateのDDLサポート機能が使用されていない、または使用中のデータベースでサポートされていないと仮定しています。
注意: OracleおよびTeradataのデータベースの場合、この手順を使用するかわりに、Oracle GoldenGateのDDLサポート機能を有効化し、新しい表を追加するDDLを自動的に取得して適用することができます。このドキュメントで、使用中のデータベースに該当する指示を参照してください。 |
始める前に、次の手順に目を通してください。このプロセスは、新しい表がTABLEパラメータのワイルドカードに一致するかどうかと、名前またはデータ定義をターゲットでマップする必要があるかどうかによって、若干変わります。
Oracle GoldenGate構成への表の追加の前提条件
この手順では、ソース表とターゲット表が空であるか、同一の(すでに同期されている)データを含んでいると仮定しています。
DBLOGIN
コマンドとADD TRANDATA
コマンドを使用する可能性があります。この手順を開始する前に、Oracle GoldenGateリファレンスfor Windows and UNIXを参照し、使用中のデータベースでのこれらのコマンドの正しい使用方法を確認してください。
Oracle GoldenGate構成に表を追加する手順
新しい表へのユーザー・アクセスを停止します。
(新しい表がワイルドカードに一致しない場合)ワイルドカードに一致しない表を多数追加する場合、ExtractおよびReplicatのパラメータ・ファイルのコピーを作成し、TABLE文
およびMAP
文で新しい表を追加します。コピーを作成しない場合は、各プロセスを停止するよう要求された後で、元のパラメータ・ファイルを編集します。
(新しい表がワイルドカードに一致する場合) ExtractおよびReplicatのパラメータ・ファイルで、WILDCARDRESOLVE
パラメータが、デフォルトのDYNAMIC
以外の設定で使用されていないことを確認します。
(新しい表がワイルドカードに一致しない場合)新しい表がワイルドカード定義に一致しない場合、Extractを停止します。
STOP EXTRACT group
新しい表をソース・データベースおよびターゲット・データベースに追加します。
ソース・データベースでの必要に応じて、GGSCIで新しい表に対してADD TRANDATA
コマンドを発行します。ADD TRANDATA
を使用する前に、DBLOGIN
コマンドを発行します。
ソース定義とターゲット定義が同一か、異なるかに応じて、Replicatのパラメータ・ファイルでASSUMETARGETDEFS
またはSOURCEDEFS
を使用します。SOURCEDEFS
が必要な場合は、次のいずれかの操作を実行できます。
DEFGENを実行し、ターゲットのソース定義ファイルに新しい定義をコピーします。
新しい表が定義テンプレートに一致する場合は、MAP
パラメータのDEF
オプションでテンプレートを指定します。(DEFGENは不要です。)
新しいソース定義または新しいMAP
文を登録するには、Replicatを停止して起動します。
STOP REPLICATgroup
START REPLICATgroup
Extractを起動します(該当する場合)。
START EXTRACT group
新しい表へのユーザー・アクセスを許可します。
列やパーティションの追加または変更、サプリメンタル・ロギング詳細の変更(Oracle)など、Oracle GoldenGate構成内のソース表の属性を変更する場合は、次の手順に従ってください。ここでは、レプリケーション・レイテンシを発生させずにターゲット表に同じ変更を加える方法を示します。
注意: この手順では、Oracle GoldenGateのDDLサポート機能が使用されていない、または使用中のデータベースでサポートされていないと仮定しています。OracleおよびTeradataのデータベースの場合、この手順を使用するかわりに、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;
ソース・システムで、GGSCIを実行します。
Extractのパラメータ・ファイルを編集のために開きます。
注意: ローカル・オペレーティング・システムのものとは異なるキャラクタ・セットを使用した既存のパラメータ・ファイル(CHARSET オプションを使用して別のキャラクタ・セットを指定したファイルなど)は、VIEW PARAMS コマンドまたはEDIT PARAMS コマンドを使用して表示や編集を行わないでください。そのようなパラメータ・ファイルはGGSCIの外部から表示してください。そうしないと、内容が破損する可能性があります。 |
Extractのパラメータ・ファイルのTABLE
文にマーカー表を追加します。
TABLE marker;
パラメータ・ファイルを保存して閉じます。
データ・ポンプを使用している場合、データ・ポンプのTABLE
文にマーカー表を追加します。
Extractおよびデータ・ポンプのプロセスを停止し、取得のラグが発生しないよう、ただちに再起動します。
STOP EXTRACTgroup
START EXTRACTgroup
STOP EXTRACTpump_group
START EXTRACTpump_group
ターゲット・システムでGGSCIを実行します。
Replicatのパラメータ・ファイルを編集のために開きます。
注意: ローカル・オペレーティング・システムのものとは異なるキャラクタ・セットを使用した既存のパラメータ・ファイル(CHARSET オプションを使用して別のキャラクタ・セットを指定したファイルなど)は、VIEW PARAMS コマンドまたはEDIT PARAMS コマンドを使用して表示や編集を行わないでください。そのようなパラメータ・ファイルはGGSCIの外部から表示してください。そうしないと、内容が破損する可能性があります。 |
Replicatのパラメータ・ファイルのMAP
文にマーカー表を追加し、次に示すように、EVENTACTIONS
パラメータを使用してReplicatを停止し、マーカー表に対する操作を無視します。
MAP marker, TARGET marker, EVENTACTIONS (STOP, IGNORE);
パラメータ・ファイルを保存して閉じます。
Replicatプロセスを停止し、ただちに再起動します。
STOP REPLICATgroup
START REPLICATgroup
ソース表とターゲット表両方の表属性を変更する準備ができたら、それらの表に対するユーザー・アクティビティをすべて停止します。
ソース・システムで、マーカー表に対するUPDATE
操作をトランザクションの唯一の操作として実行します。
UPDATE marker SET column=2, WHERE id=1; COMMIT;
ターゲット・システムで、EVENTACTIONS
ルールの結果としてReplicatが停止したことが示されるまで、次のコマンドを発行します。
STATUS REPLICAT group
ソース表とターゲット表に対してDDLを実行しますが、まだユーザー・アクティビティは許可しません。
Replicatを起動します。
START REPLICAT group
ソース表とターゲット表に対するユーザー・アクティビティを許可します。
再配列された行形式で1つ以上の可変長の列を含む表に、固定長の列を追加する場合、その表を静止できるかどうかに応じて次のいずれかの手順を実行する必要があります。
表を静止できる場合
Extractが静止前に発生したトランザクションの取得を終了するまで待機します。
表を変更して列を追加します。
表領域を再編成します。
Extractを再起動します。
表のアクティビティを再開します。
表を静止できない場合
Extractを停止します。
パラメータ・ファイルのTABLE
文から表を削除します。
Extractを再起動します。
表を変更して列を追加します。
表領域を再編成します。
Extractを停止します。
表をTABLE
文に再度追加します。
ソース表とターゲット表を再同期します。
Extractを起動します。
表のアクティビティを再開します。
Oracle GoldenGateの実行中にソース表の削除および再作成を行う場合、慎重に作業する必要があります。
表へのアクセスを停止します。
Extractがトランザクション・ログからその表について残っている変更をすべて処理するまで待機します。Extractが終了したことを確認するには、GGSCIでINFO EXTRACT
コマンドを使用します。
INFO EXTRACT group
Extractを停止します。
STOP EXTRACT group
表を削除して再作成します。
現在のデータベースでサポートされる場合、表に対してGGSCIのADD TRANDATA
コマンドを実行します。
再作成操作によって、ソース表の定義がターゲットの定義と異なるように変更された場合、ソース表に対してDEFGENユーティリティを実行し、ソース定義を生成して、ターゲット・システムの既存のソース定義ファイルの新しい定義で古い定義を置き換えます。
表へのユーザー・アクセスを許可します。
Oracleのクラシック・キャプチャ・モードのExtractに有効です。Extractがクラシック・キャプチャ・モードで動作する場合、 Oracle RACクラスタのREDOスレッドの数が変更されたら、必ずExtractグループを削除して再度追加する必要があります。Extractグループを削除して追加するには、次の手順を実行します。
ソースおよびターゲット・システムでGGSCIを実行します。
ExtractとReplicatを停止します。
STOP EXTRACTgroup
STOP REPLICATgroup
ソース・システムで、次のコマンドを発行してプライマリExtractグループとデータ・ポンプを削除します。
DELETE EXTRACTgroup
DELETE EXTRACTpump_group
ターゲット・システムで、次のコマンドを発行してReplicatグループを削除します。
DELETE REPLICAT group
標準のオペレーティング・システム・コマンドを使用して、ローカルおよびリモートの証跡ファイルを削除します。
新しいRACスレッド数を指定し、プライマリExtractグループを以前と同じ名前で再度追加します。
ADD EXTRACTgroup
TRANLOG, THREADSn
, BEGIN NOW
ローカル証跡を以前と同じ名前で再度追加します。
ADD EXTTRAILtrail
, EXTRACTgroup
データ・ポンプExtractを以前と同じ名前で再度追加します。
ADD EXTRACTgroup
EXTTRAILSOURCEtrail
, BEGIN NOW
リモート証跡を以前と同じ名前で再度追加します。
ADD RMTTRAILtrail
, EXTRACTgroup
Replicatグループを以前と同じ名前で追加します。BEGIN
オプションは外し、証跡の最初から処理が開始されるようにします。
ADD REPLICATgroup
EXTTRAILtrail
ワイルドカードを適宜使用して、すべてのプロセスを起動します。再作成したプロセスがソースおよびターゲットのOracle GoldenGateインスタンスにおける唯一のプロセスである場合は、次のコマンドのかわりにSTART
ER *
を使用することもできます。
START EXTRACTgroup
START REPLICATgroup
ORACLE_SID
およびORACLE_HOME
は、オペレーティング・システム・レベルの環境変数を修正せずに変更できます。変更対象がソース・データベースとターゲット・データベースのどちらであるかに応じて、ExtractまたはReplicatのパラメータ・ファイルで次のパラメータを設定します。その後、パラメータの変更を反映するため、ExtractまたはReplicatを停止して再起動します。
SETENV (ORACLE_HOME=location
) SETENV (ORACLE_SID='SID
')
Oracleのアーカイブ・ログは、Extractの読取りチェックポイントおよび書込みチェックポイントがそのログの最後を過ぎたら、安全に消去できます。Extractは、トランザクションのコミットが終了するまでそのトランザクションを証跡に書き込まないため、すべてのオープン・トランザクションを追跡する必要があります。そのため、Extractでは、各オープン・トランザクションの開始記録が含まれるアーカイブ・ログと、それ以降のすべてのアーカイブ・ログにアクセスする必要があります。
Extractは、新規トランザクションに関する現在のアーカイブ・ログ(読取りチェックポイント)を読み取ると同時に、未コミットのトランザクションが存在する最も古いアーカイブ・ログ内にチェックポイント(リカバリ・チェックポイント)を保持します。
Extractのチェックポイント位置を特定するには、GGSCIで次のコマンドを使用します。
INFO EXTRACT group
, SHOWCH
Input Checkpoint
フィールドに、Extractの起動時に処理を開始した位置が示されます。
Recovery Checkpoint
フィールドに、最も古い未コミット・トランザクションの位置が示されます。
Next Checkpoint
フィールドに、Extractが読取りを行っているREDOログの位置が示されます。
Output Checkpoint
フィールドに、Extractが書込みを行っている位置が示されます。
Recovery Checkpoint
フィールドにリストされている順序番号を取得して、Extractで不要になったすべてのアーカイブ・ログを消去するシェル・スクリプトを記述できます。その番号よりも前のすべてのアーカイブ・ログは、安全に削除できます。
IBM社のREORGユーティリティを使用して圧縮表領域が含まれるDB2表を再編成する場合、その表がOracle GoldenGateで処理中であれば、KEEPDICTIONARY
オプションを指定してください。これにより、REORGユーティリティによって圧縮ディクショナリが再作成されることを防止します。圧縮ディクショナリが再作成されると、変更前に書き込まれたログ・データを解凍できなくなり、Extractは異常終了します。別の方法としては、再編成を実行する前に必ず表のすべての変更をOracle GoldenGateで抽出しておきます。そうしないと、表が切り捨てられます。
この項では、プロセス・グループの追加方法について説明します。
ここでの手順では、すでにアクティブである構成に対してプロセス・グループを追加します。各手順は、Oracle GoldenGateの操作経験のあるユーザーによって実行される必要があります。これらの手順では、プロセスを少しの間停止してパラメータ・ファイルを再構成します。これらの手順を実行するユーザーには、次のことが要求されます。
Oracle GoldenGate構成の基本コンポーネントに関する知識があること
Oracle GoldenGateのパラメータおよびコマンドを理解していること
GGSCIにアクセスしてグループおよびパラメータ・ファイルを作成できること
特定の状況で使用するパラメータを把握していること
各手順の詳細は、次の項を参照してください。
この手順では、既存のExtractグループのワークロードを複数のExtractグループに分割します。また、データ・ポンプ・グループ(該当する場合)およびReplicatグループを含めて、新規Extractグループで取得されたデータを伝播する方法についても説明します。
手順はソース・システムとターゲット・システムで実行します。
この手順を完了する前にオンライン・ログを再利用する場合、アーカイブ・トランザクション・ログが使用できることを確認します。
新規Extractグループの名前を選択します。
データ・ポンプを使用するかどうかを決定します。
ソース・システムで、GGSCIを実行します。
新規Extractグループのパラメータ・ファイルを作成します。
EDIT PARAMS group
注意: 元のパラメータ・ファイルをコピーしてこのグループで使用できますが、必ずExtractグループ名を変更し、この新規グループに適用される他のすべての関連パラメータを変更してください。 |
パラメータ・ファイルに次のパラメータを含めます。
新規グループを指定するEXTRACT
パラメータ。
適切なデータベース・ログイン・パラメータ。
現在の構成に応じた他の適切なExtractパラメータ。
ローカル証跡を参照するEXTTRAIL
パラメータ(データ・ポンプを追加する場合)またはRMTTRAIL
パラメータ(データ・ポンプを追加しない場合)。
RMTHOST
パラメータ(このExtractで直接リモート証跡に書込みを行う場合)。
新規グループで処理する表に対応する1つ以上のTABLE
文(および適切な場合はTABLEEXCLUDE
)。
ファイルを保存して閉じます。
元のExtractのパラメータ・ファイルを編集して、新規グループに移動される表のTABLE
文を削除します。または、ワイルドカードを使用している場合、TABLEEXCLUDE
パラメータを追加してワイルドカードの指定からそれらの表を除外します。
(Oracle) Extractを統合モードで使用している場合、新規Extractグループをソース・データベースに登録します。
REGISTER EXTRACTgroup
DATABASE [CONTAINER (container
[, ...])]
新規グループに移動された表をロックし、ロックが適用された時点のタイムスタンプを記録します。Oracle表では、次のスクリプトを実行できます(処理の終了後にロックは解放されます)。
-- temp_lock.sql -- use this script to temporary lock a table in order to -- get a timestamp lock table &schema . &table_name in EXCLUSIVE mode; SELECT TO_CHAR(sysdate,'MM/DD/YYYY HH24:MI:SS') "Date" FROM dual; commit;
前の手順でスクリプトを使用しなかった場合、1つ以上の表のロックを解放します。
古いExtractグループと既存のすべてのデータ・ポンプを停止します。
STOP EXTRACT group
新規Extractグループを追加して、前に記録したタイムスタンプの時点から起動するように構成します。
ADD EXTRACTgroup
, TRANLOG, BEGINYYYY/MM/DD HH:MI:SS:CCCCCC
新規Extractグループの証跡を追加します。
ADD {EXTTRAIL | RMTTRAIL}trail
, EXTRACTgroup
説明:
EXTTRAIL
ではローカル証跡が作成されます。このオプションは、新規Extractグループと組み合せて使用するデータ・ポンプを作成する場合に指定します。パラメータ・ファイルのEXTTRAIL
で指定されている証跡を指定します。証跡を作成したら、20.5.2項「ローカル・データ・ポンプを新規Extractグループにリンクする手順」に進みます。
RMTTRAIL
ではリモート証跡が作成されます。このオプションは、データ・ポンプを使用しない場合に指定します。パラメータ・ファイルのRMTTRAIL
で指定されている証跡を指定します。証跡を作成したら、「リモートReplicatを新規データ・ポンプにリンクする手順」
に進みます。
相対名またはフルパス名を指定できます。例:
ADD RMTTRAIL dirdat/rt, EXTRACT primary ADD EXTTRAIL c:\ogg\dirdat\lt, EXTRACT primary
ローカル・データ・ポンプを新規Extractグループにリンクする手順
ソース・システムで、データソースとしてEXTTRAIL
証跡を使用し、データ・ポンプExtractグループを追加します。
ADD EXTRACTpump
, EXTTRAILSOURCEtrail
例:
ADD EXTRACT pump2, EXTTRAILSOURCE dirdat\lt
データ・ポンプのパラメータ・ファイルを作成します。
EDIT PARAMS pump
パラメータ・ファイルに現在の構成に応じた適切なExtractパラメータを含め、さらに次のパラメータを含めます。
ターゲット・システムを参照するRMTHOST
パラメータ。
新規リモート証跡(この後で指定)を参照するRMTTRAIL
パラメータ。
このデータ・ポンプで処理する表に対応する1つ以上のTABLE
パラメータ。
注意: データ・ポンプでデータを処理するが、フィルタリング、マッピングまたは変換を実行しない場合、PASSTHRU パラメータを含めてデータベース参照のオーバーヘッドを回避できます。データベース認証パラメータも省略できます。 |
ソース・システムのGGSCIで、データ・ポンプのリモート証跡を追加します。パラメータ・ファイルのRMTTRAIL
で指定されている証跡名を使用します。
ADD RMTTRAILtrail
, EXTRACTpump
例:
ADD RMTTRAIL dirdat/rt, EXTRACT pump2
「リモートReplicatを新規データ・ポンプにリンクする手順」での手順に従います。
リモートReplicatを新規データ・ポンプにリンクする手順
ターゲット・システムのGGSCIで、リモート証跡を読み取るReplicatグループを追加します。EXTTRAIL
には、RMTTRAIL
ExtractパラメータおよびADD RMTTRAIL
コマンドと同じ証跡を指定します。
ADD REPLICATgroup
, EXTTRAILtrail
例:
ADD REPLICAT rep2, EXTTRAIL /home/ggs/dirdat/rt
このReplicatグループのパラメータ・ファイルを作成します。1つ以上のMAP
文を使用して、新規プライマリExtractおよびデータ・ポンプ(使用する場合)で指定した表と同じ表を指定します。
ソース・システムで、Extractグループおよびデータ・ポンプを起動します。
START EXTRACTgroup
START EXTRACTpump
ターゲット・システムで、新規Replicatグループを起動します。
START REPLICAT group
この手順では、ソース・システムのアクティブなプライマリExtractグループにデータ・ポンプExtractグループを追加します。これにより、次の変更が発生します。
プライマリExtractは、ローカル証跡に書込みを行います。
データ・ポンプは、古い証跡のデータがターゲットに適用された後に、新しいリモート証跡に書込みを行います。
古いReplicatグループは、新しいReplicatグループで置き換えられます。
手順はソース・システムとターゲット・システムで実行します。
ソース・システムで、GGSCIを実行します。
group
にプライマリExtractグループの名前を使用してローカル証跡を追加します。
ADD EXTTRAILtrail
, EXTRACTgroup
例:
ADD EXTTRAIL dirdat\lt, EXTRACT primary
プライマリExtractグループのパラメータ・ファイルを開き、作成したローカル証跡を参照するEXTTRAIL
パラメータでRMTTRAIL
パラメータを置き換えます。
注意: ローカル・オペレーティング・システムのものとは異なるキャラクタ・セットを使用した既存のパラメータ・ファイル(CHARSET オプションを使用して別のキャラクタ・セットを指定したファイルなど)は、VIEW PARAMS コマンドまたはEDIT PARAMS コマンドを使用して表示や編集を行わないでください。そのようなパラメータ・ファイルはGGSCIの外部から表示してください。そうしないと、内容が破損する可能性があります。 |
EXTTRAIL
パラメータの例:
EXTTRAIL dirdat\lt
RMTHOST
パラメータを削除します。
ファイルを保存して閉じます。
データソースとして手順2で指定した証跡を使用し、新規データ・ポンプExtractグループを追加します。
ADD EXTRACTgroup
, EXTTRAILSOURCEtrail
例:
ADD EXTRACT pump, EXTTRAILSOURCE dirdat\lt
新規データ・ポンプのパラメータ・ファイルを作成します。
EDIT PARAMS group
パラメータ・ファイルに現在の構成に応じた適切なExtractパラメータを含め、さらに次のパラメータを含めます。
このデータ・ポンプで処理する表に対応する1つ以上のTABLE
パラメータ。
ターゲット・システムを参照するRMTHOST
パラメータ。
新規リモート証跡(この後で作成)を参照するRMTTRAIL
パラメータ。
注意: データ・ポンプでデータを処理するが、フィルタリング、マッピングまたは変換を実行しない場合、PASSTHRU パラメータを含めてデータベース参照のオーバーヘッドを回避できます。データベース認証パラメータも省略できます。 |
ソース・システムのGGSCIで、データ・ポンプのリモート証跡を追加します。データ・ポンプのパラメータ・ファイルのRMTTRAIL
で指定されている証跡名を使用し、EXTRACT
のデータ・ポンプのグループ名を指定します。
ADD RMTTRAILtrail
, EXTRACTgroup
例:
ADD RMTTRAIL dirdat/rt, EXTRACT pump
注意: このコマンドによって、証跡名がExtractグループにバインドされますが、実際の証跡は作成されません。証跡ファイルは、処理が開始した時点で作成されます。 |
ターゲット・システムでGGSCIを実行します。
新規Replicatグループを追加してリモート証跡にリンクします。
ADD REPLICATgroup
, EXTTRAILtrail
例:
ADD REPLICAT rep, EXTTRAIL dirdat/rt
このReplicatグループのパラメータ・ファイルを作成します。元のReplicatグループからパラメータ・ファイルをコピーできますが、必ずREPLICAT
パラメータを新規グループ名に変更してください。
ソース・システムで、追加したパラメータの変更を反映するため、プライマリExtractグループを一度停止してから再起動します。
STOP EXTRACTgroup
START EXTRACTgroup
ソース・システムで、データ・ポンプを起動します。
START EXTRACT group
ターゲット・システムで、EOFに到達して処理するレコードがなくなった
ことを示すメッセージがレポートされるまで、古いReplicatに対してLAG REPLICAT
コマンドを発行し続けます。
LAG REPLICAT group
古いReplicatグループを停止します。
STOP REPLICAT group
古いReplicatグループのチェックポイント表を使用する場合、GGSCIからデータベースにログインします。
DBLOGIN [SOURCEDBdatasource
] [{, USERIDALIASalias
| USERIDuser
[,options
]]
古いReplicatグループを削除します。
DELETE REPLICAT group
新規Replicatグループを起動します。
START REPLICAT group
注意: 古いリモート証跡は削除しないでください(後からサポート・ケースで必要となる場合などに備えるため)。古い証跡は、必要に応じて別の場所に移動できます。 |
この手順では、既存のReplicatグループに新規Replicatグループを追加します。新規Replicatは、元のReplicatと同じ証跡から読取りを行います。
特定の表でのトランザクションの分離やパフォーマンスの向上の目的で、Replicatがクラシック・モードで構成されている場合、複数のReplicatグループが必要になることがあります。同じReplicatグループ内の複数の処理スレッド間でワークロードを分割できるため、調整Replicatを使用している場合は、通常、複数のReplicatグループは必要ありません。Replicatのモードの詳細は、14.7項「オンラインReplicatグループの作成」 を参照してください。
手順はソース・システムとターゲット・システムで実行します。
新規グループの名前を選択します。
ターゲット・システムでGGSCIを実行します。
新規Replicatグループのパラメータ・ファイルを作成します。
EDIT PARAMS group
注意: 元のパラメータ・ファイルをコピーしてこのグループで使用できますが、必ずReplicatグループ名を変更し、この新規グループに適用される他のすべての関連パラメータを変更してください。 |
MAP
文を追加して(またはコピーした文を編集して)、このグループに追加または移動する表を指定します。このグループが調整Replicatグループである場合、適切なスレッド指定を含めます。
パラメータ・ファイルを保存して閉じます。
ソース・システムで、GGSCIを実行します。
Extractグループを停止します。
STOP EXTRACT group
ターゲット・システムで、Replicatの古いパラメータ・ファイルを編集して、新規Replicatグループに移動した表を指定しているMAP
文を削除します。このReplicatで処理を続けるMAP
文のみを残します。
ファイルを保存して閉じます。
EOFに到達して処理するレコードがなくなった
ことを示すメッセージがレポートされるまで、古いReplicatグループに対してINFO REPLICAT
コマンドを発行し続けます。
INFO REPLICAT group
古いReplicatグループを停止します。調整Replicatを停止している場合、すべてのスレッドが同じ証跡レコードで停止するように、停止がクリーンであることを確認します。
STOP REPLICAT group
新規Replicatグループを追加します。EXTTRAIL
では、このReplicatグループが読み取る証跡を指定します。
ADD REPLICATgroup
, EXTTRAILtrail
例:
ADD REPLICAT rep, EXTTRAIL dirdat/rt
ソース・システムで、Extractグループを起動します。
START EXTRACT group
ターゲット・システムで、古いReplicatグループを起動します。
START REPLICAT group
新規Replicatグループを起動します。
START REPLICAT group
証跡ファイルのサイズを変更するには、証跡がローカル証跡であるかリモート証跡であるかに応じて、ALTER EXTTRAIL
またはALTER RMTTRAIL
コマンドのMEGABYTES
オプションを使用します。ファイル・サイズを変更するには、次の手順を実行します。
証跡の場所に応じて次のコマンドのいずれかを発行し、変更する証跡のパス名および関連するExtractグループの名前を表示します。ワイルドカードを使用してすべての証跡を表示します。
(リモート証跡)
INFO RMTTRAIL *
(ローカル証跡)
INFO EXTTRAIL *
証跡の場所に応じて次のコマンドのいずれかを発行し、ファイル・サイズを変更します。
(リモート証跡)
ALTER RMTTRAILtrail
, EXTRACTgroup
, MEGABYTESn
(ローカル証跡)
ALTER EXTTRAILtrail
, EXTRACTgroup
, MEGABYTESn
次のコマンドを発行して、Extractの証跡を次のファイルに切り替えます。
SEND EXTRACT group
, ROLLOVER
Oracleのみに有効です。
この手順では、既存のExtractグループをクラシック・モードから統合モードに切り替えます。Oracleデータベース用のExtractのモードの詳細は、Oracle DatabaseのためのOracle GoldenGateのインストールおよび構成を参照してください。
統合モードへの移行をサポートするには、Extractが実行される場所に応じて、オープンしている最も古いトランザクションの開始を含むトランザクション・ログが、ソースまたはダウンストリーム・マイニング・システムで使用可能である必要があります。
最も古いオープン・トランザクションを判断するには、SHOWTRANS
オプションを指定したSEND EXTRACT
コマンドを発行します。ユーザー・アプリケーションによってトランザクションがロールバックされる場合、トランザクションをスキップすると、データが損失する可能性があり、トランザクションが強制的に証跡へのコミットを行うと、不要なデータが追加される可能性があるということを理解して、このコマンドのFORCETRANS
またはSKIPTRANS
オプションを使用して、特定のオープン・トランザクションを管理できます。これらのオプションを使用する前に、Oracle GoldenGateリファレンスfor Windows and UNIXで確認してください。
GGSCI> SEND EXTRACTgroup
, SHOWTRANS� GGSCI> SEND EXTRACTgroup
, { SKIPTRANSID
[THREADn
] [FORCE] |� FORCETRANSID
[THREADn
] [FORCE] }�
Extractモードを切り替える手順
現在のOracle GoldenGate作業ディレクトリをバックアップします。
Oracle GoldenGateプロセスは現在の構成で実行を継続しますが、現在の変更アクティビティに対応するために、Extractパラメータ・ファイルを新しい名前にコピーします。
統合キャプチャ・モードでビジネス・アプリケーションをサポートするために、Extractユーザーに適切な権限を付与し、必要な構成手順を実行します。統合モードでのExtractの構成および実行の詳細は、Oracle DatabaseのためのOracle GoldenGateのインストールおよび構成を参照してください。
マイニング・データベースがある場所に応じて、次のいずれかのコマンドを使用してマイニング・データベースにログインします。
DBLOGIN USERIDALIASalias
MININGDBLOGIN USERIDALIASalias
説明: alias
は、Oracle dbms_goldengate_auth.grant_admin_privilege
プロシージャを使用して付与された権限を持っている、資格証明ストア内のユーザーの別名を指定します。
Extractグループをマイニング・データベースに登録します。特に、これによりログマイニング・サーバーが作成されます。
REGISTER EXTRACT group
DATABASE
Extractグループを停止します。
STOP EXTRACT group
次のコマンドを発行して、アップグレード・コマンドを発行できるかどうかを確認します。登録コマンドの前に開始したトランザクションは、アップグレードを進める前に証跡に書き込む必要があります。Extractをアップグレードできるということを示すメッセージが返されるまで、複数回このコマンドを発行する必要がある場合があります。
INFO EXTRACT group
UPGRADE
Extractグループを統合モードに切り替えます。Oracle GoldenGateリファレンスfor Windows and UNIXのこのコマンドのOracle RACオプションに関する項(該当する場合)を参照してください。
ALTER EXTRACT group
UPGRADE INTEGRATED TRANLOG
古いパラメータ・ファイルを新しいパラメータ・ファイルで、同じ名前のまま置き換えます。
Extractグループを起動します。
START EXTRACT group
Oracleのみに有効です。
この手順では、既存のExtractグループを統合モードからクラシック・モードに切り替えます。Oracleデータベース用のExtractのモードの詳細は、Oracle DatabaseのためのOracle GoldenGateのインストールおよび構成を参照してください。
クラシック・モードへの移行をサポートするには、オープンしている最も古いトランザクションの開始を含むトランザクション・ログが、ソースまたはダウンストリーム・マイニング・システムで使用可能である必要があります。最も古いオープン・トランザクションを判断するには、SHOWTRANS
オプションを指定したSEND EXTRACT
コマンドを発行します。ユーザー・アプリケーションによってトランザクションがロールバックされる場合、トランザクションをスキップすると、データが損失する可能性があり、トランザクションが強制的に証跡へのコミットを行うと、不要なデータが追加される可能性があるということを理解して、このコマンドのFORCETRANS
またはSKIPTRANS
オプションを使用して、特定のオープン・トランザクションを管理できます。これらのオプションを使用する前に、Oracle GoldenGateリファレンスfor Windows and UNIXで確認してください。
GGSCI> SEND EXTRACTgroup
, SHOWTRANS� GGSCI> SEND EXTRACTgroup
, { SKIPTRANSID
[THREADn
] [FORCE] |� FORCETRANSID
[THREADn
] [FORCE] }�
Extractモードを切り替える手順
現在のOracle GoldenGate作業ディレクトリをバックアップします。
Oracle GoldenGateプロセスは現在の構成で実行を継続しますが、現在の変更アクティビティに対応するために、Extractパラメータ・ファイルを新しい名前にコピーします。
クラシック・キャプチャ・モードでビジネス・アプリケーションをサポートするために、Extractユーザーに適切な権限を付与し、必要な構成手順を実行します。クラシック・モードでのExtractの構成および実行の詳細は、Oracle DatabaseのためのOracle GoldenGateのインストールおよび構成を参照してください。
Extractグループを停止します。
STOP EXTRACT group
次のコマンドを発行して、ダウングレード・コマンドを発行できるかどうかを確認します。ダウングレード・コマンドを発行する前に開始したトランザクションは、進める前に証跡に書き込む必要があります。Extractをダウングレードできるということを示すメッセージが返されるまで、複数回このコマンドを発行する必要がある場合があります。
INFO EXTRACT group
DOWNGRADE
マイニング・データベースがある場所に応じて、次のいずれかのコマンドを使用してマイニング・データベースにログインします。
DBLOGIN USERIDALIASalias
MININGDBLOGIN USERIDALIASalias
説明: alias
は、Oracle dbms_goldengate_auth.grant_admin_privilege
プロシージャを使用して付与された権限を持っている、資格証明ストア内のユーザーの別名です。
Extractグループをクラシック・モードに切り替えます。
ALTER EXTRACT group
DOWNGRADE INTEGRATED TRANLOG
RACシステムの場合は、THREADS
オプションをダウングレード・コマンドとともに使用して、RACスレッドの数を指定する必要があります。
Extractグループをマイニング・データベースから登録解除します。特に、これによりログマイニング・サーバーが削除されます。
UNREGISTER EXTRACT group
DATABASE
古いパラメータ・ファイルを新しいパラメータ・ファイルで、同じ名前のまま置き換えます。
Extractグループを起動します。
START EXTRACT group
Oracleのみに有効です。Oracleデータベース用のReplicatのモードの詳細は、Oracle DatabaseのためのOracle GoldenGateのインストールおよび構成を参照してください。
この手順では、既存のReplicatグループを非統合モードから統合モードに切り替えます。
注意: Extractが失敗からリカバリした直後、またはトランザクション・ログで別の場所に再配置された直後に、Replicatモード間の切替えが発生しないように構成してください。 |
Oracle GoldenGate作業ディレクトリをバックアップします。
Oracle GoldenGateプロセスは現在の構成で実行を継続しますが、現在の変更アクティビティに対応するために、Replicatパラメータ・ファイルを新しい名前にコピーします。
統合Replicatモードでビジネス・アプリケーションをサポートするために、Replicatユーザーに適切な権限を付与し、必要な構成手順を実行します。統合モードでのReplicatの構成および実行の詳細は、Oracle DatabaseのためのOracle GoldenGateのインストールおよび構成を参照してください。
GGSCIを実行します。
Replicatを停止します。
STOP REPLICAT group
GGSCIからターゲット・データベースにログインします。
DBLOGIN USERIDALIAS alias
説明: alias
は、Oracle dbms_goldengate_auth.grant_admin_privilege
プロシージャを使用して付与された権限を持っている、資格証明ストア内のユーザーの別名です。
Replicatを統合モードに変更します。
ALTER REPLICAT group
, INTEGRATED
古いパラメータ・ファイルを新しいパラメータ・ファイルで、同じ名前のまま置き換えます。
Replicatを起動します。
START REPLICAT group
Replicatが統合モードであることを確認します。
INFO REPLICAT group
Replicatを最初に統合モードで起動する際に、START
コマンドでは、Replicatグループをデータベースに登録し、Replicatがアタッチするインバウンド・サーバーを起動します。Replicatグループを統合モードに変換する際に、Oracle GoldenGateチェックポイント表の使用は中止され、リカバリ情報は、インバウンド・サーバーおよび進んでいるチェックポイント・ファイルによって内部的に保持されます。非統合モードに戻す場合に備えて、チェックポイント表を保持することができます。
Oracleのみに有効です。Oracleデータベース用のReplicatのモードの詳細は、Oracle DatabaseのためのOracle GoldenGateのインストールおよび構成を参照してください。
統合モードから非統合モードにReplicatをいつでも切り替えることができます。この切替えにより、ターゲット・データベースからReplicatグループが自動的に登録解除され、インバウンド・サーバーが削除されます。
注意: Extractが失敗からリカバリした直後、またはトランザクション・ログで別の場所に再配置された直後に、Replicatモード間の切替えが発生しないように構成してください。 |
Oracle GoldenGate作業ディレクトリをバックアップします。
Oracle GoldenGateプロセスは現在の構成で実行を継続しますが、現在の変更アクティビティに対応するために、Replicatパラメータ・ファイルを新しい名前にコピーします。
非統合Replicatモードでビジネス・アプリケーションをサポートするために、Replicatユーザーに適切な権限を付与し、必要な構成手順を実行します。統合モードでのReplicatの構成および実行の詳細は、Oracle DatabaseのためのOracle GoldenGateのインストールおよび構成を参照してください。
GGSCIを実行します。
GGSCIからターゲット・データベースにログインします。
DBLOGIN USERIDALIAS alias
説明: alias
は、Oracle dbms_goldengate_auth.grant_admin_privilege
プロシージャを使用して付与された権限を持っている、資格証明ストア内のユーザーの別名です。
非統合Replicat用にターゲット・データベースにチェックポイント表を作成し、そのリカバリ・チェックポイントを格納するために使用します。チェックポイント表がこのReplicatグループに以前に関連付けられていて、まだ存在する場合は、この手順を省略できます。チェックポイント表を使用するためのオプションの詳細は、14.3項「チェックポイント表の作成」 を参照してください。
ADD CHECKPOINTTABLE [container.]table
Replicatを停止します。
STOP REPLICAT group
Replicatを非統合モードに変更します。CHECKPOINTTABLE
引数に、このReplicatグループに対して作成したチェックポイント表を指定します。
ALTER REPLICATgroup
, NONINTEGRATED, CHECKPOINTTABLE[container.]table
古いパラメータ・ファイルを新しいパラメータ・ファイルで、同じ名前のまま置き換えます。
Replicatを起動します。
START REPLICAT group
このコマンドを発行した後で、スイッチオーバーを完了できるように、ソース・データベースにいくつかのアクティビティが存在するまで待機します。(Replicatは、「統合モードからの切替え」のステータスを削除する前に内部の高基準値を超えるまで待機します。)
Replicatが非統合モードに切り替えられたことを確認します。
INFO REPLICAT group
Oracle GoldenGateでサポートされているすべてのデータベース・タイプに有効です。
この手順では、標準Replicat構成(非調整)を調整された構成にアップグレードします。この手順では、複数のExtractおよびReplicatプロセス間でデータをパーティション化する構成を、1つのExtractおよび1つの調整Replicatを使用する構成で置き換えていることを前提としています。調整Replicatによって、複数のReplicatプロセスを使用する必要がなくなります。調整Replicatには1つの証跡のみが必要であるため、複数のExtractプロセスやデータ・ポンプは必要ありません。
調整Replicatの詳細は、第14章「オンライン変更同期の構成」を参照してください。
この手順では、EVENTACTIONS
パラメータをSTOP
アクションとともに利用して、すべてのReplicatプロセスが証跡内の同じポイントで停止できるようにします。EVENTACTIONS
アクションは、ダミー表へのINSERT
が含まれるトランザクションによってトリガーされます。INSERT
を使用すると、各プロセスがイベント・トランザクションまでを含む、すべての処理を終了して停止します。IGNORE
の追加のイベント・アクションは、複数のReplicatプロセスが同じレコードをターゲットに挿入しようとすることを防ぐために、Replicatに対して指定されます。この手順の結果、ダミー表へのINSERT
トランザクションの完了後に、データ・ストリームの同じポイントですべてのプロセスが停止します。
プロセスの停止後に、すべてのTABLE
文を1つのプライマリExtractグループに移動します。同じTABLE
文を、保持していたExtractグループの証跡を読み取るデータ・ポンプに移動します。すべてのMAP
文を、保持されたデータ・ポンプに関連付けられているリモート証跡を読み取る新規の調整Extractグループに移動します。すべてのMAP
文が1つのパラメータ・ファイルにまとめられたら、それらを編集して、調整済Replicatがサポートされるようにスレッドの指定を追加します。(事前に行っておくことも可能です。)その後、Replicatグループを削除して、これを同じ名前を使用して調整モードでもう一度追加します。
注意: この手順で指示されるまで、Replicatグループを作成しないでください。 |
すべてのExtractグループ、データ・ポンプおよびReplicatグループの現在のパラメータ・ファイルをバックアップします。これらは編集されます。
Oracle GoldenGateディレクトリの外に、作業ディレクトリを作成します。このディレクトリを使用して、新しいバージョンのパラメータ・ファイルを作成およびステージングします。必要な場合は、ソース・システムとターゲット・システムに作業ディレクトリを作成します。
作業ディレクトリで、調整済Replicatのパラメータ・ファイルを作成します。すべてのReplicatグループのアクティブなパラメータ・ファイルから、このパラメータ・ファイルにMAP
パラメータをコピーし、スレッドの指定と、必要な調整済Replicat構成をサポートするその他のパラメータを追加します。
複数のプライマリExtractグループを使用している場合、1つのグループを選択して保持し、次にそれの現在のパラメータ・ファイルのコピーを作業ディレクトリに保存します。
すべてのTABLE
文を、他のExtractグループから、保持しているライマリExtractの新規パラメータ・ファイルにコピーします。
作業ディレクトリで、リンクされているデータ・ポンプのパラメータ・ファイルのコピーを、保持しているライマリExtractに保存します。
すべてのTABLE
文を、他のデータ・ポンプから、保持されているデータ・ポンプのコピーされたパラメータ・ファイルにコピーします。
ソース・データベースに、単純なINSERT
文を実行できる単純なダミー表を作成します。この手順では、schema.event
という名前を使用します。
構成パラメータを追加する必要をなくすため、ターゲット・システムに同じ表を作成します。
すべてのプライマリおよびデータ・ポンプのExtractグループのアクティブなパラメータ・ファイル(コピーされたものではない)を編集し、次のEVENTACTIONS
パラメータをそれぞれに追加します。データ表に対してPASSTHRU
パラメータを使用してデータ・ポンプが構成されている場合、ダミー表を取得するTABLE
文の前にNOPASSTHRU
を追加します。
NOPASSTHRU TABLE schema.event, EVENTACTIONS(STOP);
すべてのReplicatグループのアクティブなパラメータ・ファイル(コピーは不可)を編集して、それぞれに次のEVENTACTIONS
パラメータを追加します。
MAP schema.event, TARGET schema.event, EVENTACTIONS(IGNORE, STOP);
次の順序で、Oracle GoldenGateプロセスを正常に停止します。
すべてのReplicatプロセスを停止します。
すべてのデータ・ポンプを停止します。
すべてのExtractプロセスを停止します。
EVENTACTIONS
パラメータが有効になるように、次の順序でOracle GoldenGateプロセスを再起動します。
すべてのExtractプロセスを起動します。
すべてのデータ・ポンプを起動します。
すべてのReplicatプロセスを起動します。
ソース・システムで、INSERT
文が1つ含まれるschema.event
表にトランザクションを発行します。必ずトランザクションをコミットしてください。
GGSCIで、コマンドによってすべてのプロセスがSTOPPED
と表示されるまで、ソース・システムのすべてのプライマリExtractプロセスおよびデータ・ポンプ・プロセスにSTATUS
コマンドを発行し、同じコマンドをターゲット・システムのすべてのReplicatプロセスに発行します。
STATUS EXTRACT * STATUS REPLICAT *
保持しているプライマリExtractおよびデータ・ポンプのアクティブなパラメータ・ファイルを、作業ディレクトリの新しいパラメータ・ファイルと置き換えます。
不要なExtractおよびデータ・ポンプ・グループと、そのパラメータ・ファイルを削除します。
DBLOGIN
コマンドを使用して、ターゲット・データベースにログインします。
すべてのReplicatグループおよびそれらのアクティブなパラメータ・ファイルを削除します。
新しい調整済Replicatパラメータ・ファイルを、作業ディレクトリからOracle GoldenGateディレクトリにコピーするか移動します。
GGSCIで、データ・ポンプにINFO EXTRACT
コマンドを発行し、出力(リモート)証跡での書込みチェックポイントの位置をメモします。
INFO EXTRACT pump
, DETAIL
次のパラメータを使用して、新しい調整済Replicatグループを追加します。
ADD REPLICATgroup
, EXTTRAILtrail
, EXTSEQNOsequence_number
, EXTRBArba
, COORDINATED MAXTHREADSnumber
説明:
group
は、調整済Replicatグループの名前です。この名前は、このグループ用に作成された新しいパラメータ・ファイルの名前と一致する必要があります。
EXTTRAIL
trail
は、データ・ポンプの書込み先の証跡の名前です。
EXTSEQNO
sequence_number
は、データ・ポンプに発行したINFO EXTRACT
から返された書込みチェックポイントに表示されている証跡の順序番号です。
EXTRBA
rba
は、INFO EXTRACT
から返された書込みチェックポイントに表示されている証跡の相対バイト・アドレスです。同時に、これらは、証跡内の正しい位置で処理を再開するように、Replicatの位置を指定します。
MAXTHREADS
の数字は、このグループで許可されている最大スレッド数を指定します。この値は、パラメータ・ファイルで指定されたスレッド数に対して適切である必要があります。
プライマリExtractグループを起動します。
データ・ポンプ・グループを起動します。
調整済Replicatグループを起動します。
この項では、スレッドの調整および新しいスレッドまたは異なるスレッド間でのワークロードの再パーティション化を行う手順について説明します。MAP
文のTHREAD
句またはTHREADRANGE
句のパーティション指定に変更を行う前に、STOP REPLICAT
コマンドを使用して、調整Replicatを正常に停止する必要があります。正常に停止すると、指定されたポイントの証跡内の異なる場所にあるすべてのスレッドが、操作をすべて終了し、共通の証跡の場所に到達していることが保証されます。
起動時に、最後に行われた停止が正常ではなく、MAP
文のパーティション化が異なるスレッド数を含めるよう変更されていた(スレッドが追加または削除されていた)ことが検出される場合、Replicatはエラーを発行して異常終了します。ただし、パラメータ・ファイル内で同じスレッドが保持されていても、異なるMAP
文で単純な再配置が行われた場合、Replicatは警告を発行し、異常終了はしません。この場合、前回の実行からの、スレッドからワークロードへの割当ての継続性を保証する方法がないため、レコードの欠落や重複が発生することがあります。
次に、この状況の例を示します。
元のパーティション化スキームは次のとおりです。
MAP source, target, THREADRANGE(1-5); MAP source1, target1, THREADRANGE(6-10);
元のスキームを次のように再パーティション化すると、警告のみが発生します。
MAP source, target, THREADRANGE(1-4); MAP source1, target1, THREADRANGE(5-10);
この項では、Replicatが正常に停止してから再パーティション化を実行する手順、および異常停止してから再パーティション化を実行する際にReplicatの継続性のリカバリを試行する手順について説明します。
調整モードでは、Replicatグループに対して次のタスクを実行できます。
20.12.1項「ワークロードの計画済の再パーティション化の実行」
20.12.2項「計画外の再パーティション化後のReplicatのリカバリ」
計画済の再パーティション化とは、Replicatが正常に停止できた後で、更新されたスレッドのパーティション化を含む新しいパラメータ・ファイルを使用してReplicatを再起動する場合です。正常な停止によって、すべてのスレッドが、証跡内の共通のチェックポイントの位置に到達することができます。その時点で、次の実行での新しいパーティション化スキームを適用できます。この手順でReplicatが正常に停止しなかった場合(適用エラーが発生した場合など)、20.12.3項の手順を使用して、スレッドを再同期してから再パーティション化を行ってください。
GGSCIを実行します。
Replicatを停止します。
STOP REPLICAT group
パラメータ・ファイルを編集のために開きます。
EDIT PARAMS group
MAP
文のTHREAD
またはTHREADRANGE
指定に、必要な変更を行います。
パラメータ・ファイルを保存して閉じます。
Replicatを起動します。
START REPLICAT group
計画外の再パーティション化とは、Replicatが正常に停止できなかった後で、更新されたスレッドのパーティション化を含む新しいパラメータ・ファイルを使用してReplicatを再起動する場合です。このシナリオでは、一部またはすべての古いスレッドが、操作を終了できず、共通のチェックポイントに到達できていません。再起動時に、調整スレッドは古いパーティション化スキームを適用しようとするため、Replicatはエラーで異常終了します。次のいずれかの方法で、調整Replicatグループをこの状況からリカバリできます。
自動保存されたパラメータ・ファイルのコピーを使用します。
HANDLECOLLISIONS
を使用して、低基準値から再処理します。
この手順では、すべてのスレッドを低基準値の位置に再配置します。これは、すべてのスレッドで実行された最も古いチェックポイントの位置です。言い換えると、低基準値の位置は、異常停止する前に、最も低速なスレッドによって処理された最後のレコードです。Replicatを起動すると、スレッドは、Replicatの停止前に処理していた操作を再処理し、HANDLECOLLISIONS
パラメータは、高速なスレッドが異常停止前に適用した操作を再処理する際に発生した重複レコードおよび欠落レコードのエラーに対処します。
HANDLECOLLISIONS
パラメータをReplicatパラメータ・ファイルに追加します。THREADS
オプションを使用する必要はありません。
Replicatグループ全体(調整スレッド)に対してINFO REPLICAT
コマンドを発行します。チェックポイントのRBAを記録します。これが低基準値の値です。この出力では、Group Name
列の下にアクティブなスレッドのIDも表示されます。これらも同様に記録します。
INFO REPLICAT group
GGSCI (slc03jgo) 3> info ra detailREPLICAT RA Last Started 2013-05-01 14:15 Status ABENDEDCOORDINATED Coordinator MAXTHREADS 15Checkpoint Lag 00:00:00 (updated 00:00:07 ago)Process ID 11445Log Read Checkpoint File ./dirdat/withMaxTransOp/bg000001 2013-05-02 07:49:45.975662 RBA 44704Lowest Log BSN value: (requires database login)Active Threads: ID Group Name PID Status Lag at Chkpt Time Since Chkpt1 RA001 11454 ABENDED 00:00:00 00:00:01 2 RA002 11455 ABENDED 00:00:00 00:00:04 3 RA003 11456 ABENDED 00:00:00 00:00:01 5 RA005 11457 ABENDED 00:00:00 00:00:02 6 RA006 11458 ABENDED 00:00:00 00:00:04 7 RA007 11459 ABENDED 00:00:00 00:00:04
各処理スレッドIDに対してINFO REPLICAT
コマンドを発行し、各スレッドのRBAの位置を記録します。最も高いRBAを記録します。これがReplicatグループの高基準値です。
INFO REPLICAT threadID
info ra002
REPLICAT RA002 Last Started 2013-05-01 14:15 Status ABENDEDCOORDINATED Replicat Thread Thread 2Checkpoint Lag 00:00:00 (updated 00:00:06 ago)Process ID 11455
Log Read Checkpoint File ./dirdat/withMaxTransOp/bg000001 2013-05-02 07:49:15.837271 RBA 45603
調整スレッド(スレッドIDなしでReplicat全体)に対してALTER REPLICAT
コマンドを発行し、記録した低基準値RBAに位置指定します。
ALTER REPLICATgroup
EXTRBAlow_watermark_rba
Replicatを起動します。
START REPLICAT group
記録した高基準値
より高いRBAが表示されるまで、基本のINFO REPLICATコマンドを発行します。HANDLECOLLISIONS
は、以前に適用されたトランザクションにより発生するコリジョンに対処します。
INFO REPLICAT group
Replicatを停止します。
STOP REPLICAT group
HANDLECOLLISIONS
パラメータを削除またコメントアウトします。
Replicatを起動します。
START REPLICAT group
Replicatが正常に停止する前にパラメータ・ファイルが編集されるたびに、元のパラメータ・ファイルのコピーが保存されます。このパラメータ・ファイルに戻して、すべてのスレッドが最新のチェックポイントの位置にあったスレッドに対応するように、スレッドを再同期できます。スレッドを同期すると、新しいパラメータ・ファイルに切り替えてから、Replicatを起動できます。
新しいパラメータ・ファイルを別の名前に保存してから、保存されている元のパラメータ・ファイルを正しい名前(グループ名と同じ)に変更します。保存されたパラメータ・ファイルは、接尾辞が.backup
で、Oracle GoldenGateのインストール・ディレクトリのdirprm
サブディレクトリに格納されます。
次のコマンドを発行して、Replicatスレッドを最大のチェックポイントの位置に同期します。このコマンドによって、Replicatが自動的に起動され、スレッドが最大のチェックポイントの位置に到達するまでスレッドが実行されます。
SYNCHRONIZE REPLICAT group
STATUS REPLICAT
コマンドを、Replicatが正常に停止したことが表示されるまで発行します。
STATUS REPLICAT group
元のパラメータ・ファイルを別の名前に保存してから、新しいパラメータ・ファイルをグループ名に変更します。
Replicatを起動します。
START REPLICAT group
Replicatグループが異常停止した場合、すべてのスレッドが証跡内の共通のチェックポイントの位置に到達するわけではありません。異常停止が発生するのは、STOP REPLICAT
を!
オプションとともに発行した場合、KILL REPLICAT
コマンドを発行した場合、またはReplicat、データベース、その他のローカル・プロセスに関連する一時的なエラーが発生した場合です。異常停止後の証跡内の同じ位置にスレッドをリストアし、正しいチェックポイントの位置からReplicatを再起動できます。
この手順では、リストアの位置は高基準値です。これは、すべてのスレッドで実行された最新のチェックポイントの位置(異常停止する前に、最も高速なスレッドによって処理された最後のレコード)です。Replicatを起動する前に、(異なるスレッドや新しいスレッドの間でワークロードを再パーティション化するためなどに)パラメータ・ファイルに変更を行うことができます。スレッドは同期状態から起動できるため、再パーティション化は、Replicatの起動後に切れ目なく有効になります。
GGSCIを実行します。
Replicatスレッドを最大のチェックポイントの位置に同期します。Replicatは同期を実行してから停止します。
SYNCHRONIZE REPLICAT group
(オプション) 異なるスレッドや新しいスレッドの間でワークロードを再パーティション化するには、パラメータ・ファイルを編集のために開き、MAP
文のTHREAD
またはTHREADRANGE
指定に必要な変更を行います。
EDIT PARAMS group
パラメータ・ファイルを保存して閉じます。
Replicatを起動します。
START REPLICAT group
この手順では、Extractチェックポイント・ファイル、証跡、またはその両方が破損したり、Extractの起動を妨げたり、特定の状況(ファイル・システムの破損またはシステム障害など)からOracle GoldenGateをリカバリできます。これにより、システムのリストア後に、プライマリExtractのトランザクション・ログに安全な開始位置を確立できます。また、証跡内の正しいExtract書込み位置から読取りを行い、Replicatがすでにターゲットに適用したトランザクションをフィルタで除外するために、ダウンストリーム・データ・ポンプおよびReplicatを再配置する方法が示されます。
Extractは、ログ開始順序番号またはLOGBSNを証跡ファイルに渡します。BSNは、Extractメモリーで保持される最も古い未コミット・トランザクションを識別するネイティブなデータベース順序番号です。たとえば、OracleインストールでのBSNは、Oracleシステム変更番号(SCN)です。各証跡ファイルには、その証跡ファイルのすべてのトランザクションの最も低いLOGBSN
の値が含まれています。LOGBSN
の値がわかると、Extractを正しい読取り位置で再配置して、適切なトランザクションが証跡に再生成され、Replicatに伝播されることを確認できます。
注意: Oracle RAC環境では、すべてのスレッドの最も低いSCNがReplicatに送信されます。すでにReplicatでコミットされているトランザクションは、起動時に重複として処理されます。ただし、特定のしきい値を過ぎてアイドル状態になっているスレッドは、Extractが再起動時にログ・ストリーム内をあまりにも後ろに戻って読み取る必要をなくすために、BSN値用とはみなされません。 |
LOGBSN
を計算する際には、制限リカバリ・チェックポイントは考慮されません。Extractチェックポイント・ファイルに影響を及ぼした障害は、永続化された制限リカバリ・データ・ファイルおよび制限リカバリ・チェックポイント情報の損失も含まれます。
示された順序で次の手順に従って、Oracle GoldenGateプロセスをリカバリします。
ターゲット・システムのGGSCIで、DBLOGIN
コマンドを発行します。
DBLOGIN {USERIDReplicat_user
| USERIDALIASalias_of_Replicat_user
}
ターゲットで、INFO REPLICAT
コマンドをDETAIL
オプションとともに発行して、LOGBSN
の値を取得します。
INFO REPLICAT group, DETAIL
BSNは、次のような行として出力に含まれます。
Current Log BSN value: 1151679
(クラシック・キャプチャ・モードのみ。統合キャプチャ・モードを使用している場合はスキップします。)ソース・データベースを問い合せて、前の手順で特定したLOGBSN
の値を含むトランザクション・ログ・ファイルの順序番号を探します。この例では、LOGBSN
の値が1855798であると仮定し、LOGBSN
の値を含むトランザクション・ログの順序番号が163であることを示しています。
SQL> select name, thread#, sequence# from v$archived_log where 1855798 between first_change# and next_change#; NAME THREAD# SEQUENCE# ------------------------------------- ---------- ----------/oracle/dbs/arch1_163_800262442.dbf 1 163
GGSCIで次のコマンドを発行して、LOGBSN
の開始位置にプライマリExtractを再配置します。
(クラシック・キャプチャ・モード)
ALTER EXTRACTgroup
EXTSEQNO 163 ALTER EXTRACTgroup
EXTRBA 0 ALTER EXTRACTgroup
ETROLLOVER
(統合キャプチャ・モード)
ALTER EXTRACTgroup
SCN 1151679 ALTER EXTRACTgroup
ETROLLOVER
注意: 統合モードの場合、Extractがトランザクション・ストリーム内をどの程度戻ることができるかについて制限があります。必要なSCNが使用できなくなっている場合、ALTER EXTRACT コマンドは失敗します。 |
GGSCIで次のコマンドをプライマリExtractに発行して、Extractの書込みチェックポイント
の新しい順序番号を表示します。このコマンドでは、Extractが新規データの書込みを開始する証跡およびRBAが表示されます。ロールオーバーが発行されたため、この例のファイル番号7では、開始ポイントは、新規証跡ファイルの最初(RBA 0)です。
INFO EXTRACT group
SHOWCH
Sequence #: 7
RBA: 0
GGSCIで次のコマンドを発行して、ダウンストリーム・データ・ポンプを再配置し、新規出力証跡ファイルを開始します。
ALTER EXTRACTpump
EXTSEQNO 7 ALTER EXTRACTpump
EXTRBA 0 ALTER EXTRACTpump
ETROLLOVER
GGSCIで次のコマンドをデータ・ポンプExtractに発行して、データ・ポンプ書込みチェックポイントの新しい順序番号(この例では証跡番号9)を表示します。
INFO EXTRACT pump
SHOWCH
Sequence #: 9
RBA: 0
データ・ポンプの新しい書込みチェックポイントで証跡の読取りを開始するように、Replicatを再配置します。
ALTER REPLICATgroup
EXTSEQNO 9 ALTER REPLICATgroup
EXTRBA 0
プライマリExtractおよびデータ・ポンプを起動します。
START EXTRACTgroup
START REPLICATgroup
GGSCIで次のコマンドを発行して、Replicatを起動します。Replicatが統合モードで動作している場合(Oracleターゲットのみ)、FILTERDUPTRANSACTIONS
オプションを省略します。統合Replicatは、重複したトランザクションを透過的に処理します。
START REPLICAT group
[, FILTERDUPTRANSACTIONS]
注意: LOGBSN は、トランザクションを再処理するのに間に合うようにExtractを再設定するために必要な情報を提供します。Extractは、Replicatによってすでに適用された少量のデータを再生成する可能性があるため、Replicatによるなんらかのフィルタリングが必要です。FILTERDUPTRANSACTIONS は、実行の最初に重複を検出およびフィルタリングするようにReplicatに指示します。 |