17 管理操作の実行
内容は次のとおりです。
17.1 アプリケーション・パッチの実行
通常、アプリケーション・パッチおよびアプリケーション・アップグレードでは、新規オブジェクトの追加や既存オブジェクトの変更などを伴うDDLが実行されます。Oracle GoldenGate環境でアプリケーションのパッチまたはアップグレードを適用するには、次のいずれかを実行します。
-
使用中のデータベースのタイプに対するDDLレプリケーションがOracle GoldenGateでサポートされている場合は、DDLレプリケーションを使用すると、レプリケーション・プロセスを停止せずにDDLをレプリケートできます。この方法を使用するには、ソース表とターゲット表の構造が同一である必要があります。
-
レプリケーションを継続させるための適切なステップを踏んだ後、ソースとターゲットの両方でパッチまたはアップグレードを手動で適用できます。
Oracle GoldenGateを使用してパッチのDDLをレプリケートする手順
-
ある程度時間をかけてOracle GoldenGateのDDLサポートについて学習し、DDLサポートのインストールと構成を行います(まだ行っていない場合)。このドキュメントで、使用中のデータベースに関する指示を参照してください。DDL環境を整えておけば、将来パッチやアップグレードを適用するのが容易になります。
-
アプリケーションのパッチまたはアップグレードによって追加される新規オブジェクトをデータ・レプリケーションに含める場合、必ずそれらのオブジェクトを
DDL
パラメータ文に追加します。TABLE
文およびMAP
文に新しいオブジェクトを追加するには、「Oracle GoldenGate構成への表の追加」の手順を参照してください。 -
アプリケーションのパッチまたはアップグレードによってトリガーまたはカスケード制約がインストールされる場合、ターゲットで実行されるDMLと、ソースのトリガーまたはカスケード操作からレプリケートされる同じDDLとの間でコリジョンが発生しないように、ターゲットでそれらのオブジェクトを無効化します。
ソースおよびターゲットでパッチを手動で適用する手順
-
ソース・データベースへのアクセスを停止します。
-
Extractがトランザクション・ログに残っているトランザクション・データの取得を終了するまで待機します。Extractの終了を確認するには、
EOFに到達した
ことを示すメッセージが戻されるまでGGSCIで次のコマンドを発行します。SEND EXTRACT
group
GETLAG -
Extractを停止します。
STOP EXTRACT
group
-
ソースに対するパッチの適用を開始します。
-
データ・ポンプ(使用している場合)およびReplicatがそれぞれの証跡に含まれるデータの処理を終了するまで待機します。それぞれの終了を確認するには、
EOFに到達した
ことを示すメッセージが戻されるまで次のコマンドを使用します。SEND EXTRACT
group
GETLAG SEND REPLICATgroup
GETLAG -
データ・ポンプおよびReplicatを停止します。
STOP EXTRACT
group
STOP REPLICATgroup
この時点で、ソースからレプリケートされたトランザクション変更はすべてターゲットに適用されたため、ソースとターゲットのデータは同一となります。
-
ターゲットにパッチを適用します。
-
パッチによって表の定義が変更された場合、ソース表に対しDEFGENを実行して更新後のソース定義を生成し、ターゲット・システムにある既存のソース定義ファイルの古い定義を新しい定義に置き換えます。
-
ユーザー・アクティビティの取得を再開する準備が整ったら、Oracle GoldenGateプロセスを起動します。
親トピック: 管理操作の実行
17.2 トランザクション・ログの初期化
トランザクション・ログを初期化する場合、最初にすべてのデータをOracle GoldenGateによって処理し、次にExtractグループとその関連証跡を削除してから再度追加する必要があります。
親トピック: 管理操作の実行
17.3 システムの停止
メンテナンスや他のOracle GoldenGateに影響する作業のためにシステムを停止する場合、これらのステップに従って、Extractで確実にすべてのトランザクション・ログ・レコードを処理します。そうしないと、同期データが失われる可能性があります。
親トピック: 管理操作の実行
17.4 データベース属性の変更
この項では、データベースの表および構造に対して実行される管理操作について説明します。
内容は次のとおりです。
- データベース・メタデータの変更
- Oracle GoldenGate構成への表の追加
- ソースとターゲットの間の表属性の調整
- DB2 z/OSの表の列を追加するALTER TABLEの実行
- ソース表の削除および再作成
- クラシック・キャプチャを使用する場合のOracle RACスレッド数の変更
- ORACLE_SIDの変更
- アーカイブ・ログの消去
- DB2表の再編成(z/OSプラットフォーム)
親トピック: 管理操作の実行
17.4.1 データベース・メタデータの変更
この手順は、ソース・データベースの次のメタデータの変更時にReplicatエラーを防止するために必要です。
-
データベース文字セット
-
国の文字セット
-
ロケール
-
タイムゾーン
-
オブジェクト名の大/小文字区別
この手順を実行せずにこれらの変更を行った場合、次のエラーが発生します。
2013-05-26 20:10:09 ERROR OGG-05500 Detected database metadata mismatch between current trail file ./dirdat/_p/v1000000003 and the previous sequence. *DBTIMEZONE: [GMT]/[UTC].
この手順では、Extractを停止し、次に新しい証跡ファイルを作成します。新しいデータベース・メタデータは、変更後に開始したトランザクションを持つこの新しいファイルに含まれます。
親トピック: データベース属性の変更
17.4.2 Oracle GoldenGate構成への表の追加
この手順では、Oracle GoldenGateのDDLサポート機能が使用されていない、または使用中のデータベースでサポートされていないと仮定しています。
ノート:
OracleおよびMySQLのデータベースの場合は、この手順を使用するかわりに、Oracle GoldenGateのDDLサポート機能を有効化し、新しい表を追加するDDLを自動的に取得して適用できます。このドキュメントで、使用中のデータベースに該当する指示を参照してください。
始める前に、次のステップに目を通してください。このプロセスは、新しい表がTABLEパラメータのワイルドカードに一致するかどうかと、名前またはデータ定義をターゲットでマップする必要があるかどうかによって、若干変わります。
Oracle GoldenGate構成への表の追加の前提条件
-
この手順では、ソース表とターゲット表が空であるか、同一の(すでに同期されている)データを含んでいると仮定しています。
-
DBLOGIN
コマンドとADD TRANDATA
コマンドを使用する可能性があります。この手順を開始する前に、『Oracle GoldenGateリファレンス』を参照し、使用中のデータベースでのこれらのコマンドの正しい使用方法を確認してください。
Oracle GoldenGate構成に表を追加する手順
親トピック: データベース属性の変更
17.4.3 ソースとターゲットの間の表属性の調整
列やパーティションの追加または変更、サプリメンタル・ロギング詳細の変更(Oracle)など、Oracle GoldenGate構成内のソース表の属性を変更する場合は、次の手順に従ってください。ここでは、レプリケーション・レイテンシを発生させずにターゲット表に同じ変更を加える方法を示します。
ノート:
「DB2 z/OSの表の列を追加するALTER TABLEの実行」も参照してください。
ノート:
この手順では、Oracle GoldenGateのDDLサポート機能が使用されていない、または使用中のデータベースでサポートされていないと仮定しています。OracleおよびMySQLのデータベースの場合は、この手順を使用するかわりに、Oracle GoldenGateのDDLサポート機能を有効化してDDLの変更をターゲットに伝播できます。
親トピック: データベース属性の変更
17.4.4 DB2 z/OSの表の列を追加するALTER TABLEの実行
再配列された行形式で1つ以上の可変長の列を含む表に、固定長の列を追加する場合、その表を静止できるかどうかに応じて次のいずれかの手順を実行する必要があります。
表を静止できる場合
-
Extractが静止前に発生したトランザクションの取得を終了するまで待機します。
-
表を変更して列を追加します。
-
表領域を再編成します。
-
Extractを再起動します。
-
表のアクティビティを再開します。
表を静止できない場合
- Extractを停止します。
- パラメータ・ファイルの
TABLE
文から表を削除します。 - Extractを再起動します。
- 表を変更して列を追加します。
- 表領域を再編成します。
- Extractを停止します。
- 表を
TABLE
文に再度追加します。 - ソース表とターゲット表を再同期します。
- Extractを起動します。
- 表のアクティビティを再開します。
親トピック: データベース属性の変更
17.4.6 クラシック・キャプチャを使用する場合のOracle RACスレッド数の変更
Oracleのクラシック・キャプチャ・モードのExtractに有効です。Extractがクラシック・キャプチャ・モードで動作する場合、 Oracle RACクラスタのREDOスレッドの数が変更されたら、必ずExtractグループを削除して再度追加する必要があります。Extractグループを削除して追加するには、次のステップを実行します。
親トピック: データベース属性の変更
17.4.7 ORACLE_SIDの変更
ORACLE_SID
およびORACLE_HOME
は、オペレーティング・システム・レベルの環境変数を修正せずに変更できます。変更対象がソース・データベースとターゲット・データベースのどちらであるかに応じて、ExtractまたはReplicatのパラメータ・ファイルで次のパラメータを設定します。その後、パラメータの変更を反映するため、ExtractまたはReplicatを停止して再起動します。
SETENV (ORACLE_HOME=location
) SETENV (ORACLE_SID='SID
')
親トピック: データベース属性の変更
17.4.8 アーカイブ・ログの消去
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で不要になったすべてのアーカイブ・ログを消去するシェル・スクリプトを記述できます。その番号よりも前のすべてのアーカイブ・ログは、安全に削除できます。
親トピック: データベース属性の変更
17.4.9 DB2表の再編成(z/OSプラットフォーム)
IBM社のREORGユーティリティを使用して圧縮表領域が含まれるDB2表を再編成する場合、その表がOracle GoldenGateで処理中であれば、KEEPDICTIONARY
オプションを指定してください。これにより、REORGユーティリティによって圧縮ディクショナリが再作成されることを防止します。圧縮ディクショナリが再作成されると、変更前に書き込まれたログ・データを解凍できなくなり、Extractは異常終了します。別の方法としては、再編成を実行する前に必ず表のすべての変更をOracle GoldenGateで抽出しておきます。そうしないと、表が切り捨てられます。
親トピック: データベース属性の変更
17.5 アクティブな構成へのプロセス・グループの追加
この項では、プロセス・グループの追加方法について説明します。
内容は次のとおりです。
親トピック: 管理操作の実行
17.5.1 作業を開始する前に
ここでの手順では、すでにアクティブである構成に対してプロセス・グループを追加します。各手順は、Oracle GoldenGateの操作経験のあるユーザーによって実行される必要があります。これらの手順では、プロセスを少しの間停止してパラメータ・ファイルを再構成します。これらの手順を実行するユーザーには、次のことが要求されます。
-
Oracle GoldenGate構成の基本コンポーネントに関する知識があること
-
Oracle GoldenGateのパラメータおよびコマンドを理解していること
-
GGSCIにアクセスしてグループおよびパラメータ・ファイルを作成できること
-
特定の状況で使用するパラメータを把握していること
各手順の詳細は、次の項を参照してください。
親トピック: アクティブな構成へのプロセス・グループの追加
17.5.2 アクティブな構成への別のExtractグループの追加
この手順では、既存の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 EXTRACT
group
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 EXTRACT
group
, TRANLOG, BEGINYYYY/MM/DD HH:MI:SS:CCCCCC
-
新規Extractグループの証跡を追加します。
ADD {EXTTRAIL | RMTTRAIL}
trail
, EXTRACTgroup
説明:
-
EXTTRAIL
ではローカル証跡が作成されます。このオプションは、新規Extractグループと組み合せて使用するデータ・ポンプを作成する場合に指定します。パラメータ・ファイルのEXTTRAIL
で指定されている証跡を指定します。証跡を作成したら、ローカル・データ・ポンプを新規Extractグループにリンクする手順に進みます。 -
RMTTRAIL
ではリモート証跡が作成されます。このオプションは、データ・ポンプを使用しない場合に指定します。パラメータ・ファイルのRMTTRAIL
で指定されている証跡を指定します。証跡を作成したら、リモートReplicatを新規データ・ポンプにリンクする手順に進みます
相対名またはフルパス名を指定できます。次に例を示します。
ADD RMTTRAIL dirdat/rt, EXTRACT primary ADD EXTTRAIL c:\ogg\dirdat\lt, EXTRACT primary
-
ローカル・データ・ポンプを新規Extractグループにリンクする手順
-
ソース・システムで、データソースとして
EXTTRAIL
証跡を使用し、データ・ポンプExtractグループを追加します。ADD EXTRACT
pump
, EXTTRAILSOURCEtrail
たとえば:
ADD EXTRACT pump2, EXTTRAILSOURCE dirdat\lt
-
データ・ポンプにパラメータ・ファイルを作成します。
EDIT PARAMS
pump
-
パラメータ・ファイルに現在の構成に応じた適切なExtractパラメータを含め、さらに次のパラメータを含めます。
-
ターゲット・システムを参照する
RMTHOST
パラメータ。 -
新規リモート証跡(この後で指定)を参照する
RMTTRAIL
パラメータ。 -
このデータ・ポンプで処理する表に対応する1つ以上の
TABLE
パラメータ。
-
-
ソース・システムのGGSCIで、データ・ポンプのリモート証跡を追加します。パラメータ・ファイルの
RMTTRAIL
で指定されている証跡名を使用します。ADD RMTTRAIL
trail
, EXTRACTpump
たとえば:
ADD RMTTRAIL dirdat/rt, EXTRACT pump2
-
「リモートReplicatを新規データ・ポンプにリンクするステップ」でのステップに従います。
リモートReplicatを新規データ・ポンプにリンクする手順
親トピック: アクティブな構成へのプロセス・グループの追加
17.5.3 アクティブな構成への別のデータ・ポンプの追加
この手順では、ソース・システムのアクティブなプライマリExtractグループにデータ・ポンプExtractグループを追加します。これにより、次の変更が発生します。
-
プライマリExtractは、ローカル証跡に書込みを行います。
-
データ・ポンプは、古い証跡のデータがターゲットに適用された後に、新しいリモート証跡に書込みを行います。
-
古いReplicatグループは、新しいReplicatグループで置き換えられます。
ステップはソース・システムとターゲット・システムで実行します。
親トピック: アクティブな構成へのプロセス・グループの追加
17.5.4 アクティブな構成への別のReplicatグループの追加
この手順では、既存のReplicatグループに新規Replicatグループを追加します。新規Replicatは、元のReplicatと同じ証跡から読取りを行います。
特定の表でのトランザクションの分離やパフォーマンスの向上の目的で、Replicatがクラシック・モードで構成されている場合、複数のReplicatグループが必要になることがあります。同じReplicatグループ内の複数の処理スレッド間でワークロードを分割できるため、調整Replicatを使用している場合は、通常、複数のReplicatグループは必要ありません。Replicatのモードの詳細は、「オンラインReplicatグループの作成」 を参照してください。
ステップはソース・システムとターゲット・システムで実行します。
親トピック: アクティブな構成へのプロセス・グループの追加
17.6 証跡ファイルのサイズの変更
証跡ファイルのサイズを変更するには、証跡がローカル証跡であるかリモート証跡であるかに応じて、ALTER EXTTRAIL
またはALTER RMTTRAIL
コマンドのMEGABYTES
オプションを使用します。ファイル・サイズを変更するには、次の手順を実行します。
親トピック: 管理操作の実行
17.7 クラシックExtractからの切替え
Oracleのみに有効です。
この手順では、既存のExtractグループをクラシック・モードからMicroservicesのExtractに切り替えます。Oracleデータベース用のExtractのモードの詳細は、『Oracle DatabaseのためのOracle GoldenGateの使用』の「キャプチャおよび適用モードの選択」を参照してください。
統合モードへの移行をサポートするには、Extractが実行される場所に応じて、オープンしている最も古いトランザクションの開始を含むトランザクション・ログが、ソースまたはダウンストリーム・マイニング・システムで使用可能である必要があります。
最も古いオープン・トランザクションを判断するには、SHOWTRANS
オプションを指定したSEND EXTRACT
コマンドを発行します。このコマンドのFORCETRANS
またはSKIPTRANS
オプションを使用して、特定のオープン・トランザクションを管理できますが、トランザクションをスキップするとデータが失われる可能性があること、トランザクションを強制的に証跡に書き込むと、トランザクションのロールバック時に、不要なデータが追加される可能性があることを理解している必要があります。これらのオプションを使用する前に、『Oracle GoldenGateリファレンス』のSEND EXTRACT
に関する項で確認してください。
GGSCI> SEND EXTRACTgroup
, SHOWTRANS� GGSCI> SEND EXTRACTgroup
, { SKIPTRANSID
[THREADn
] [FORCE] |� FORCETRANSID
[THREADn
] [FORCE] }�
Extractモードを切り替える手順
親トピック: 管理操作の実行
17.8 非統合モードから統合モードへReplicatの切替え
Oracleのみに有効です。Oracleデータベース用のReplicatのモードの詳細は、『Oracle DatabaseのためのOracle GoldenGateの使用』の「キャプチャおよび適用モードの選択」を参照してください。
この手順では、既存のReplicatグループを非統合モードから統合モードに切り替えます。
ノート:
Extractが失敗からリカバリした直後、またはトランザクション・ログで別の場所に再配置された直後に、Replicatモード間の切替えが発生しないように構成してください。
Replicatを最初に統合モードで起動する際に、START
コマンドでは、Replicatグループをデータベースに登録し、Replicatがアタッチするインバウンド・サーバーを起動します。Replicatグループを統合モードに変換する際に、Oracle GoldenGateチェックポイント表の使用は中止され、リカバリ情報は、インバウンド・サーバーおよび進んでいるチェックポイント・ファイルによって内部的に保持されます。非統合モードに戻す場合に備えて、チェックポイント表を保持できます。
親トピック: 管理操作の実行
17.9 統合モードから非統合モードへReplicatの切替え
Oracleのみに有効です。Oracleデータベース用のReplicatのモードの詳細は、『Oracle DatabaseのためのOracle GoldenGateの使用』の統合Replicatについてに関する項を参照してください。
統合モードから非統合モードにReplicatをいつでも切り替えることができます。この切替えにより、ターゲット・データベースからReplicatグループが自動的に登録解除され、インバウンド・サーバーが削除されます。
ノート:
Extractが失敗からリカバリした直後、またはトランザクション・ログで別の場所に再配置された直後に、Replicatモード間の切替えが発生しないように構成してください。
親トピック: 管理操作の実行
17.10 調整モードへのReplicatの切替え
Oracle GoldenGateでサポートされているすべてのデータベース・タイプに有効です。
この手順では、標準Replicat構成(非調整)を調整された構成にアップグレードします。この手順では、複数のExtractおよびReplicatプロセス間でデータをパーティション化する構成を、1つのExtractおよび1つの調整Replicatを使用する構成で置き換えていることを前提としています。調整Replicatによって、複数のReplicatプロセスを使用する必要がなくなります。調整Replicatには1つの証跡のみが必要であるため、複数のExtractプロセスやデータ・ポンプは必要ありません。
調整Replicatの詳細は、オンライン変更同期の構成を参照してください。
親トピック: 管理操作の実行
17.10.1 手順の概要
この手順では、すべてのReplicatプロセスを証跡の同じ位置で停止させることが可能な、STOP
アクションを指定したEVENTACTIONS
パラメータを使用します。EVENTACTIONS
アクションは、ダミー表へのINSERT
が含まれるトランザクションによってトリガーされます。INSERT
を使用すると、各プロセスがイベント・トランザクションまでを含む、すべての処理を終了して停止します。IGNORE
の追加のイベント・アクションは、複数のReplicatプロセスが同じレコードをターゲットに挿入しようとすることを防ぐために、Replicatに対して指定されます。この手順の結果、ダミー表に対するINSERT
トランザクションが完了した後に、すべてのプロセスがデータ・ストリームの同じ位置で停止します。
プロセスの停止後に、すべてのTABLE
文を1つのプライマリExtractグループに移動します。保持しているExtractグループの証跡を読み取るデータ・ポンプに、同じTABLE
文を移動します。保持されているデータ・ポンプに関連付けられたリモート証跡を読み取る新しい調整済Replicatグループに、すべてのMAP
文を移動します。すべてのMAP
文が1つのパラメータ・ファイルにまとめられたら、それらを編集して、調整済Replicatがサポートされるようにスレッドの指定を追加します。(事前に行っておくことも可能です。)その後、Replicatグループを削除し、同じ名前を使用して調整モードで追加しなおします。
親トピック: 調整モードへのReplicatの切替え
17.11 調整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グループに対して次のタスクを実行できます。
17.11.1 ワークロードの計画済の再パーティション化の実行
計画済の再パーティション化とは、Replicatが正常に停止できた後で、更新されたスレッドのパーティション化を含む新しいパラメータ・ファイルを使用してReplicatを再起動する場合です。正常な停止によって、すべてのスレッドが、証跡内の共通のチェックポイントの位置に到達することができます。その時点で、次の実行での新しいパーティション化スキームを適用できます。この手順でReplicatが正常に停止しなかった場合(適用エラーが発生した場合など)、異常停止後のスレッドの同期の手順を使用して、スレッドを再同期してから再パーティション化を行ってください。
親トピック: 調整Replicat構成の管理
17.11.2 計画外の再パーティション化後のReplicatのリカバリ
計画外の再パーティション化とは、Replicatが正常に停止できなかった後で、更新されたスレッドのパーティション化を含む新しいパラメータ・ファイルを使用してReplicatを再起動する場合です。このシナリオでは、一部またはすべての古いスレッドが、操作を終了できず、共通のチェックポイントに到達できていません。再起動時に、調整スレッドは古いパーティション化スキームを適用しようとするため、Replicatはエラーで異常終了します。次のいずれかの方法で、調整Replicatグループをこの状況からリカバリできます。
-
自動保存されたパラメータ・ファイルのコピーを使用します。
-
HANDLECOLLISIONS
を使用して、低基準値から再処理します。
17.11.2.1 HANDLECOLLISIONSを使用した低基準値からの再処理
この手順では、すべてのスレッドを低基準値の位置に再配置します。これは、すべてのスレッドで実行された最も古いチェックポイントの位置です。言い換えると、低基準値の位置は、異常停止する前に、最も低速なスレッドによって処理された最後のレコードです。Replicatを起動すると、スレッドは、Replicatの停止前に処理していた操作を再処理し、HANDLECOLLISIONS
パラメータは、高速なスレッドが異常停止前に適用した操作を再処理する際に発生した重複レコードおよび欠落レコードのエラーに対処します。
親トピック: 計画外の再パーティション化後のReplicatのリカバリ
17.11.2.2 自動保存されたパラメータ・ファイルの使用
Replicatが正常に停止する前にパラメータ・ファイルが編集されるたびに、元のパラメータ・ファイルのコピーが保存されます。このパラメータ・ファイルに戻して、すべてのスレッドが最新のチェックポイントの位置にあったスレッドに対応するように、スレッドを再同期できます。スレッドを同期すると、新しいパラメータ・ファイルに切り替えてから、Replicatを起動できます。
親トピック: 計画外の再パーティション化後のReplicatのリカバリ
17.12 異常停止後のスレッドの同期
Replicatグループが異常停止した場合、すべてのスレッドが証跡内の共通のチェックポイントの位置に到達するわけではありません。異常停止が発生するのは、STOP REPLICAT
を!
オプションとともに発行した場合、KILL REPLICAT
コマンドを発行した場合、またはReplicat、データベース、その他のローカル・プロセスに関連する一時的なエラーが発生した場合です。異常停止後の証跡内の同じ位置にスレッドをリストアし、正しいチェックポイントの位置からReplicatを再起動できます。
この手順では、リストアの位置は高基準値です。これは、すべてのスレッドで実行された最新のチェックポイントの位置(異常停止する前に、最も高速なスレッドによって処理された最後のレコード)です。Replicatを起動する前に、(異なるスレッドや新しいスレッドの間でワークロードを再パーティション化するためなどに)パラメータ・ファイルに変更を行うことができます。スレッドは同期状態から起動できるため、再パーティション化は、Replicatの起動後に切れ目なく有効になります。
親トピック: 管理操作の実行
17.13 システム障害または破損の後のプライマリExtractの再起動
この手順では、Extractチェックポイント・ファイル、証跡、またはその両方が破損したり、Extractの起動を妨げたり、特定の状況(ファイル・システムの破損またはシステム障害など)からOracle GoldenGateをリカバリできます。これにより、システムのリストア後に、プライマリExtractのトランザクション・ログに安全な開始位置を確立できます。また、証跡内の正しいExtract書込み位置から読取りを行い、Replicatがすでにターゲットに適用したトランザクションをフィルタで除外するために、ダウンストリーム・データ・ポンプおよびReplicatを再配置する方法が示されます。
17.13.1 この手順の詳細
Extractは、ログ開始順序番号またはLOGBSNを証跡ファイルに渡します。BSNは、Extractメモリーで保持される最も古い未コミット・トランザクションを識別するネイティブなデータベース順序番号です。たとえば、OracleインストールでのBSNは、Oracleシステム変更番号(SCN)です。各証跡ファイルには、その証跡ファイルのすべてのトランザクションの最も低いLOGBSN
の値が含まれています。LOGBSN
の値がわかると、Extractを正しい読取り位置で再配置して、適切なトランザクションが証跡に再生成され、Replicatに伝播されることを確認できます。
ノート:
Oracle RAC環境では、すべてのスレッドの最も低いSCNがReplicatに送信されます。すでにReplicatでコミットされているトランザクションは、起動時に重複として処理されます。ただし、特定のしきい値を過ぎてアイドル状態になっているスレッドは、Extractが再起動時にログ・ストリーム内をあまりにも後ろに戻って読み取る必要をなくすために、BSN値用とはみなされません。
LOGBSN
を計算する際には、制限リカバリ・チェックポイントは考慮されません。Extractチェックポイント・ファイルに影響を及ぼした障害は、永続化された制限リカバリ・データ・ファイルおよび制限リカバリ・チェックポイント情報の損失も含まれます。
17.14 自動証跡ファイル・リカバリの使用方法
証跡リカバリ・プロセスには、場合によって、破損または欠落した証跡ファイルをOracle GoldenGateが自動的に再作成する機能があります。Extractポンプの再起動時にポンプが書き込んでいた最後の証跡が存在しない場合、Extractポンプはターゲット・システム上で欠落した証跡ファイルの再作成を試みます。これは、プロセスのチェックポイント情報と前回の有効な証跡ファイルを使用して自動的に実行されます。Replicatプロセスは、新しい証跡リカバリ機能によって再作成された証跡ファイル内に重複データがあると、そのデータを自動的にスキップします。このリカバリは、この順序番号以降にターゲット証跡が1つ以上あり、Extractポンプの読取り元のソース上に証跡ファイルがまだ存在する場合に発生します。
このプロセスは、ターゲット上で破損または無効な証跡ファイルを再作成する場合にも使用できます。破損した証跡ファイルとそれ以降の証跡ファイルを単純に削除してから、Extractポンプを再起動します。この新しい動作では、PURGEOLDEXTRACTS MINKEEP
ルールを適切に構成して、ターゲット環境の再構築に使用できるソースの証跡ファイルが必ず存在するようにしておくことをお薦めします。この機能では、ソースとターゲットの両方のサーバーでOracle GoldenGateリリース12.1.2.1.8以上が使用されている必要があります。NOFILTERDUPTRANSACTIONS
を指定してReplicatを起動すると、Replicatのデフォルト動作が無効になり、ターゲット・データベースに適用済のトランザクションが再度適用される可能性があるため、それは実行しないでください。
親トピック: 管理操作の実行