8 ライブ・スタンバイ・データベース管理のためのOracle GoldenGateの構成

この章では、ライブ・スタンバイ・データベースの管理用にOracle GoldenGateを構成する方法について説明します。

内容は次のとおりです。

ライブ・スタンバイ構成の概要

Oracle GoldenGateでは、アクティブ/パッシブ型の双方向構成がサポートされます。この構成では、Oracle GoldenGateによって、計画停止および計画外停止時のフェイルオーバー用に準備されたライブ・スタンバイ・システムの完全レプリカ・データベースにアクティブ・プライマリ・データベースからデータがレプリケートされます。

この構成では、ライブ・スタンバイ・システム上にアクティブではないOracle GoldenGate Extractグループとアクティブではないデータ・ポンプが存在します。どちらのグループも、スイッチオーバーまたはフェイルオーバーでライブ・スタンバイ・システムにユーザー・アプリケーションが切り替えられるまで停止されています。ユーザー・アクティビティがスタンバイに移動すると、これらのグループはローカル証跡へのトランザクションの取得を開始します。データは、プライマリ・データベースが再度使用可能になるまでディスク上に格納されます。

プライマリ・システムに障害が発生した場合、Oracle GoldenGateのManagerプロセスとReplicatプロセスは、スタンバイから取得されたデータベース・インスタンスと連携して、プライマリ・システムのリカバリ後に2つのシステム間で同等性を回復します。ユーザーは、適切な時点でプライマリ・システムに再度移動され、Oracle GoldenGate構成は将来のフェイルオーバーに備えて再び準備完了モードに戻ります。

ライブ・スタンバイ構成の考慮事項

次の各項では、ライブ・スタンバイ構成の考慮事項について説明します。

信頼できるソース

プライマリ・データベースは、信頼できるソースです。これは、通常の運用モード時にアクティブ・ソースであるデータベースで、初期同期フェーズや後続のすべての再同期時に他のデータベースの導出元になるデータベースです。信頼できるソースのデータは定期的にバックアップしてください。

複製スタンバイ

ライブ・スタンバイのほとんどの実装では、ソース・データベースとターゲット・データベースは、内容および構造において同一です。データのマッピング、変換およびフィルタリングは、通常、この種の構成では適切な処理ではありませんが、ユーザーのビジネス・モデルで必要とされる場合、Oracle GoldenGateではこのような機能もサポートされます。これらの機能をサポートするには、TABLEパラメータおよびMAPパラメータのオプションを使用します。

スタンバイ・システムでのDML

アプリケーションが対応している場合、レポートや問合せにライブ・スタンバイ・システムを使用できますが、DMLは使用できません。Oracle GoldenGate構成のオブジェクトに影響するライブ・スタンバイ・システム上にアクティブなトランザクション型アプリケーションを配置する場合、そのアプリケーションはアクティブ/アクティブ構成で設定する必要があります。詳細は、アクティブ/アクティブ型高可用性のためのOracle GoldenGateの構成を参照してください。

Oracle GoldenGateプロセス

通常の運用モード時には、ライブ・スタンバイ・システムのプライマリExtractおよびデータ・ポンプは停止状態にし、アクティブ・ソースのReplicatも停止状態にします。この処理によって、スタンバイ・システムで誤って発生したDMLがアクティブ・ソースに伝播することを防止します。データをアクティブ・ソースからスタンバイ・システムに移動するExtract、データ・ポンプおよびReplicatのみアクティブにできます。

バックアップ・ファイル

プライマリ・システムとスタンバイ・システムにあるOracle GoldenGateの作業ディレクトリは、定期的にバックアップしてください。このバックアップには、Oracle GoldenGateのインストール・ディレクトリのルート・レベルにインストールされているすべてのファイルと、そのディレクトリ内のすべてのサブディレクトリを含める必要があります。Oracle GoldenGate環境のバックアップを保持しておくことで、プロセス・グループおよびパラメータ・ファイルを再作成する必要がなくなります。

フェイルオーバーの準備

