主コンテンツへ
Oracle® Fusion Middleware SQL ServerのためのOracle GoldenGateのインストールおよび構成
12c (12.2.0.1)
E70108-03
目次へ移動
目次

前
次

4 Oracle GoldenGate用のトランザクション・ログの準備

この章では、Oracle GoldenGateによるソース・トランザクション・データの取得をサポートするための、データベース設定とサプリメンタル・ロギングの構成に役立つ情報を説明します。

この章の内容は次のとおりです。

4.1 「データベースをフル・リカバリ・モデルに設定」

Oracle GoldenGateでは、SQL Serverソース・データベースをフル・リカバリ・モデルに設定すること、およびフル・データベース・バックアップが存在することが必要です。

リカバリ・モデルの確認または設定手順:

  1. SQL Server Management Studio for SQL Serverを使用してSQL Serverインスタンスに接続します。
  2. 「Databases」フォルダを展開します。
  3. ソース・データベースを右クリックして、「Properties」を選択します。
  4. 「Options」タブを選択します。
  5. 「Recovery」の下で、モデルを「Full」に設定します(まだ設定されていない場合)。
  6. データベースが単純リカバリだった場合、または一度もフル・データベース・バックアップをとったことがない場合、Extractを配置する前にフル・データベース・バックアップをとります。
  7. 「OK」をクリックします。

4.2 トランザクション・ログのバックアップ

SQL Server用のOracle GoldenGateキャプチャは、2つのモード(リアルタイム・キャプチャ・モードおよびアーカイブ・ログ専用モード)で実行できます。

アーカイブ・ログ専用モードの場合、Extractはトランザクション・ログ・バックアップからのみ読み取ります。

リアルタイム・キャプチャ・モードの場合、2次切捨てポイントの管理の構成方法によって(2次切捨てポイントの管理を参照)、Extractプロセスではログ・バックアップからの情報が必要になることがあります。これは、必要なログ・レコードがオンライン・ログになく、ログ・バックアップにフラッシュされている場合に起こります。

いずれのモードでも、SQL Server用のOracle GoldenGateキャプチャでは、ログ・バックアップ・ファイルが次の条件を満たす必要があります。

  • ログ・バックアップは、BACKUP LOGコマンド(または相当するGUIコマンド)を発行して作成されたネイティブSQL Serverログ・バックアップである必要があります。サードパーティ・ログ・バックアップはサポートされません。

  • ログ・バックアップはネイティブSQL Serverの圧縮機能を使用して圧縮できます。

  • ログ・バックアップはDISKデバイスに作成する必要があります。有効な例は次のとおりです。

    BACKUP LOG dbname TO DISK = "c:\folder\logbackup.trn"
    BACKUP LOG dbname TO DISK = "\\server\share\logbackup.trn"
  • 既存のログ・バックアップを上書きしないでください。

  • ストライプ・ログ・バックアップはサポートされていません。

  • ログ・バックアップを同じディスク・デバイス(またはファイル)に追加することはお薦めできません。圧縮および未圧縮のログ・バックアップを同じデバイスまたはファイルに混在させることはサポートされません。

4.3 ログ・バックアップとバックアップ履歴の保持

Extractを停止する場合、または計画外の停止がある場合は、Extractがチェックポイントから再び起動できるように十分なログ・バックアップおよびバックアップ履歴を(msdbデータベース内に)保持します。Extractは、最も古い未コミットの作業ユニットの初めの箇所が含まれているトランザクション・ログまたはログ・バックアップと、それ以降のすべてのログ・バックアップのデータにアクセスできる必要があります。

処理中にExtractが必要とするデータ(オンライン・ログまたはバックアップ)が保持されていない場合、次のいずれかの修正処理が必要です。

  • Extractを変更して、ログ・データが使用できる後の時点から取得します(さらにターゲットで起こり得るデータ損失を受け入れます)。

  • ソース表とターゲット表を再同期してから、Oracle GoldenGate環境を再開します。

Extractのチェックポイントの位置を決定するには、INFO EXTRACT SHOWCHコマンドを使用します。詳細は、『Oracle GoldenGate for Windows and UNIXリファレンス』を参照してください。

4.4 サプリメンタル・ロギングの有効化

ここに記載されている説明は、SQL Serverのすべてのサポートされているバージョン用のOracle GoldenGateのソース・インストールに適用されます。ADD TRANDATAコマンドを使用してサプリメンタル・ロギングを有効にすると、ターゲットでのSQL操作の再構築に必要な情報をExtractで取得できます。これは、SQL Serverがデフォルトで実行するログよりも多くの情報を持っています。

Oracle GoldenGateで取得されるすべての表に対してADD TRANDATAを発行する必要があります。

ADD TRANDATAでは、SQL Serverのエディションによって、SQL Serverの異なる機能が使用されます。

Enterprise Editionでは、SQL Server用のChange Data Capture (CDC)を使用して、指定された表に対する最小のChange Data Captureオブジェクトを作成します。

