View
943
Download
0
Embed Size (px)
Citation preview
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
Oracle GoldenGateアーキテクチャと基本機能 v1.2
2016年2月 日本オラクル株式会社 クラウド&テクノロジー事業統括
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
免責事項
以下の事項は、弊社の一般的な製品の方向性に関する概要を説明するものです。また、情報提供を唯一の目的とするものであり、いかなる契約にも組み込むことはできません。以下の事項は、マテリアルやコード、機能を提供することをコミットメント(確約)するものではないため、購買決定を行う際の判断材料になさらないで下さい。 オラクル製品に関して記載されている機能の開発、リリースおよび時期については、弊社の裁量により決定されます。 Oracleは、米国オラクル・コーポレーション及びその子会社、関連会社の米国及びその他の国における登録商標または商標です。 他社名又は製品名は、それぞれ各社の商標である場合があります。
2
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
はじめに
• 本資料は、Oracle GoldenGate for Oracle Databaseのアーキテクチャ概要と12c新機能について紹介しています
• 本資料は、 GoldenGateの提案・導入に関わる技術者が GoldenGate の動作や仕組みを理解する参考資料として使用されることを想定して作成されています
• 製品機能の網羅的な説明や使用手順は、別途製品マニュアル等をご参照ください
• 本資料はGoldenGate 11.2 と GoldenGate 12.1 を前提に説明します
– GoldenGate 12.1 は Oracle 11g, Oracle 12.1 に対応
– GoldenGate 複数バージョン間のレプリケーションが構成可能です
– 例:ソース Oracle 10.2/OGG 11.2 , ターゲット:Oracle 12.1/OGG 12.1
3
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
Agenda
Oracle GoldenGate アーキテクチャ
DDL/SEQUENCE レプリケーション
Oracle Real Application Clusters(RAC)環境/ マルチテナント・コンテナ・データベース(CDB) 環境
双方向同期
Appendix
1
2
3
4
4
5
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
Agenda
Oracle GoldenGate アーキテクチャ
DDL/SEQUENCE レプリケーション
Oracle Real Application Clusters(RAC)環境/ マルチテナント・コンテナ・データベース(CDB) 環境
双方向同期
Appendix
1
2
3
4
5
5
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
Oracle GoldenGate 基本のアーキテクチャ
6
ソースDBの変更をターゲットDBへレプリケーションする全体像
REDO log
Checkpoint Checkpoint
Capture Data Pump
Checkpoint
GoldenGate
Trail file
Manager
Collector Replicat
REDO log
Trail file
GoldenGate
Manager
Source Target
変更データの流れ その他 GG関連の通信や更新
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
Oracle GoldenGate 基本のアーキテクチャ
7
ソースDBの変更をターゲットDBへレプリケーションする全体像
REDO log
Checkpoint Checkpoint
Capture Data Pump
Checkpoint
GoldenGate
Trail file
Manager
Collector Replicat
REDO log
Trail file
GoldenGate
Manager
Source Target
変更データの流れ その他 GG関連の通信や更新
変更情報を抽出するプロセス
GoldenGate 全体を管理するプロセス
変更情報を転送するプロセス
変更情報を適用するプロセス
変更情報を受信するプロセス
処理地点を記録するファイル
変更情報を格納するファイル
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
Manager プロセス
GoldenGate 全体の管理プロセス
• 各プロセスの管理
– 起動/監視(自動再起動)
– ポート番号の管理
• Trail ファイルの管理
– 処理済の Trail ファイルを自動削除
• イベントやエラーなどのレポートの作成
• ユーザーが発行したコマンドの実行
8
REDO log
Checkpoint Checkpoint
Capture Data Pump
Trail file
GoldenGate
Manager
Source
Error log
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
Capture プロセス
• DB変更情報を取得し、Trail ファイル へ更新データを出力するプロセス
• 取得元は構成やモードにより異なる
– トランザクション・ログ、ソースDB、サードパーティの取得モジュール など
• Capture プロセスのモード
9
Classic Capture • Oracle GoldenGate がサポートする全データベースで利用可能
• トランザクション・ログから変更履歴を抽出
• Oracle Database のみで利用可能 • DBの機能 (Database LogMining Server) を使って変更履歴を抽出
• RAC / DG / RMAN / ASM / TDE,TSE 等のOracle Database 機能との親和性
• 圧縮 / XA対応
Integrated Capture (11.2-)
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
Capture プロセス
10
Classic Capture
Trail File
Classic Capture
2.更新データを独自の形式に変換、 Trail ファイルに書き出す
Parameter File
読み 込み
フォーマッティング
フィルタリング
変換 マッピング
シリアライズ
1. トランザクション・ログ から変更履歴を抽出
変更データの流れ その他 GG関連の通信や更新
ソース データベース
REDO log
Checkpoint
Manager
Data Pump
Source
※ for Oracleの動作になります
Report File Discard File
3.チェックポイントの更新
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
LCR
Capture プロセス
11
Integrated Capture (11.2- )
Trail File
Integrated Capture
2.更新データを独自の形式に変換、 Trail ファイルに書き出す
読み 込み
フォーマッティング
フィルタリング
変換 マッピング
シリアライズ
1. DBの機能を使って変更履歴を抽出
変更データの流れ その他 GG関連の通信や更新
REDO log
Checkpoint
Manager
Data Pump
Parameter File
ソース データベース
Source
※ for Oracleの動作になります
Database LogMining
Server
Report File Discard File
3.チェックポイントの更新
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
Capture プロセスの動作
12
抽出と書き込みのタイミング
Begin, TX 1
Insert, TX 1
Begin, TX 2
Update, TX 1
Insert, TX 2
Commit, TX 2
Begin, TX 3
Insert, TX 3
Begin, TX 4
Commit, TX 3
Delete, TX 4
Capture
Begin, TX 2
Insert, TX 2
Commit, TX 2
Begin, TX 3
Insert, TX 3
Commit, TX 3
REDO log
Checkpoint Cache Memory
Begin, TX 1 Insert, TX 1 Update, TX 1
Begin, TX 4 Delete, TX 4
Trail file
抽出 • REDO ログの終端(EOF) まで読み込む
Capture プロセスは、読み込んだトランザクション 情報をメモリ上に格納
• 定期的に変更情報確認 パラメータEOFDELAY or EOFDELAYCSECS で変更可
(デフォルト 1秒最少 10ミリ)
書き込み • Commit が入るタイミングで Trail ファイルに書き込む
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
データ連携イメージ
13
トラン ザクション順序を保証
Begin, TX 1
Insert, TX 1
Begin, TX 2
Update, TX 1
Insert, TX 2
Commit, TX 2
Begin, TX 3
Insert, TX 3
Begin, TX 4
Commit, TX 3
Delete, TX 4
Capture
Begin, TX 2
Insert, TX 2
Commit, TX 2
Begin, TX 3
Insert, TX 3
Commit, TX 3
REDO log Checkpoint
DataPump Collector Replicat
Checkpoint Checkpoint
Begin, TX 4
Delete, TX 4
Begin, TX 3
Insert, TX 3
Commit, TX 3
Begin, TX 2
Insert, TX 2
Commit, TX 2
Begin, TX 1
Insert, TX 1
Update, TX 1
Select, TX 1
Trail file Trail file
Begin, TX 2
Insert, TX 2
Commit, TX 2
Begin, TX 3
Insert, TX 3
Commit, TX 3
データ更新を反映 ソースDBのトランザクション順序を保証
COMMIT された更新処理を抽出
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
チェックポイント
14
各プロセスがどこまで処理したかを記録
Begin, TX 1
Insert, TX 1
Begin, TX 2
Update, TX 1
Insert, TX 2
Commit, TX 2
Begin, TX 3
Insert, TX 3
Begin, TX 4
Commit, TX 3
Delete, TX 4
Capture
Begin, TX 2
Insert, TX 2
Commit, TX 2
Begin, TX 3
Insert, TX 3
Commit, TX 3
REDO log
Trail file
Data Pump Collector Replicat
Checkpoint
Begin, TX 2
Insert, TX 2
Commit, TX 2
Checkpoint
Trail file
Replicat Checkpoint 1.現在のTrail ファイルの 読み取り位置 2.ターゲットDBへの更新状況
Data Pump Checkpoint 1.現在のTrail ファイルの 読み取り位置 2.現在のTrail ファイルの書込み位置
Checkpoint
Capture Checkpoint 1.最も古いオープン・トランザクション(未コミット)の開始時点 2.現在のログの読取り位置 3.現在の Trail ファイルの書込み位置
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
Bounded Recovery
15
一定の期間を過ぎたトランザクション情報をファイルに書き出す機能
Begin, TX 1
Insert, TX 1
Begin, TX 2
Update, TX 1
Insert, TX 2
Commit, TX 2
Begin, TX 3
Insert, TX 3
Begin, TX 4
Commit, TX 3
Delete, TX 4
Capture
Begin, TX 2
Insert, TX 2
Commit, TX 2
Begin, TX 3
Insert, TX 3
Commit, TX 3
REDO log
Checkpoint Cache Memory
Begin, TX 1 Insert, TX 1 Update, TX 1
Begin, TX 4 Delete, TX 4
• Capture プロセスがオープン・トランザクションを処理中に停止した場合、再起動時にチェックポイントの情報に基づき、元の状態にリカバリを実施
• 長時間オープンされている古いオープン・トランザクションの情報を Bounded Recovery ファイルに保持し、リカバリ時に使用
BR Checkpoint
Begin, TX 1 Insert, TX 1 Update, TX 1
Trail file
最も古いオープン トランザクションの 開始時点
リカバリ・ チェックポイント
読み込み チェック ポイント
書き込み チェック ポイント
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
Trail ファイル
• 含まれる情報
– 変更データやトランザクションなどの変更情報
– プラットフォーム・DBの種類・バージョンなどの環境情報
• Logdump ユーティリティにて中身の確認が可能
• Replicat は Trail ファイル内の情報をもとに SQL を生成して適用
• 管理
– サイズの上限(デフォルト100MB) に達すると、次のファイルを生成
– 設定値に基づき、Manager が自動的にパージを行うことが可能
16
変更情報を独自の形式で格納する中間ファイル
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
Data Pump / Collector プロセス
• Data Pump プロセス – Trail ファイルからDB変更情報を取得し、ターゲット・サーバーへ変更データを送信
–圧縮・暗号化も可
• Collector プロセス – Data Pump から送信されてきたデータを受信し、Trail ファイルに書き込む
– Manager プロセスが自動的に起動するため、ユーザーが操作する必要はない
17
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
Data Pump / Collector プロセス
18
Checkpoint
Data Pump
GoldenGate
Trail file
Manager
Collector
Trail file
GoldenGate
Source Target
2.接続済のCollectorに変更データを送信
4.チェックポイントの更新
【起動時】Data Pump がターゲット側の Manager に接続要求 Manager が Collector 起動し、ポート番号をData Pump に通知
Capture
Manager
1. Trail ファイルから変更データを抽出
Replicat
3. 受信した更新データを Trail ファイルに書き出す
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
Data Pump / Collector プロセス
• Trail ファイルからの読み込みタイミング –変更情報の更新を検知すると読み込みを始め、終端(EOF) に到達するまで読み続ける
–定期的に変更情報更新の確認を実施
–デフォルト 1秒、最少 10ミリ秒
–パラメータ(EOFDELAY or EOFDELAYCSECS)で変更可
• Data Pump プロセスから Collector プロセスへの転送タイミング –パラメータ (FLUSHSECS or FLUSHCSECS)で指定した間隔
–デフォルト 1秒、最少 10ミリ秒
19
読み込み・転送タイミング
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
Data Pump / Collector プロセス
• 転送方式
– NOPASSHRU モード(デフォルト) • ソースDBから設定・メタデータなどの情報を取得
• データ・マッピングの変更、フィルタの適用、データ変換等が可能
– PASSTHRU モード • ソースDBに接続せずに Trail ファイルから直接取得
• より高速に転送することが可能
20
Data Pump プロセスから Collector プロセスへの転送方式
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
Replicat プロセス
• Trail ファイルの変更データの情報を読み込み、ターゲットDBに適用するプロセス – 変更データから適用内容を生成するため、ソース側で実行された SQL と同一ではない
• Replicat プロセスのモード
21
Non-integrated Replicat • Oracle GoldenGate がサポートする全データベースで利用可能
• SQLを使用してターゲットに適用 • シリアル処理(プロセス多重化は可能)
Integrated Replicat (12.1-) • Oracle Database (11.2.0.4 /12.1.0.1 -) のみで利用可能
• DBの機能を使ってターゲットにパラレルで適用
Coordinated Replicat (12.1-)
• Oracle GoldenGate がサポートする全データベースで利用可能
• SQLを使用してターゲットに適用 • マルチスレッドでパラレル処理が可能
12c 新機能
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
Replicat プロセス
22
Non-Integrated Replicat /Coordinated Replicat
Checkpoint
Trail File
3.適用データを独自のSQLに変換・適用
2.パラメータファイルに記載したルールや Defgen ファイルやDB情報に基づき、データのフィルタリング・マッピング・変換を実行
Parameter File Defgen File
読み 込み
フォーマッティング
フィルタリング
変換 マッピング
SQL生成
4.チェックポイントの更新
1. Trail ファイルから 変更データを読み込む GoldenGate
Collector
ターゲット データベース
Target
※ for Oracleの動作になります
Report File Discard File
変更データの流れ その他 GG関連の通信や更新
Non-Integrated Replicat
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
Replicat プロセス
23
Integrated Replicat
Trail File
Checkpoint
Target
3.論理変更レコード(LCR)を生成
2.パラメータファイルに記載したルールや Defgen ファイルやDB情報に基づき、データのフィルタリング・マッピング・変換を実行
Parameter File Defgen File
読み 込み
フォーマッティング
フィルタリング
変換 マッピング
LCR 生成
5.チェックポイントの更新
GoldenGate
Collector
ターゲット データベース
1. Trail ファイルから 変更データを読み込む
Database LogMining
Server
LCR
12c 新機能
4.適用サーバーが 変更データを適用
※ for Oracleの動作になります
Report File Discard File
変更データの流れ その他 GG関連の通信や更新
Integrated Replicat
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
文字コードの明示的なマッピングやオーバーライド
• 12.1.2.1.0 より、文字コードのマッピングを明示的に指定することが可能
– 意図した文字マッピングに設定
– 自動で文字マッピングができない文字に対応
• 設定
– Replicat に CHARMAP パラメータを使用
– 文字マッピングファイルにマッピングを記載
24
Character Mapping Override
charset ISO-8859-1
sourcecharset al32utf8
targetcharset eucjis
¥xE3¥x88¥xB2 ¥xAD¥xEB
¥xEF¥xBD¥x9E ¥xA1¥xC1
¥xE3¥x80¥x9C ¥xA1¥xC1
・・・
EUC UTF8
㈲ ADEB E388B2
~ A1C1 E3809C
~ 8FA2B7 EFBD9E
複数マッピングパターンがある文字を、同じコードにマッピングされるように指定
Replicat がマッピングできない文字を 明示的にマッピング指定
12c 新機能
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
Replicat プロセス
• Trail ファイルからの読み込みタイミング
– 変更情報の更新を検知すると読み込みを始め、終端(EOF)に到達するまで読み続ける
– 定期的に変更情報更新の確認を実施
• デフォルト 1秒、最少 10ミリ秒
• パラメータ(EOFDELAY or EOFDELAYCSECS)で変更可
• ターゲット DB への適用タイミング
– Trail ファイルの情報を読み込み、変更情報をSQLに変換して 適用
• 通常、1件ずつ適用
• トランザクション単位・SQL とソースで実行された内容と同一ではない
• パラメータ(BATCHSQL / GROUPTRANSOPS / MAXTRANSOPS) でターゲット・トランザクション単位を制御
25
読み込み・適用タイミング
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
Replicat プロセス
26
各モードの違い
12c 新機能
Replicat モード
Capture モード データベース パラレル処理
Classic Capture
Integrated Capture
Vendar/ Version
CDB プロセス数
詳細
Non-integrated Replicat
○ ○ GoldenGateが 対応する全 DB
○ 複数
・複数プロセスによるパラレル化
・同一オブジェクトに対しては、レンジファンクションにて対応可能
・プロセス間でのトランザクション一貫性は調整されない
Coordinated Replicat
○ ○ GoldenGateが 対応する全 DB
○ 単一可 ・パラメータでどのスレッドがどのオブジェクトを処理するかを指定してパラレル化 ・トランザクション一貫性担保
Integrated Replicat
○ ○ Oracle Database
11.2.0.4 12.1.0.1-
○ 単一可 ・ワークロードに応じて自動的にパラレル化 ・トランザクション一貫性担保
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
Replicat プロセス
27
各モードの並列処理について
12c 新機能
ターゲット オブジェクト
Database LogMining Server(Inbound)
ターゲット・データベース
Non-integrated Replicat
Coordinated Replicat
Integrated Replicat
Receiver Reader LCR Applier
Applier
Trail File
コーディネータスレッド
スレッド
スレッド スレッド
Applier Coordinator
Oracle Database専用
Non-integrated Replicat
Non-integrated Replicat
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
処理グループ
• プロセスとその関連ファイルの組み合わせ
– Extract / Replicat プロセス
– パラメータファイル・チェックポイントファイル・Trail ファイル等のファイル類
– グループに割り当てられた名前を共有
• 全てのプロセスはグループ内のファイルとリンクしている必要がある
– ファイルが消失・破損している場合には起動不可
28
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
Agenda
Oracle GoldenGate アーキテクチャ
DDL/SEQUENCE レプリケーション
Oracle Real Application Clusters(RAC)環境/ マルチテナント・コンテナ・データベース(CDB) 環境
双方向同期
Appendix
1
2
3
4
29
5
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
DDL レプリケーション
• DML とは独立して動作
• GoldenGate 側で追加設定が必要
• ソースDBにDDLキャプチャ用の設定が必要
• Extract / Replicat のパラメータに DDL 伝播用のパラメータを追記
30
DDL オペレーションのレプリケーションをサポート
Trigger-Based DDL Capture
• 全データベースで利用可能 • トリガーを利用してDDL を抽出 • 事前に専用オブジェクトのインストールが必要
Native DDL Capture (12.1- )
• Oracle Database 11.2.0.4 / 12.1.0.1 - • Integrated Capture Modeでのみ使用可能 • CDBの場合はNative DDL Captureが必須 • Database LogMining Server経由で変更を検知 • 専用オブジェクトのインストールは不要
12c 新機能
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
DDL レプリケーション
31
DDL オペレーションのレプリケーションをサポート
REDO log
Trigger-Based DDL Capture
Trail file
DDL
対象 テーブル
DDL管理テーブル
DDL Trigger Native DDL Capture
Trail file
DDL
対象 テーブル
Database LogMining
Server
LCR
Trigger-Based DDL Capture Native DDL Capture (12.1- )
1.DDL発行時に DDL トリガーが発動し、管理テーブルを更新
2.管理テーブルの更新がREDOに出力
3. REDOログから情報を抽出し、Trail ファイルに書き込む。処理中、DDL管理テーブルへのアクセスも実施
1.Database LogMining Server がDDL 実行による変更を検知
REDO log
2. Database LogMining Serverから変更履歴を抽出し、Trail ファイルに書き込む
12c 新機能
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
DDL Capture手法の選択
• ソース・データベースの種類やバージョンによって、利用可能Captureの方式や、DDL Captureの方式が異なります。
32
ソース・データベースの種類とバージョン
Oracleデータベース
他社DB 11.2.0.3 以前
11.2.0.4 12.1 (Non-CDB)
12.1 (CDB)
Capture のモード
Integrated Mode
Trigger- Based
Native Native Native 利用不可
Classic Mode
Trigger- Based
Trigger- Based
Trigger- Based
利用不可 Trigger- Based
12c 新機能
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
Sequenceレプリケーション
• Sequence の変更情報を取得し伝播
– ターゲット側の Sequence 値がソース側より高いことを保証(連番・完全一致は保証しない)
– 表に格納されたデータは表のレプリケーションで伝搬される
– 双方向連携は不可(奇数/偶数等の振り分けで対応)
– ターゲット側で Sequence を使用しない場合には設定不要
33
REDO log
Capture
Trail file
SEQ管理テーブル
ID(PK列) NAME
1 A
2 B
insert into test values (testseq.nextval, ‘B');
ID(PK列) NAME
1 A
2 B
insert into test values (2, ‘B');
testseq.nextval > 2 SEQUENCE
Replicat
Trail file
DataPump
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
Agenda
Oracle GoldenGate アーキテクチャ
DDL/SEQUENCE レプリケーション
Oracle Real Application Clusters(RAC)環境/ マルチテナント・コンテナ・データベース(CDB) 環境
双方向同期
Appendix
1
2
3
4
34
5
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
Oracle Real Application Clusters(RAC)環境
• GoldenGate プロセスが起動するのは、基本的に1ノードのみ
– 単一の Extract (Capture) が、全 REDO スレッドを読み込み、Trail ファイルに書き込む
• 障害時のフェイルオーバー設計
– GoldenGate のバイナリは、全 RAC ノードで起動できるように設計
– 共有ファイルシステムの導入
– 障害発生時のアクションスクリプトの作成
35
Oracle Grid Infrastructure
Oracle Real Application Clusters
GoldenGate
Capture
GoldenGate
Trail file REDO log Thread #1
REDO log Thread #2 Checkpoint Checkpoint
DataPump
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
マルチテナント・コンテナ・データベース(CDB)環境
• OGG12cではCDBのキャプチャ/適用が可能
– CDBからのキャプチャ(Integrated Captureのみ)
• 1つのExtractから複数のPDBの情報取得
• Native DDL Captureのサポート
• CDB$ROOTに対して接続
– CDBへの適用
• 1つのReplicatからは1つのPDBのみ適用
• Three Part Nameによる指定が可能
– PDB.SCHEMA.TABLE
36
マルチテナント・コンテナ データベース (CDB)
CDB全体の内部的な管理データ
CDBは、単一のデータベース(SGA、バックグラウンド プロセス、REDOログなど)を、複数の論理データベース(PDB)で共有する仕組み。PDB単位の管理等が容易。
シード (PDB$SEED)
プラガブル・データベース(PDB)
ユーザデータ テンプレート
ルート(CDB$ROOT)
12c 新機能
Oracle Database 12c 新機能
マルチテナント・コンテナ・データベース(CDB)
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
コンテナ・データベースへの対応
37
Oracle Container Database
OGG12c Extract
ローカルTrail
Capture
PDB1
PDB2
OGG12c Replicat
リモートTrail
Oracle Container Database
PDB1
PDB2
Capture は 複数のPDBから キャプチャ可能
Replicatは 単一のPDBへのみ
適用可能
ルート cdb$root
PDB3
PDB3
•Integrated Captureのみ
12c 新機能
Replicat
Replicat
Replicat
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
Agenda
Oracle GoldenGate アーキテクチャ
DDL/SEQUENCE レプリケーション
Oracle Real Application Clusters(RAC)環境/ マルチテナント・コンテナ・データベース(CDB) 環境
双方向同期
Appendix
1
2
3
4
38
5
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
Active-Active の連携パターン
39
更新 – 参照 更新 – 更新(競合なし) 更新 – 更新(競合あり)
Application
Read/Write
Application
Read Only
Application
Read/Write
Application
Read/Write
Application
Read/Write
Application
Read/Write
GoldenGate GoldenGate GoldenGate
要件 システムA の更新がシステムBに 反映されるまでのタイムラグ
要件 システムA/B の更新がシステムB/A に反映されるまでのタイムラグ
要件 システムA/B の更新がシステムB/A に反映されるまでのタイムラグ 競合検知と解決
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
INSERT
双方向同期で発生する競合例
40
Case1:新規データ挿入時に重複データが既に存在する場合
1
ENAME LCHANGE_TS 7369 SMITH 01/05 14:00
8274 SCOTT 01/06 15:00
8274 SCOTT 01/06 15:00
EMPNO(PK) ENAME LCHANGE_TS 7369 SMITH 01/05 14:00 8274 SCOTT 01/06 15:00
EMPNO(PK) ENAME LCHANGE_TS 7369 SMITH 01/05 14:00
EMPNO(PK) ENAME LCHANGE_TS 7369 SMITH 01/05 14:00 8274 PAUL 01/06 15:01
8274 PAUL 01/06 15:01 EMPNO(PK) ENAME LCHANGE_TS 7369 SMITH 01/05 14:00 8274 SCOTT 01/06 15:00
EMPNO(PK) ENAME LCHANGE_TS 7369 SMITH 01/05 14:00 8274 PAUL 01/06 15:01
一意制約違反でエラー
一意制約違反でエラー
INSERT
8274 PAUL 01/06 15:01
GoldenGate
2
3
4
Replicat はABEND 競合する変更は適用されない 競合する変更は適用されない
Time axis
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
DELETE
双方向同期で発生する競合例
41
Case2:データ削除時に対象の行が削除済
1
8274 SCOTT 01/06 15:00
8274 SCOTT 01/06 15:00
EMPNO(PK) ENAME LCHANGE_TS 7369 SMITH 01/05 14:00
EMPNO(PK) ENAME LCHANGE_TS 7369 SMITH 01/05 14:00
8274 SCOTT 01/06 15:00
EMPNO(PK) ENAME LCHANGE_TS 7369 SMITH 01/05 14:00
EMPNO(PK) ENAME LCHANGE_TS 7369 SMITH 01/05 14:00
対象データがなくエラー
対象データがなくエラー
DELETE
8274 SCOTT 01/06 15:00
GoldenGate
2
3
4
EMPNO(PK) ENAME LCHANGE_TS 7369 SMITH 01/05 14:00 8274 SCOTT 01/06 15:00
EMPNO(PK) ENAME LCHANGE_TS 7369 SMITH 01/05 14:00 8274 SCOTT 01/06 15:00
Replicat はABEND 競合する変更は適用されない 競合する変更は適用されない
Time axis
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
UPDATE
双方向同期で発生する競合例
42
Case3:データ更新時に対象の行が別の値で変更済
1
7369 JACK 01/06 18:30
7369 JACK 01/06 18:30
7369 JOHN 01/06 18:35 意図しないデータに更新
意図しないデータに更新
UPDATE
7369 JOHN 01/06 18:35
GoldenGate
2
3
4
EMPNO(PK) ENAME LCHANGE_TS 7369 SMITH 01/05 14:00 8274 SCOTT 01/06 15:00
EMPNO(PK) ENAME LCHANGE_TS 7369 SMITH 01/05 14:00 8274 SCOTT 01/06 15:00
EMPNO(PK) ENAME LCHANGE_TS 7369 JACK 01/06 18:30 8274 SCOTT 01/06 15:00
EMPNO(PK) ENAME LCHANGE_TS 7369 JOHN 01/06 18:35 8274 SCOTT 01/06 15:00
EMPNO(PK) ENAME LCHANGE_TS 7369 JOHN 01/06 18:35 8274 SCOTT 01/06 15:00
EMPNO(PK) ENAME LCHANGE_TS 7369 JACK 01/06 18:30 8274 SCOTT 01/06 15:00
Replicat は正常稼働 競合する変更も適用される 競合する変更も適用される
Time axis
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
Replicat
Conflict Detection and Resolution(CDR)
43
ルールに基づく競合の検出・解決が可能
ケース毎の対応方法の設定 INSERT/DELETE/UPDATE の計5つのシナリオ
処理対象の細分化 列単位での処理の制御
柔軟な条件分岐 処理データの内容に応じた対応方法の制御
Trail file
Before Image (変更前イメージ)
7369 SMITH 14:00
After Image (変更後イメージ)
7369 JACK 18:30
ターゲットDBの データ
7369 JOHN 18:35
比較・競合検知
競合解決
Parameter File
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
双方向同期で発生する競合に対する解決例(1/2)
44
Case3:データ更新時に対象の行が別の値で変更済
Extract (Capture)
Extract (Data Pump) Collector Replicat
Trail file Trail file
1. ソースのBefore Imageとターゲット の対象データが異なることを検知 2.CHANGE_TS のデータがソースの 方が新しいと判断し、適用しない
・Replicat による更新は キャプチャ対象から除外 ・Before Imageを取得
・UPDATEの処理を競合チェック ・対象がBefore Imageと異なる場合 ・ CHANGE_TS のデータに基づき 最新のデータを優先して上書き
ReplicatのCDR設定
競合解決(Replicat)
Capture設定
EMPNO(PK) ENAME LCHANGE_TS 7369 SMITH 01/05 14:00 8274 SCOTT 01/06 15:00
EMPNO(PK) ENAME LCHANGE_TS 7369 JACK 01/06 18:30 8274 SCOTT 01/06 15:00
UPDATE
EMPNO(PK) ENAME LCHANGE_TS 7369 SMITH 01/05 14:00 8274 SCOTT 01/06 15:00
EMPNO(PK) ENAME LCHANGE_TS 7369 JOHN 01/06 18:35 8274 SCOTT 01/06 15:00
UPDATE
Before Image 7369 SMITH 14:00
After Image 7369 JACK 18:30
EMPNO(PK) ENAME LCHANGE_TS 7369 JOHN 01/06 18:35 8274 SCOTT 01/06 15:00
Parameter File Time axis
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
UPDATE
双方向同期で発生する競合に対する解決例(2/2)
45
Case3:データ更新時に対象の行が別の値で変更済
1
7369 JACK 01/06 18:30
7369 JACK 01/06 18:30
7369 JOHN 01/06 18:35 競合解決により適用
競合解決により適用しない
UPDATE
7369 JOHN 01/06 18:35
GoldenGate
2
3
4
EMPNO(PK) ENAME LCHANGE_TS 7369 SMITH 01/05 14:00 8274 SCOTT 01/06 15:00
EMPNO(PK) ENAME LCHANGE_TS 7369 SMITH 01/05 14:00 8274 SCOTT 01/06 15:00
EMPNO(PK) ENAME LCHANGE_TS 7369 JACK 01/06 18:30 8274 SCOTT 01/06 15:00
EMPNO(PK) ENAME LCHANGE_TS 7369 JOHN 01/06 18:35 8274 SCOTT 01/06 15:00
EMPNO(PK) ENAME LCHANGE_TS 7369 JOHN 01/06 18:30 8274 SCOTT 01/06 15:00
EMPNO(PK) ENAME LCHANGE_TS 7369 JOHN 01/06 18:30 8274 SCOTT 01/06 15:00
Replicat は正常稼働 ルールに基づく意図したデータ ルールに基づく意図したデータ
Time axis
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
参考: Replicat が解決する競合
46
INSERTROWEXISTS Insert の競合(一意制約違反)
Insert Overwrite
Ignore Discard
USEMIN,USEMAX
UPDATEROWMISSING 対象がBefore Imageと異なる
Update
Overwrite
Ignore
Discard
UPDATEROWEXISTS 対象がターゲットに存在しない
Overwrite Ignore
Discard
USEMIN,USEMAX
USEDELTA
DELETEROWMISSING 対象がBefore Imageと異なる
Delete
Ignore
Discard
DELETEROWEXISTS 対象がターゲットに存在しない
Overwrite Ignore Discard
競合シナリオ 競合解消方法
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
Agenda
Oracle GoldenGate アーキテクチャ
DDL/SEQUENCE レプリケーション
Oracle Real Application Clusters(RAC)環境/ マルチテナント・コンテナ・データベース(CDB) 環境
双方向同期
Appendix
1
2
3
4
47
5
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
GoldenGate 構成ステップ
1 • GoldenGate インストール
2 • Manager プロセスの設定
3 •データベースの設定変更
4 •各プロセスの構成
5 •初期ロード
6 •データ連携開始
48
・- 11.2:zipファイルの展開によるインストール ・12.1- :OUI によるインストール
・パラメータファイルの編集(通信ポートの設定など)
・サプリメンタル・ロギング ・GoldenGate 用のユーザーの作成 ・ENABLE_GOLDENGATE_REPLICATION初期化パラメータ有効化※1
・Capture /Data Pump/Replicat プロセスのパラメータファイルの 編集・コンポーネントの追加
・ターゲット側への既存データのコピー - DB機能 or GoldenGate 機能 で対応
・初期ロード以降の更新データの連携
※1 Oracle Database 11.2.0.4 / 12.1.0.1 以降で設定が必要
12c 新機能
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
より高性能に、より使いやすく
参考) 12c 新機能一覧
A. Capture/Replicatの新機能
A-1 Integrated Replicat
A-2 Coordinated Replicat
A-3 Native DDL capture
B. 新プラットフォーム対応
B-1 Oracle Database 12c対応
CDB/PDB対応
データ型拡張対応(Large Varchar)
B-2 その他プラットフォーム対応
C. セキュリティ
C-1 資格証明ストアによるユーザ情報管理
C-2 マスターキー&ウォレット方式による暗号化
D. 利用容易性
D-1 Automatic Discard
D-2 SHOWSYNTAXの強化
D-3 Schema Wildcard
D-4 Oracle Universal Installerの利用
D-5 グローバライゼーション・サポートの強化
12c 新機能
49
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
Agenda
Oracle GoldenGate アーキテクチャ
DDL/SEQUENCE レプリケーション
Oracle Real Application Clusters(RAC)環境/ マルチテナント・コンテナ・データベース(CDB) 環境
双方向同期
Appendix
1
2
3
4
50
5
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
Document Control
Author
日本オラクル株式会社 • 南野 英梨子
Reviewer
日本オラクル株式会社 • 谷川 信朗
• 後藤 陽介
• 浅井 純
• 小西 亮輔
• 別府 真由美
• 植田 智広
• 正木 能長
• 舟橋 直美
変更履歴
Date Version
2015/4 1.0 Created.
2015/9 1.1 テンプレート変更
2016/2 1.2 先頭スライド削除
51
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | 53