プライマリ・システムとライブ・スタンバイ・システムは、計画済のスイッチオーバーまたは計画外のソース障害の発生時にユーザーが即座にアクセスできるように準備しておく必要があります。高可用性計画の次の構成要素を、各システムですぐに使用できるように準備してください。

  • 挿入、更新および削除権限を付与するスクリプト。

  • (オプション)ライブ・スタンバイ・システムでトリガーおよびカスケード削除制約を有効化するスクリプト。(これらは、使用中のデータベース・タイプに対応するOracle GoldenGateのインストレーションおよび構成のドキュメントに記載された設定手順で無効になっている可能性があります。)

    注意:

    ライブ・スタンバイ・システムでトリガーおよびカスケード削除制約を有効化するスクリプトは、Oracleでは必要ありません。DEFERREFCONSTおよびSUPRESSTRIGGERSパラメータ設定によって制御されます。
  • アプリケーション・サーバーをスイッチオーバーし、アプリケーションを起動して、レプリケーション環境に含まれない必須ファイルをコピーするスクリプト。

  • ソース・システムに障害が発生した場合にユーザーをライブ・スタンバイに移動するためのフェイルオーバー手順。

データベースによって生成される順序値

データベース生成による値(Oracle順序など)がキーの一部として使用される場合、その値の範囲は、重複しないように各システムで異なっている必要があります。アプリケーションが対応している場合、値に位置識別子を追加して強制的に一意性を確保できます。

Oracle Databaseの場合、各データベースで一意性を確保しながら順序をレプリケートするようにOracle GoldenGateを構成できます。順序をレプリケートするには、SEQUENCEパラメータおよびMAPパラメータを使用します。詳細は、『Oracle GoldenGateリファレンス』を参照してください。

追加情報

次のドキュメントには、Oracle GoldenGateの構成に関連する追加情報が記載されています。

  • その他のシステム要件、プロセス構成およびデータベースの設定要件については、使用中のデータベース・タイプに対応するOracle GoldenGateのインストレーションおよび構成のドキュメントを参照してください。これらのガイドはこのマニュアルのはじめににリストされています。

  • Oracle GoldenGateの変更取得および配信グループの構成方法の詳細は、オンライン変更同期の構成を参照してください。

  • Oracle GoldenGateのその他のチューニング・オプションは、Oracle GoldenGateのパフォーマンスのチューニングを参照してください。

  • Oracle GoldenGateのコマンドとパラメータの構文の詳細および説明は、Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。

ライブ・スタンバイ構成の作成

作成するオブジェクトのビジュアル表現は、図8-1を参照してください。

図8-1 ライブ・スタンバイのOracle GoldenGate構成要素

図8-1の説明が続きます
「図8-1 ライブ・スタンバイのOracle GoldenGate構成要素」の説明

両システムの前提条件

両方のシステムで次の前提条件を実行します。

  1. Replicatのチェックポイント表を作成します(Oracle統合Replicatを使用していない場合)。手順については、「チェックポイント表の作成」を参照してください
  2. Managerおよびネットワーク通信の構成の指示に従ってManagerプロセスを構成します。

アクティブ・ソースからスタンバイに対する構成

次の手順では、プライマリ・データベースからデータを取得して、それをスタンバイ・データベースにレプリケートするよう、Oracle GoldenGateを構成します。

プライマリExtractグループを構成する手順