Standard Editionでは、SQL Serverトランザクション・パブリケーションが作成され、各表のアーティクルがTRANDATAで有効化されます。

Enterprise Edition:

  • Oracle GoldenGateは、サプリメンタル・ロギングを有効にするために必要以上のCDC表を使用しません。

  • CDCの有効化の一環として、SQL Serverではデータベースごとに2つのジョブを作成します。

    cdc.dbname_capture 
    cdc.dbname_cleanup
    
  • この必須パラメータについてと、このパラメータの2次切捨てポイントに対する影響、およびこれらのSQL Serverジョブの詳細を把握するには、2次切捨てポイントの管理TRANLOGOPTIONSオプションに関する情報を確認する必要があります。

Standard Edition:

  • SQL Server Standard Editionデータベースの表に対してTRANDATAを有効化するための第1要件は、SQL Serverレプリケーション機能がインストールされていること、ディストリビュータが構成されていること、およびディストリビューション・データベースが作成されていることです。

  • Oracle GoldenGateトランザクション・パブリケーションがデータベースに対して作成され、そのデータベースのパブリケーション内に各表のアーティクルが作成されます。アーティクルはディストリビューション・データベースへデータをレプリケートしないように設定されますが、SQL Server Standard Editionに対してサプリメンタル・ロギングを有効にする必要があります。

  • トランザクション・パブリケーションの作成の一環として、データベースに対してSQL Serverログ・リーダー・エージェントジョブが作成されます。ログ・リーダー・エージェントジョブには、instancename-dbname-#というネーミング規則とREPL-LogReaderというジョブ・カテゴリがあります。

  • この必須パラメータについてと、このパラメータの2次切捨てポイントに対する影響、およびこれらのSQL Serverジョブの詳細を把握するには、2次切捨てポイントの管理のTRANLOGOPTIONSオプションに関する情報を確認する必要があります。

サプリメンタル・ロギングの有効化の手順:

この手順には、SQL Serverのシステム管理者(sysadmin)ロールのメンバーであるデータベース・ユーザーが必要です。

  1. ソース・システムで、GGSCIを実行します。

  2. 次のコマンドを発行してデータベースにログインします。

    DBLOGIN SOURCEDB DSN[, {USERID user, PASSWORD password | USERIDALIAS alias}]
    

    説明:

    • SOURCEDB DSNは、SQL Serverデータソースの名前です。

    • USERID userはExtractログインで、PASSWORD passwordは、ExtractでSQL Server認証を使用する場合に必要なパスワードです。または、資格証明が資格証明ストアに格納されている場合、USERIDALIAS aliasは、資格証明の別名です。統合Windows認証を使用するDSNにDBLOGINを使用する場合、GGSCIセッションのデータベースへの接続は、GGSCIを実行しているユーザーによるものになります。ADD TRANDATAまたはDELETE TRANDATAを発行するには、このユーザーは、SQL Server sysadminサーバー・ロールのメンバーである必要があります。

  3. GGSCIで、Extract構成内にある個々の表に対して次のコマンドを発行します。ワイルドカードを使用して複数の表の名前を指定できます。

    ADD TRANDATA owner.table
    ADD TRANDATA owner.*

4.5 2次切捨てポイントの管理

ソースSQL Serverデータベース内の1つ以上の表に対してADD TRANDATAコマンドを使用してサプリメンタル・ロギングを有効にすると、以降のログ・バックアップの後、ログ領域を必要に応じて解放するために移動される必要のあるトランザクション・ログに2次切捨てポイントが作成されます。TRANLOGOPTIONSパラメータを使用して、2次切捨てポイントの管理方法を制御します。TRANLOGOPTIONSはSQL Server Extractの必須パラメータで、2次切捨てポイントの管理に使用可能な3つのオプションが用意され、そのうちの1つを選択する必要があります。

4.5.1 Oracle GoldenGateによる2次切捨てポイントの管理

Oracle GoldenGate Extractプロセスに対して2次切捨てポイントの管理を指示するTRANLOGOPTIONSには2つのオプション(ACTIVESECONDARYTRUNCATIONPOINTおよびMANAGESECONDARYTRUNCATIONPOINT)があります。Extractが、(同じソース・データベースに対して) SQL Serverトランザクション・レプリケーション、またはOracle GoldenGate以外のアプリケーションによって構成されているCDC、あるいはその両方と平行して実行されない場合で、それぞれが異なる特性(この項の説明を参照)を持っているときは、これらのオプションのいずれかを使用できます。

注意:

SQL Serverトランザクション・レプリケーションやOracle GoldenGate以外のアプリケーションによって構成されたCDCが同時に実行されている場合、Extractに対してTRANLOGOPTIONS ACTIVESECONDARYTRUNCATIONPOINTまたはMANAGESECONDARYTRUNCATIONPOINTを使用すると、SQL Serverログ・リーダー・エージェントまたはCDC取得ジョブが失敗します。

