Oracle Direct Seminar <Insert Picture Here> オラクルコンサルタントが語る!GoldenGate 活用ポイント 日本オラクル株式会社
アジェンダ Oracle GoldenGate 概要 Oracle GoldenGate 活用ポイント Trigger Delete Cascade 設定テーブルの競合 ASM インスタンスへの接続 Bounded Recovery まとめ 2
Oracle GoldenGate 製品概要 特徴 独自のログ取得 / 適用機構を採用 GoldenGate 間での高速なログ転送を実現 既存システムへの負荷が尐ない 負荷分散や統合など システム用途に応じた多様な組み合わせが可能 3
GoldenGate を活用したデータ連携 DB の移行 /Upgrade 移行したいけどシステムを止められない 停止時間を最小限に抑えて 機会損失を減らしたい DB の統合 / 並行稼働 散在した DB を 最新のプラットフォームへ統合したい データベースを統合しても 元の方はしばらく並行稼働させたい DB の負荷軽減 新システムを構築したくても 既存 DB にこれ以上負荷をかけたくない 単純に現在利用しているデータベースの負荷を軽減させたい DB の複製 複製先が多くて 夜間で終わらない 毎日 Export/Import だと停止時間が長すぎる 差分複製で効率化できないの? 4
Oracle GoldenGate アーキテクチャ Extract(Capture): REDO ログ ファイルから変更情報を取得し Trail ファイルに書き込む Trail files: 変更情報を溜めておく中間ファイル Extract(Data Pump): Trail ファイルを読み 変更情報をリモートの Trail ファイルに転送 転送時の圧縮 / 暗号化が可能 Collector: Data Pump から送信されたデータを受信し Trail ファイルに出力 Replicat: 変更情報を SQL 文に変換して DB に適用 Network Extract (Capture) Trail Extract (Data Pump) (TCP/IP) Collector Trail Replicat ソース DB Manager Manager ターゲット DB REDO ログ ファイル Manager: GoldenGate 全体を管理プロセスの起動 / 停止 監視 / 管理 5
GoldenGate によるデータ同期開始まで 初期データの移行 初期データ移行 データ追い付き処理開始 データ追い付き処理 開始 データ同期開始 データ同期開始 6
初期データの移行 初期ロードは大きく 2 つの方法 データベースの機能を使用 GoldenGateの機能を使用 データベースの機能を使用する場合 exp/imp, Data Pump, トランスポータブル表領域 Backup/Restore など GoldenGate の機能を使用する場合 GoldenGateの機能 Extract の出力 ロードの方法 File to Replicat Trail (GoldenGate 形式 ) Replicat (SQL 実行 ) File to Database Utility テキスト ファイル Database utility Direct load Replicat に直接送信 Replicat (SQL 実行 ) Direct bulk load Replicat に直接送信 Replicat (SQL*Loader API) 7
データ追い付き処理 データ追い付き処理の対象データ 初期データ移行開始時点から初期データ移行完了後までのソース側更新データ データ追い付き処理時間の依存要素 初期データ移行期間 ソース側 DB の更新データ量 追い付き処理時間はシステム次第 5 倍 ~10 倍の実績あり 8
データ同期開始 データ同期開始後の作業適用時間 (lag) の確認 更新量が尐ない時間帯は数秒 更新量が多い時間帯は一時的に遅延する可能性 通常運用時と比べて遅延することがないか監視 データ整合性の確認 運用設計で策定したルールに従って確認 確認対象データを絞って確認 想定外の更新による不整合が発生していないか監視 9
アジェンダ Oracle GoldenGate 概要 Oracle GoldenGate 活用ポイント Trigger Delete Cascade 設定テーブルの競合 ASM インスタンスへの接続 Bounded Recovery まとめ 10
Oracle GoldenGate データ連携イメージ Oracle クライアント SQL SQL SELECT 1 SELECT 2 DML 1 DML 2 COMMIT SELECT 1 SELECT 2 DML 1 DML 2 COMMIT DML 1 DML 2 COMMIT DML 1 DML 2 COMMIT データ更新を反映 ソース DB のトランザクション順序を保証 Oracle instance Manager チェックポイント ファイル Manager Oracle instance REDO ログファイル Capture チェックポイント ファイルソース側 trail ファイル Bounded Recovery ファイル DataPump DML 1 DML 2 COMMIT DML 1 DML 2 COMMIT COMMIT された更新を抽出 Collector trail ファイル ターゲット側 SQL 1 本の Oracle 接続から SQL で更新する Replicat チェックポイント ファイル 11
Oracle GoldenGate 活用ポイント ( ソース編 ) Oracle クライアント プロセス監視 DDL 伝播 主キー更新 主キーの無いテーブル SQL SQL チェックポイントファイル ネットワーク負荷 Oracle instance Manager Data Pump OGG ログ OS ログへの出力 OS ログ ASM 上の Redo ログ Trail ファイル運用 Capture Trail ファイル アーカイブログの運用 REDO ログアーカイブログ チェックポイントファイル Bounded Recovery ファイル 未コミット トランザクション ソース側 ターゲット側 12
Oracle GoldenGate 活用ポイント ( ターゲット編 ) Oracle クライアント プロセス監視 SQL SQL OS ログへの出力 Collector Manager OGG ログ ネットワーク負荷 追い付き処理のパフォーマンス OS ログ Trail ファイル運用 Trail ファイル Replicat SQL Trigger の競合 Delete Cascade の競合 Mview の伝播 大量更新 ( バッチ ) 処理の伝播 Oracle instance ソース側 ターゲット側 13
アジェンダ Oracle GoldenGate 概要 Oracle GoldenGate 活用ポイント Trigger Delete Cascade 設定テーブルの競合 ASM インスタンスへの接続 Bounded Recovery まとめ 14
Trigger の競合 Trigger 設定テーブル ( 表 1) に対し GoldenGate 伝播を設定 Trigger により更新されるテーブル ( 表 2) に対しても GoldenGate 伝播を設定 上記設定の場合 ターゲット側の表 2 に対する処理が重複 GoldenGate 10.4 で重複を回避するためには ターゲット側の Trigger を無効化する必要がある ソース側 ターゲット側 update 表 1 表 1 Trigger による Insert ターゲット側 Trigger による Insert 表 2 ソース側 Trigger による Insert 表 2 15
GoldenGate 11g による Trigger 競合回避 DBOPTIONS SUPPRESSTRIGGERS パラメータ (Oracle 10.2.0.5/11.2.0.2) ターゲット側の Trigger による表 2 への更新を GoldenGate により反映させない 1 アプリからソース側表 1 への更新が実行される 2 Trigger によりソース側表 2 のデータに更新が実行される 3 GoldenGate によりターゲット側表 1 へ更新が実行される 4 GoldenGate により Trigger のターゲット側表 2 への更新を反映させない 5 GoldenGate によりターゲット側表 2 へ更新が実行される 上記パラメータを利用する場合 ターゲット側の GoldenGate 用 DB ユーザに Streams の管理者権限を付与する必要があります ソース側 ターゲット側 1update 表 1 表 1 表 2 2insert (Trigger) 3update 5insert 表 2 4insert (Trigger) 16
Delete Cascade 設定テーブルの競合 ソース ターゲット両方で Delete Cascade 制約を設定 ソース側の親表 子表はいずれも GoldenGate 伝播を設定 上記設定の場合 ターゲット側子表に対する処理が重複 GoldenGate 10.4 で重複を回避するためには ターゲット側の cascade 制約を外す必要がある ソース側 ターゲット側 delete 親表 親表 Cascade 制約による delete ターゲット側 Cascade 制約による delete delete 子表 ソース側 Cascade 制約による delete 子表 17 17
GoldenGate 11g による Delete Cascade 競合回避 DBOPTIONS DEFERREFCONST パラメータ (Oracle 9.2.0.7 以上 ) ターゲット側の参照整合性制約による子表への Delete チェックを遅延させる 1 アプリからソース側親表への Delete が実行される 2 参照整合性制約によりソース側子表へ Delete が実行される 3 GoldenGate によりターゲット側親表へ Delete が実行される 4 GoldenGate によりターゲット側子表への参照整合性制約は Commit されるまでチェックを遅延させる 5 GoldenGate によりターゲット側子表へ Delete が実行される ソース側 ターゲット側 1delete 親表 親表 子表 2delete (cascade) 3delete 5delete 子表 4delete (cascade) 18
アジェンダ Oracle GoldenGate 概要 Oracle GoldenGate 活用ポイント Trigger Delete Cascade 設定テーブルの競合 ASM インスタンスへの接続 Bounded Recovery まとめ 19
GoldenGate によるインスタンスへの接続 ソース データベースが ASM 上に構成されている場合 Capture プロセスは ASM インスタンスに接続して REDO ログへアクセスする必要がある ソース データベースの Oracle インスタンスへのアクセス GoldenGate 用 Oracleユーザでのbequath 接続 GoldenGate 用 Oracleユーザによるリスナー プロセス経由の接続 ソース データベースへの ASM インスタンスへのアクセス SYSユーザによるOracleリスナー プロセス経由の接続 TRANLOGOPTIONSパラメータのDBLOGREADERオプションを利用 20
Oracle インスタンスへの接続方法 Capture プロセス用パラメータの設定 GoldenGate 用 Oracle ユーザでの bequeath 接続 (10g/11g) USERID <GoldenGate 用 DB ユーザ名 >, PASSWORD <password> GoldenGate 用 Oracle ユーザでのリスナー プロセス経由の接続 (10g/11g) USERID <GoldenGate 用 DB ユーザ名 >@<Oracle*Net サービス名 >, PASSWORD <password> リスナー プロセス経由の接続の場合 Capture プロセスが稼働するサーバの tnsname.ora ファイルに Oracle*Net サービス名の設定が必要 21
ASM インスタンスへの接続方法 Capture プロセス用パラメータの設定 SYS ユーザでのリスナー プロセス経由の接続 (10g/11g) TRANLOGOPTIONS ASMUSER sys@<oracle*net サービス名 >, ASMPASSWORD <password> 上記接続の為に以下の対応が必要です ASM インスタンスのパスワード ファイルの構成 ASM インスタンスの REMOTE_LOGIN_PASSWORD の設定 REMOTE_LOGIN_PASSWORD=<EXCLUSIVE SHARED> ASM インスタンス接続用 tnsnames.ora の設定 TRANLOGOPTIONS パラメータの DBLOGREADER オプションを利用 (11g のみ ) TRANLOGOPTIONS DBLOGREADER 上記接続の為には GoldenGate 用 Oracle ユーザへ ASM インスタンス接続権限を付与する必要があります 22
アジェンダ Oracle GoldenGate 概要 Oracle GoldenGate 活用ポイント Trigger Delete Cascade 設定テーブルの競合 ASM インスタンスへの接続 Bounded Recovery まとめ 23
GoldenGate とオープントランザクション Capture プロセス再起動時に最も古いオープントランザクションの開始点が含まれるアーカイブログから読み込みを開始する Capture プロセスは v$transaction からオープントランザクションの情報を取得する 障害時に最も古いアーカイブログを保持しておくための運用を検討しなくてはいけない アーカイブログ #1 Begin, TX 1 Insert, TX 1 Begin, TX 2 一番古いトランザクションの場所 ( この場所のアーカイブログがない場合 プロセスはリカバリ出来ない ) Begin, TX 2 Update, TX 1 Insert, TX 2 アーカイブログ #2 Insert, TX 2 Commit, TX 2 Begin, TX 3 Trail ファイル Commit, TX 2 Begin, TX 3 Insert, TX 3 オープン トランザクションのデータは Capture のメモリ上に保持される Online Redo ログ Insert, TX 3 Begin, TX 4 Commit, TX 3 Commit, TX 3 Capture Cache Memory Delete, TX 4 Begin, TX 1 Insert, TX 1 Update, TX 1 データを読み込み Begin, TX 4 Delete, TX 4 24
Bounded Recovery 機能概要 一定の期間を過ぎたトランザクション情報をファイルに書き出す機能 アーカイブ Redo ログ #1 アーカイブ Redo ログ #2 Online Redo ログ 古いオープントランザクションの情報をファイルで保持し リカバリ時に使用する 本機能によりGoldenGate 導入によって現行のアーカイブログ運用を強く意識する必要がなくなった 一番古いトランザクションの場所 Begin, TX 1 だがCaptureのキャッシュ ファイルを読むため 読み込まない 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 Trail ファイル Begin, TX 2 Insert, TX 2 Commit, TX 2 Begin, TX 3 Insert, TX 3 Commit, TX 3 Capture Cache Memory 一定の境界時間より古いオープントランザクションは Persisted Object としてファイルに保存される Persisted Object Begin, TX 1 Insert, TX 1 Update, TX 1 BR Checkpoint データを読み込み Begin, TX 1 Insert, TX 1 Update, TX 1 データを読み込み Begin, TX 4 Delete, TX 4 25
Bounded Recovery ファイル管理動作 トランザクション開始後 2 回目のインターバルを超した時点からインターバルごとにトランザクション情報を含んだファイルを作成 追加する トランザクション毎にファイルは生成され commit /rollback 発行後の最初のインターバルにて削除される Database Tx1 Tx2 Tx3 Tx4 GoldenGate インターバル 1 インターバル 2 Tx6 Tx3 用作成 Tx4 用作成 インターバル 3 Archive Tx5 Tx3 用削除 Tx4 継続追記 インターバル 4 REDO Tx6 用作成 Tx4 用削除 26
Bounded Recovery 利用時考慮事項 デフォルト設定 インターバル 4 時間 ファイル出力先 <OGG インストールディレクトリ >/BR/< プロセス名 >/stale/ ファイル出力形式 : 1. チェックポイント情報 :CP.< プロセス名 >.< チェックポイント情報 > 2. トランザクション情報 :PO.< プロセス名 >.< オブジェクト番号 >.< ファイル番号 > 運用側での調査項目 最も長いトランザクションの時間を調査 アーカイブログの保持期間の調査 最低でも 8 時間 ( インターバル 4 時間 2 回 ) 前までのアーカイブログがないと 障害発生時にプロセスの再起動ができない 27
アジェンダ Oracle GoldenGate 概要 Oracle GoldenGate 活用ポイント Trigger Delete Cascade 設定テーブルの競合 ASM インスタンスへの接続 Bounded Recovery まとめ 28
まとめ Oracle GoldenGate を用いたデータ連携を行う際は データベースの要件を事前に充分に確認し 必要な対処を実装することで より効率的かつ確実なデータ連携が実現可能です Oracle GoldenGate 11g では Oracle GoldenGate 10.4 において 個別の対処や考慮が必要であった事象をパラメータ設定により 対処することが可能となりました Trigger Delete Cascade が設定されたテーブルの競合回避 ASM 上の Redo ログファイルの読み込み Bounded Recovery による アーカイブ トランザクション運用の簡易化 29
OTN ダイセミでスキルアップ!! Oracle Technology Network(OTN) を御活用下さい http://forums.oracle.com/forums/main.jspa?categoryid=484 一般的技術問題解決には OTN 掲示版の データベース一般 をご活用ください OTN 掲示版は 基本的に Oracle ユーザー有志からの回答となるため 100% 回答があるとは限りません ただ 過去の履歴を見ると 質問の大多数に関してなんらかの回答が書き込まれております http://www.oracle.com/technetwork/jp/ondemand/index.html 過去のセミナ資料 動画コンテンツは OTN の OTN セミナーオンデマンドコンテンツ へ ダイセミ事務局にダイセミ資料を請求頂いても お受けできない可能性がございますので予めご了承ください ダイセミ資料は OTN コンテンツオンデマンドか セミナ実施時間内にダウンロード頂くようお願い致します 30
OTN セミナーオンデマンドコンテンツダイセミで実施された技術コンテンツを動画で配信中!! ダイセミのライブ感はそのままに お好きな時間で受講頂けます 最新情報つぶやき中 oracletechnetjp 人気コンテンツは? お勧め情報 公開予告など OTN トップページ http://www.oracle.com/technetwork/jp/index.html ページ左 基本リンク > OTN セミナーオンデマンド 掲載のコンテンツ内容は予告なく変更になる可能性があります 期間限定での配信コンテンツも含まれております お早めにダウンロード頂くことをお勧めいたします 31
Oracle エンジニアのための技術情報サイトオラクルエンジニア通信 http://blogs.oracle.com/oracle4engineer/ 最新情報つぶやき中 oracletechnetjp 技術資料 ダイセミの過去資料や製品ホワイトペーパー スキルアップ資料などを多様な方法で検索できます キーワード検索 レベル別 カテゴリ別 製品 機能別 コラム オラクル製品に関する技術コラムを毎週お届けします 決してニッチではなく 誰もが明日から使える技術の あ そうだったんだ! をお届けします オラクルエンジニア通信 こんな資料が人気です 6か月ぶりに資料ダウンロードランキングの首位が交代! 新王者はOracle Database 構築資料でした データベースの性能管理手法について Statspack 派も Enterprise Manager 派も目からウロコの技術特集公開中 32
Oracle Database の価格ご存知ですか? 1 問題 : Oracle Databaseの最小構成はいくらでしょうか? ヒント : Oracle Standard Edition Oneを 5Named User Plus( 指名ユーザ ) というのが最小構成です 2 問題 : Real Applications Clusters(RAC) Optionはいくらでしょうか? ヒント : RACはOracle Database Enterprise EditionのOptionです 答えはこちら ログイン不要の簡単見積もり ライセンス見積もりヘルプ 検索 33
IT プロジェクト全般に渡る無償支援サービス パフォーマンス診断サービス Web システムボトルネック診断サービス データベースパフォーマンス診断サービス 移行支援サービス SQL Server からの移行支援サービス DB2 からの移行支援サービス Sybase からの移行支援サービス MySQL からの移行支援サービス Postgre SQL からの移行支援サービス Access からの移行支援サービス Oracle Direct Concierge サービス NEW Oracle Application ServerからWeblogicへ移行支援サービス NEW システム構成診断サービス Oracle Database 構成相談サービス サーバー統合支援サービス 仮想化アセスメントサービス メインフレーム資産活用相談サービス BI EE アセスメントサービス 簡易業務診断サービス バージョンアップ支援サービス Oracle Database バージョンアップ支援サービス Weblogic Server バージョンアップ支援サービス Oracle Developer/2000(Froms/Reports) Web アップグレード相談サービス NEW オラクル社のエンジニアが直接ご支援しますお気軽にご活用ください! オラクル無償支援 検索 34
1 日 5 組限定! 製品無償評価サービス 提供シナリオ一例 データベースチューニング 無停止アップグレード アプリケーション性能 負荷検証 Webシステム障害解析 インストールすることなく すぐに体験いただけます サービスご提供までの流れ 1. お問合せフォームより 製品評価サービス希望 と必要事項を明記し送信下さい 2. 弊社より接続方法手順書およびハンズオン手順書を送付致します 3. 当日は 弊社サーバー環境でインターネット越しに製品を体感頂けます Web 問い合わせフォーム サービスご提供には事前予約が必要です ダイデモ をキーワードに検索することで申し込みホームページにアクセスできます http://www.oracle.com/jp/direct/services/didemo-195748-ja.html 35
あなたにいちばん近いオラクル Oracle Direct まずはお問合せください Oracle Direct 検索 システムの検討 構築から運用まで ITプロジェクト全般の相談窓口としてご支援いたします システム構成やライセンス / 購入方法などお気軽にお問い合わせ下さい Web 問い合わせフォームフリーダイヤル 専用お問い合わせフォームにてご相談内容を承ります http://www.oracle.com/jp/direct/inquiry-form-182185-ja.html こちらから詳細確認のお電話を差し上げる場合がありますので ご登録されている連絡先が最新のものになっているか ご確認下さい 0120-155-096 月曜 ~ 金曜 9:00~12:00 13:00~18:00 ( 祝日および年末年始除く ) 36