アクティブ・ソースで次の手順を実行します。

  1. ソースで、ADD EXTRACTコマンドを使用してExtractグループを作成します。説明上、このグループをext_1と呼びます。

    ADD EXTRACT ext_1, {TRANLOG | INTEGRATED TRANLOG}, BEGIN time [option[, ...]]
    

    これらのオプション、およびインストール環境によって必要になるその他のADD EXTRACTオプションの詳細は、『Oracle GoldenGateリファレンス』を参照してください。

  2. ADD EXTTRAILコマンドを使用してローカル証跡を追加します。説明上、この証跡をlocal_trail_1と呼びます。

    ADD EXTTRAIL local_trail_1, EXTRACT ext_1
    

    EXTRACTでは、この証跡に書込みを行うext_1グループを指定します。

  3. EDIT PARAMSコマンドを使用してext_1グループのパラメータ・ファイルを作成します。次のパラメータと、データベース環境に適用する他のパラメータを含めます。考えられるその他の必須パラメータの詳細は、使用中のデータベースに対応するOracle GoldenGateインストレーションおよびセットアップ・ガイドを参照してください。

    -- Identify the Extract group:
    EXTRACT ext_1
    -- Specify database login information as needed for the database:
    [SOURCEDB dsn_1][, USERIDALIAS alias]
    -- Log all scheduling columns if using integrated Replicat
    LOGALLSUPCOLS
    -- Specify the local trail that this Extract writes to
    -- and the encryption algorithm:
    ENCRYPTTRAIL algorithm
    EXTTRAIL local_trail_1
    -- Specify sequences to be captured:
    SEQUENCE [container.]owner.sequence;
    -- Specify tables to be captured:
    TABLE [container.]owner.*;

データ・ポンプを構成する手順

アクティブ・ソースで次の手順を実行します。

  1. ADD EXTRACTコマンドを使用してデータ・ポンプ・グループを作成します。説明上、このグループをpump_1と呼びます。

    ADD EXTRACT pump_1, EXTTRAILSOURCE local_trail_1, BEGIN time
    

    EXTTRAILSOURCEでは、データソースとしてlocal_trail_1を指定します。

  2. ADD RMTTRAILコマンドを使用して、スタンバイ・システムに作成するリモート証跡を指定します。

    ADD RMTTRAIL remote_trail_1, EXTRACT pump_1
    

    EXTRACTでは、この証跡に書込みを行うpump_1データ・ポンプを指定します。

    その他のADD RMTTRAILオプションは、『Oracle GoldenGateリファレンス』を参照してください。

  3. EDIT PARAMSコマンドを使用してpump_1グループのパラメータ・ファイルを作成します。次のパラメータと、データベース環境に適用する他のパラメータを含めます。

    -- Identify the data pump group:
    EXTRACT pump_1
    -- Specify database login information as needed for the database:
    [SOURCEDB dsn_1][, USERIDALIAS alias]
    -- Decrypt the data only if the data pump must process it.
    -- DECRYPTTRAIL
    -- Specify the name or IP address of the standby system
    -- and optional encryption of data over TCP/IP:
    RMTHOSTOPTIONS system_2, MGRPORT port_number, ENCRYPT encryption_options
    -- Specify the remote trail and encryption algorithm on the standby system:
    ENCRYPTTRAIL algorithm
    RMTTRAIL remote_trail_1
    -- Specify sequences to be captured:
    SEQUENCE [container.]owner.sequence;
    -- Specify tables to be captured:
    TABLE [container.]owner.*;

Replicatグループを構成する手順

ライブ・スタンバイ・システムで次の手順を実行します。

  1. Replicatのチェックポイント表を作成します(Oracle統合Replicatを使用していない場合)。手順については、「チェックポイント表の作成」を参照してください。
  2. ADD REPLICATコマンドを使用してReplicatグループを作成します。説明上、このグループをrep_1と呼びます。
    ADD REPLICAT rep_1
    [, INTEGRATED | COORDINATED [MAXTHREADS number]]
    , EXTTRAIL remote_trail_1, BEGIN time
    

    EXTTRAILでは、このReplicatが読み取る証跡としてremote_trail_1を指定します。

    これらのオプション、およびインストール環境によって必要になるその他のオプションの詳細は、『Oracle GoldenGateリファレンス』を参照してください。

  3. EDIT PARAMSコマンドを使用してrep_1グループのパラメータ・ファイルを作成します。次のパラメータと、データベース環境に適用する他のパラメータを含めます。考えられるその他の必須パラメータの詳細は、使用中のデータベースに対応するOracle GoldenGateインストレーションおよびセットアップ・ガイドを参照してください。
    -- Identify the Replicat group:
    REPLICAT rep_1
    -- State that source and target definitions are identical:
    ASSUMETARGETDEFS
    -- Specify database login information as needed for the database:
    [TARGETDB dsn_2][, USERIDALIAS alias]
    -- Specify error handling rules:
    REPERROR (error, response)
    -- Specify tables for delivery and threads if using coordinated Replicat:
    MAP [container.|catalog.]owner.table, TARGET owner.table[, DEF template]
    [, THREAD (thread_ID)][, THREADRANGE (thread_range[, column_list])]
    ;