ACTIVESECONDARYTRUNCATIONPOINTには次の特性があります。

  • Extractでは、取得したトランザクションのみを対象に、2次切捨てポイントをトランザクション・ログに設定します。

  • ACTIVESECONDARYTRUNCATIONPOINTにより、Extractがオンライン・トランザクション・ログからトランザクションを取得するまで、トランザクションの切捨ては行われません。

  • Extractが取得するまでオンライン・データは切り捨てられないので、Extractはログ・バックアップから読み取る必要はありません。この方法の利点は、未処理のトランザクション・データを取得するためにExtractがログ・バックアップにアクセスする必要がある可能性があるということを気にすることなく、サードパーティのトランザクション・ログ・バックアップ・ソフトウェアを使用できることです。

  • ACTIVESECONDARYTRUNCATIONPOINTを使用すると、Extractが大幅に遅れた場合、ログ・ファイルが大きくなる可能性があります。これは、トランザクション・ログ・バックアップが即座にトランザクション・ログの切捨てを行うことができないためです。切捨ては、Extractがデータの取得を終了した後にのみ行われます。したがって、記憶域のパラメータを調整して、増加するログ・サイズに対応する必要があります。

  • このオプションを使用するには、ソース・データベースから取得できるExtractが1つのみである必要があります。

  • このオプションは、アーカイブ・ログ・モードで実行中のExtractには無効です。

  • SQL Server Enterprise Editionの場合にExtractを起動すると、Extractは停止し、データベースのCDCキャプチャ・ジョブが削除されるため、データはどのCDC表にもロードされません。サプリメンタル・ロギングが追加されたときからExtractが起動されたときまでの間に、これらの表に対するトランザクションが発生した場合は、対応するCDC表はそれらにデータを持っている可能性があります。このデータはOracle GoldenGateによって使用されず、手動で削除することも、これらのCDC表から切り捨てることもできます。また、CDCキャプチャ・ジョブが削除されている場合には機能しなくなるため、ソース・データベースに対するCDCクリーンアップ・ジョブを停止および無効化、または削除できます。

  • SQL Server Standard Editionの場合は、Extractの位置を設定する前に、ソース・データベースのSQL Serverログ・リーダー・エージェント・ジョブを手動で停止および無効化する必要があります。

MANAGESECONDARYTRUNCATIONPOINTには次の特性があります。

  • Extractでは、ログの該当する時点の切捨てポイントに高水位標を設定することにより、事前設定した時間間隔で頻繁に切捨てポイントをトランザクション・ログに設定します。

  • 以降のトランザクション・ログ・バックアップが取得されると、切捨てポイントより前のトランザクションはオンライン・トランザクション・ログから削除でき、これによりオンライン・ログの領域が解放されます。トランザクションがログ・バックアップにフラッシュされる前に、Extractがそのトランザクションをオンライン・ログから取得していなかった場合、Extractはログ・バックアップに切り替えて、そこからトランザクションを読み取ります。この機能に必要なログのバックアップには、ネイティブSQL Serverバックアップ・ユーティリティのみを使用します。このシナリオでは、サードパーティ・バックアップ・ソフトウェアは使用できません。

  • このオプションを使用すると、複数のExtractが同じソース・データベースから取得することはできません。1つのソース・データベースに複数のExtractがある場合は、Extractごとにこのオプションを構成する必要があります。

  • SQL Server Enterprise Editionの場合にExtractを起動すると、Extractは停止し、データベースのCDCキャプチャ・ジョブが削除されるため、データはどのCDC表にもロードされません。サプリメンタル・ロギングが追加されたときからExtractが起動されたときまでの間に、これらの表に対するトランザクションが発生した場合は、対応するCDC表はそれらにデータを持っている可能性があります。このデータはOracle GoldenGateによって使用されず、手動で削除することも、これらのCDC表から切り捨てることもできます。また、CDCキャプチャ・ジョブが削除されている場合には機能しなくなるため、ソース・データベースに対するCDCクリーンアップ・ジョブを停止および無効化、または削除できます。

  • SQL Server Standard Editionの場合は、ソース・データベースのSQL Serverログ・リーダー・エージェント・ジョブを手動で停止および無効化する必要があります。

これらのオプションのいずれかを使用すると、Extractがログ・バックアップ頻度よりも長い間停止またはダウンした場合、以降のログ・バックアップの後、2次切捨てポイントは移動せず、トランザクションはトランザクション・ログから削除されないので、ログ・ファイルが大きくなり、トランザクション・ログがいっぱいになる可能性があります。これが発生した場合は、Oracleサポートに問い合せて、2次切捨てポイントを手動で移動する方法と問題について確認してください。

4.5.2 SQL Serverによる2次切捨てポイントの管理

Extractが、(同じソース・データベースに対して) SQL Serverトランザクション・レプリケーション、またはOracle GoldenGate以外のアプリケーションによって構成されているCDC、あるいはその両方と平行して実行される場合は、NOMANAGESECONDARYTRUNCATIONPOINTオプションを指定してTRANLOGOPTIONSを使用します。SQL Serverが、2次切捨てポイントを管理します。