Oracle® Fusion Middleware SQL ServerのためのOracle GoldenGateのインストールおよび構成 12c (12.2.0.1) E70108-03 |
|
前 |
次 |
この章の内容は次のとおりです。
Oracle GoldenGateでは、SQL Serverソース・データベースをフル・リカバリ・モデルに設定すること、およびフル・データベース・バックアップが存在することが必要です。
リカバリ・モデルの確認または設定手順:
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"
既存のログ・バックアップを上書きしないでください。
ストライプ・ログ・バックアップはサポートされていません。
ログ・バックアップを同じディスク・デバイス(またはファイル)に追加することはお薦めできません。圧縮および未圧縮のログ・バックアップを同じデバイスまたはファイルに混在させることはサポートされません。
Extractを停止する場合、または計画外の停止がある場合は、Extractがチェックポイントから再び起動できるように十分なログ・バックアップおよびバックアップ履歴を(msdbデータベース内に)保持します。Extractは、最も古い未コミットの作業ユニットの初めの箇所が含まれているトランザクション・ログまたはログ・バックアップと、それ以降のすべてのログ・バックアップのデータにアクセスできる必要があります。
処理中にExtractが必要とするデータ(オンライン・ログまたはバックアップ)が保持されていない場合、次のいずれかの修正処理が必要です。
Extractを変更して、ログ・データが使用できる後の時点から取得します(さらにターゲットで起こり得るデータ損失を受け入れます)。
ソース表とターゲット表を再同期してから、Oracle GoldenGate環境を再開します。
Extractのチェックポイントの位置を決定するには、INFO EXTRACT SHOWCH
コマンドを使用します。詳細は、『Oracle GoldenGate for Windows and UNIXリファレンス』を参照してください。
ここに記載されている説明は、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
)ロールのメンバーであるデータベース・ユーザーが必要です。
ソース・システムで、GGSCIを実行します。
次のコマンドを発行してデータベースにログインします。
DBLOGIN SOURCEDBDSN
[, {USERIDuser
, PASSWORDpassword
| USERIDALIASalias
}]
説明:
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
サーバー・ロールのメンバーである必要があります。
GGSCIで、Extract構成内にある個々の表に対して次のコマンドを発行します。ワイルドカードを使用して複数の表の名前を指定できます。
ADD TRANDATA owner.table
ADD TRANDATA owner.*
ソースSQL Serverデータベース内の1つ以上の表に対してADD TRANDATA
コマンドを使用してサプリメンタル・ロギングを有効にすると、以降のログ・バックアップの後、ログ領域を必要に応じて解放するために移動される必要のあるトランザクション・ログに2次切捨てポイントが作成されます。TRANLOGOPTIONS
パラメータを使用して、2次切捨てポイントの管理方法を制御します。TRANLOGOPTIONS
はSQL Server Extractの必須パラメータで、2次切捨てポイントの管理に使用可能な3つのオプションが用意され、そのうちの1つを選択する必要があります。
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次切捨てポイントを手動で移動する方法と問題について確認してください。