スタンバイからアクティブ・ソースに対する構成

次の手順では、Oracle GoldenGateをパッシブ・モードで構成します。このモードでは、Oracle GoldenGateプロセスは、トランザクション・アクティビティをセカンダリ・システムにスイッチオーバーした後に、セカンダリ・システムからデータを取得して、それをプライマリ・データベースにレプリケートする準備はできていますが、作業は開始されません。

注意:

この手順は、これまでに作成した構成を逆にするイメージです。

プライマリExtractグループを構成する手順

ライブ・スタンバイ・システムで次の手順を実行します。

  1. ソースで、ADD EXTRACTコマンドを使用してExtractグループを作成します。説明上、このグループをext_2と呼びます。

    ADD EXTRACT ext_2, {TRANLOG | INTEGRATED TRANLOG}, BEGIN time [option[, ...]]
    

    これらのオプション、およびインストール環境によって必要になるその他のADD EXTRACTオプションの詳細は、『Oracle GoldenGateリファレンス』を参照してください。

  2. TRANLOG Extract ext_2を起動します。「データ・ループの防止」も参照してください。
  3. ADD EXTTRAILコマンドを使用してローカル証跡を追加します。説明上、この証跡をlocal_trail_2と呼びます。

    ADD EXTTRAIL local_trail_2, EXTRACT ext_2
    

    EXTRACTでは、この証跡に書込みを行うext_2グループを指定します。

  4. EDIT PARAMSコマンドを使用してext_2グループのパラメータ・ファイルを作成します。次のパラメータと、データベース環境に適用する他のパラメータを含めます。考えられるその他の必須パラメータの詳細は、使用中のデータベースに対応するOracle GoldenGateインストレーションおよびセットアップ・ガイドを参照してください。

    -- Identify the Extract group:
    EXTRACT ext_2
    -- Specify database login information as needed for the database:
    [SOURCEDB dsn_2][, USERIDALIAS alias]
    -- Log all scheduling columns if using integrated Replicat
    LOGALLSUPCOLS
    -- Specify the local trail this Extract writes to and the encryption algorithm:
    ENCRYPTTRAIL algorithm
    EXTTRAIL local_trail_2
    -- Specify sequences to be captured:
    SEQUENCE [container.]owner.sequence;
    -- Specify tables to be captured:
    TABLE [container.]owner.*;

データ・ポンプを構成する手順

ライブ・スタンバイ・システムで次の手順を実行します。

  1. ADD EXTRACTコマンドを使用してデータ・ポンプ・グループを作成します。説明上、このグループをpump_2と呼びます。

    ADD EXTRACT pump_2, EXTTRAILSOURCE local_trail_2, BEGIN time
    

    EXTTRAILSOURCEでは、データソースとしてlocal_trail_2を指定します。

  2. ADD RMTTRAILコマンドを使用して、アクティブ・ソース・システムに作成するリモート証跡remote_trail_2を追加します。

    ADD RMTTRAIL remote_trail_2, EXTRACT pump_2
    

    EXTRACTでは、この証跡に書込みを行うpump_2データ・ポンプを指定します。

    その他のADD RMTTRAILオプションは、『Oracle GoldenGateリファレンス』を参照してください。

  3. EDIT PARAMSコマンドを使用してpump_2グループのパラメータ・ファイルを作成します。次のパラメータと、データベース環境に適用する他のパラメータを含めます。

    -- Identify the data pump group:
    EXTRACT pump_2
    -- Specify database login information as needed for the database:
    [SOURCEDB dsn_2][, USERIDALIAS alias]
    -- Decrypt the data only if the data pump must process it.
    -- DECRYPTTRAIL
    -- Specify the name or IP address of the active source system
    -- and optional encryption of data over TCP/IP:
    RMTHOSTOPTIONS system_1, MGRPORT port_number, ENCRYPT encryption_options
    -- Specify remote trail and encryption algorithm on active source system:
    ENCRYPTTRAIL algorithm
    RMTTRAIL remote_trail_2
    -- Specify sequences to be captured:
    SEQUENCE [container.]owner.sequence;
    -- Specify tables to be captured:
    TABLE [container.]owner.*;

Replicatグループを構成する手順

アクティブ・ソースで次の手順を実行します。

  1. ADD REPLICATコマンドを使用してReplicatグループを作成します。説明上、このグループをrep_2と呼びます。
    ADD REPLICAT rep_2
    [, INTEGRATED | COORDINATED [MAXTHREADS number]]
    , EXTTRAIL remote_trail_1, BEGIN time
    

    EXTTRAILでは、このReplicatが読み取る証跡としてremote_trail_2を指定します。

    これらのオプション、およびインストール環境によって必要になるその他のオプションの詳細は、『Oracle GoldenGateリファレンス』を参照してください。

  2. EDIT PARAMSコマンドを使用してrep_2グループのパラメータ・ファイルを作成します。次のパラメータと、データベース環境に適用する他のパラメータを含めます。考えられるその他の必須パラメータの詳細は、使用中のデータベースに対応するOracle GoldenGateインストレーションおよびセットアップ・ガイドを参照してください。
    -- Identify the Replicat group:
    REPLICAT rep_2
    -- State that source and target definitions are identical:
    ASSUMETARGETDEFS
    -- Specify database login information as needed for the database:
    [TARGETDB dsn_1][, USERIDALIAS alias]
    -- Handle collisions between failback data copy and replication:
    HANDLECOLLISIONS
    -- Specify error handling rules:
    REPERROR (error, response)
    -- Specify tables for delivery and threads if using coordinated Replicat:
    MAP [container.|catalog.]owner.table, TARGET owner.table[, DEF template]
    [, THREAD (thread_ID)][, THREADRANGE (thread_range[, column_list])]
    ;

計画済スイッチオーバーでのユーザー・アクティビティの移動

この手順では、データベースに影響しないシステム・メンテナンスなどの手順をプライマリ・システムで実行できるように、計画された安全な方法でユーザー・アプリケーション・アクティビティをプライマリ・データベースからライブ・スタンバイ・システムに移動します。

ライブ・スタンバイへのユーザー・アクティビティの移動

ライブ・スタンバイにユーザー・アクティビティを移動する手順

  1. (オプション)セカンダリ・システムでシステム・メンテナンスを実行する必要がある場合、セカンダリ・システムからプライマリ・システムにユーザーを戻した後に、ここでの手順を使用して即座に、または一定時間後に、その処理を実行できます。いずれにせよ、セカンダリ・システムを停止する必要がある場合は、その時間の長さにかかわらず、次の危険があることに注意してください。
    • プライマリ・システムのローカル証跡は、スタンバイのオフライン中にデータが蓄積するためにディスク領域を使い果す可能性があります。この場合、プライマリExtractは異常終了します。

    • スタンバイのオフライン中にプライマリ・システムに障害が発生すると、機能再開時にデータ変更をライブ・スタンバイに適用できなくなるため、同期状態が破損して、ライブ・スタンバイの完全な再インストールが必要になります。

  2. プライマリ・システムで、ユーザー・アプリケーションを停止します。ただし、このシステムのプライマリExtractおよびデータ・ポンプの実行は継続し、未処理のトランザクション・データをすべて取得します。
  3. プライマリ・システムで、EOFに到達して処理するレコードがなくなったことを示すメッセージが戻されるまで、プライマリExtractで次のコマンドを発行します。このメッセージは、すべてのトランザクションが取得されたことを示します。
    LAG EXTRACT ext_1
    

    注意:

    取得でREDOを読み続けるため、本番以外のワークロードは引き続き稼働します。この場合、本番ワークロードがすでに停止している場合でも、At EOFが返されない可能性があります。

  4. プライマリ・システムで、プライマリExtractプロセスを停止します。
    STOP EXTRACT ext_1
    
  5. プライマリ・システムで、EOFに到達して処理するレコードがなくなったことを示すメッセージが戻されるまで、データ・ポンプで次のコマンドを発行します。このメッセージは、ポンプによってすべての取得データがライブ・スタンバイに送信されたことを示します。
    LAG EXTRACT pump_1
    
  6. ライブ・スタンバイ・システムで、EOF(ファイルの終わり)に到達したことを示すメッセージが戻されるまで、STATUS REPLICATコマンドを発行します。このメッセージで、Replicatによってすべてのデータが証跡からデータベースに適用されたことを確認します。
    STATUS REPLICAT rep_1
    
  7. ライブ・スタンバイ・システムで、Replicatを停止します。
    STOP REPLICAT rep_1
    
  8. ライブ・スタンバイ・システムで、次の操作を実行します。
    • ビジネス・アプリケーションのユーザーに挿入、更新および削除権限を付与するスクリプトを実行します。

    • トリガーおよびカスケード削除制約を有効化するスクリプトを実行します。

    • アプリケーション・サーバーをスイッチオーバーし、アプリケーションを起動して、レプリケーション環境に含まれない必須ファイルをコピーするスクリプトを実行します。

  9. ユーザー・アクティビティをライブ・スタンバイ・システムに切り替えます。
  10. プライマリ・システムで、システム・メンテナンスを実行します。

プライマリ・システムへのユーザー・アクティビティの再移動

プライマリ・システムにユーザー・アクティビティを再移動する手順

  1. ライブ・スタンバイ・システムで、ユーザー・アプリケーションを停止します。ただし、プライマリExtractの実行は継続し、未処理のトランザクション・データをすべて取得します。
  2. プライマリ・システムで、Replicatを起動して、ライブ・スタンバイ・システムからの変更の受信に備えます。
    START REPLICAT rep_2
    
  3. ライブ・スタンバイ・システムで、データ・ポンプを起動して、ローカル証跡に格納されているデータをTCP/IPを通じてプライマリ・システムに移動します。
    START EXTRACT pump_2
    
  4. ライブ・スタンバイ・システムで、EOFに到達して処理するレコードがなくなったことを示すメッセージが戻されるまで、プライマリExtractで次のコマンドを発行します。このメッセージは、すべてのトランザクションが取得されたことを示します。
    LAG EXTRACT ext_2
    
  5. ライブ・スタンバイ・システムで、プライマリExtractを停止します。
    STOP EXTRACT ext_2
    
  6. ライブ・スタンバイ・システムで、EOFに到達して処理するレコードがなくなったことを示すメッセージが戻されるまで、データ・ポンプで次のコマンドを発行します。このメッセージは、ポンプによってすべての取得データがプライマリ・システムに送信されたことを示します。
    LAG EXTRACT pump_2
    
  7. ライブ・スタンバイ・システムで、データ・ポンプを停止します。
    STOP EXTRACT pump_2
    
  8. プライマリ・システムで、EOF(ファイルの終わり)に到達したことを示すメッセージが戻されるまで、 STATUS REPLICATコマンドを発行します。このメッセージで、Replicatによってすべてのデータが証跡からデータベースに適用されたことを確認します。
    STATUS REPLICAT rep_2
    
  9. プライマリ・システムで、Replicatを停止します。
    STOP REPLICAT rep_2
    
  10. プライマリ・システムで、次の操作を実行します。
    • ビジネス・アプリケーションのユーザーに挿入、更新および削除権限を付与するスクリプトを実行します。

    • トリガーおよびカスケード削除制約を有効化するスクリプトを実行します。

    • アプリケーション・サーバーをスイッチオーバーし、アプリケーションを起動して、レプリケーション環境に含まれない必須ファイルをコピーするスクリプトを実行します。

  11. プライマリ・システムで、現在のタイムスタンプに基づいてデータの取得を開始するようにプライマリExtractを変更します。そうしないと、スタンバイ・システムでのユーザーの作業中にすでに取得してレプリケートされている操作を検索するために、Extractで不要な時間が費やされます。
    ALTER EXTRACT ext_1, BEGIN NOW
    
  12. プライマリ・システムで、プライマリExtractを起動してトランザクション変更の取得に備えます。
    START EXTRACT ext_1
    
  13. ユーザー・アクティビティをプライマリ・システムに切り替えます。
  14. (オプション)システム・メンテナンスをライブ・スタンバイ・システムで実行する必要がある場合、プライマリ・システムでデータ・ポンプを起動する前にその処理を即座に実行できます。取得データは、スタンバイのオフライン中にプライマリ・システムに蓄積されることに注意してください。
  15. プライマリ・システムで、データ・ポンプを起動します。
    START EXTRACT pump_1
    
  16. ライブ・スタンバイ・システムで、Replicatを起動します。
    START REPLICAT rep_1

計画外フェイルオーバーでのユーザー・アクティビティの移動

次の各項では、計画外フェイルオーバーでユーザー・アクティビティを移動する方法について説明します。

ライブ・スタンバイへのユーザー・アクティビティの移動

この手順では次の操作を実行します。

  • ユーザー・アクティビティ用のライブ・スタンバイを準備します。

  • プライマリ・システムのすべてのトランザクションがライブ・スタンバイに適用されることを保証します。

  • Oracle GoldenGateをアクティブ化してライブ・スタンバイでトランザクション変更を取得します。

  • ユーザーをライブ・スタンバイ・システムに移動します。

ライブ・スタンバイ・システムで次の手順を実行します。

ライブ・スタンバイにユーザーを移動する手順

  1. Replicatによってすべてのデータが証跡からデータベースに適用されたことを確認するため、EOF(ファイルの終わり)に到達したことを示すメッセージが戻されるまで、STATUS REPLICATコマンドを発行します。
    STATUS REPLICAT rep_1
    
  2. Replicatプロセスを停止します。
    STOP REPLICAT rep_1
    
  3. ビジネス・アプリケーションのユーザーに挿入、更新および削除権限を付与するスクリプトを実行します。
  4. トリガーおよびカスケード削除制約を有効化するスクリプトを実行します。
  5. アプリケーション・サーバーをフェイルオーバーし、アプリケーションを起動して、レプリケーション環境に含まれない必須ファイルをコピーするスクリプトを実行します。
  6. ライブ・スタンバイでプライマリExtractプロセスを起動します。
    START EXTRACT ext_2
    
  7. スタンバイ・システムにユーザーを移動して、作業を開始させます。

    注意:

    スタンバイでデータ・ポンプ・グループを起動しないでください。ユーザー・トランザクションは、ユーザー・アクティビティをプライマリ・システムに戻すまで、同じ場所で蓄積する必要があります。

プライマリ・システムへのユーザー・アクティビティの再移動

この手順では次の操作を実行します。

  • Oracle GoldenGate環境をリカバリします。

  • リストアしたプライマリ・システムにライブ・スタンバイのデータをコピーします。

  • コピーの作成中に発生したユーザー・トランザクションを伝播します。

  • コピーの結果と伝播された変更とを調整します。

  • ユーザーをスタンバイ・システムからリストアしたプライマリ・システムに移動します。

  • ライブ・スタンバイを再度保持するためにレプリケーションを準備します。

プライマリ・システムのリカバリの完了後に、次の手順を実行します。

ソースOracle GoldenGate環境をリカバリする手順

  1. プライマリ・システムで、バックアップからOracle GoldenGateディレクトリをリカバリします。

  2. プライマリ・システムで、GGSCIを実行します。

  3. プライマリ・システムで、プライマリExtractグループを削除します。

    DELETE EXTRACT ext_1
    
  4. プライマリ・システムで、ローカル証跡を削除します。

    DELETE EXTTRAIL local_trail_1
    
  5. プライマリ・システムで、バックアップからリストアしたパラメータ・ファイルと一致するように同じ名前を使用して、プライマリExtractグループを再度追加します。説明上、このグループをext_1と呼びます。この手順によって、Extractのチェックポイントが障害前の状態からクリーンな状態に初期化されます。

    ADD EXTRACT ext_1, {TRANLOG | INTEGRATED TRANLOG}, BEGIN time
    [, THREADS n]
    
    • TRANLOGおよびINTEGRATED TRANLOGの詳細は、『Oracle GoldenGateリファレンス』を参照してください。INTEGRATED TRANLOGにより、Oracleデータベースに対する統合キャプチャが可能になります。

  6. プライマリ・システムで、前と同じ名前を使用してローカル証跡を再度追加します。説明上、この証跡をlocal_trail_1と呼びます。

    ADD EXTTRAIL local_trail_1, EXTRACT ext_1
    
    • EXTRACTでは、この証跡に書込みを行うext_1グループを指定します。

  7. プライマリ・システムで、Managerプロセスを起動します。

    START MANAGER

スタンバイからプライマリ・システムにデータベースをコピーする手順

  1. プライマリ・システムで、トリガーおよびカスケード削除制約を無効化するスクリプトを実行します。

  2. スタンバイ・システムで、データベースのホット・コピーの作成を開始します。

  3. スタンバイ・システムで、コピーが終了したときの時刻を記録します。

  4. スタンバイ・システムで、アプリケーションへのユーザー・アクセスを停止します。すべてのオープン・トランザクションの完了を待機します。

コピー中に作成されたデータ変更を伝播する手順

  1. プライマリ・システムで、Replicatを起動します。

    START REPLICAT rep_2
    
  2. ライブ・スタンバイ・システムで、データ・ポンプを起動します。この操作によって、蓄積されたユーザー・トランザクションをスタンバイからプライマリ・システムの証跡に転送します。

    START EXTRACT pump_2
    
  3. プライマリ・システムで、初期ロード中にユーザーがスタンバイ・システムで生成したすべてのデータ変更が適用されたとわかるまで、INFO REPLICATコマンドを発行します。前に記録した時刻を参照してください。たとえば、コピーが12:05に停止した場合、変更のレプリケーションによってその時刻までデータが適用されていることを確認します。

    INFO REPLICAT rep_2
    
  4. プライマリ・システムで、次のコマンドを発行してHANDLECOLLISIONSパラメータをオフにし、初期ロードのエラー処理を無効化します。

    SEND REPLICAT rep_2, NOHANDLECOLLISIONS
    
  5. プライマリ・システムで、Replicatによってすべてのデータが証跡からデータベースに適用されたことを確認するため、EOF(ファイルの終わり)に到達したことを示すメッセージが戻されるまで、STATUS REPLICATコマンドを発行します。

    STATUS REPLICAT rep_2
    
  6. ライブ・スタンバイ・システムで、データ・ポンプを停止します。この操作によって、ユーザー・トランザクションをスタンバイからプライマリ・システムの証跡に転送することを停止します。

    STOP EXTRACT pump_2
    
  7. プライマリ・システムで、Replicatプロセスを停止します。

    STOP REPLICAT rep_2
    

この時点で、プライマリ・データベースとスタンバイ・データベースは、同期状態に戻っていることが必要です。

(オプション)同期を検証する手順

  1. Oracle GoldenGate Veridataなどの比較ツールを使用して、ソース・データベースとスタンバイ・データベースの同等性について比較します。

  2. Oracle GoldenGate Veridataなどの修復ツールを使用して、非同期状態を修復します。

プライマリ・システムにユーザーを切り替える手順

  1. プライマリ・システムで、ビジネス・アプリケーションのユーザーに挿入、更新および削除権限を付与するスクリプトを実行します。
  2. プライマリ・システムで、トリガーおよびカスケード削除制約を有効化するスクリプトを実行します。
  3. プライマリ・システムで、アプリケーション・サーバーをフェイルオーバーし、アプリケーションを起動して、レプリケーション環境に含まれない必須ファイルをコピーするスクリプトを実行します。
  4. プライマリ・システムで、プライマリExtractプロセスを起動します。
    START EXTRACT ext_1
    
  5. プライマリ・システムで、アプリケーションへのユーザー・アクセスを許可します。