Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Oracle Database Technology Night #54 Oracle Dat...

Oracle Database Technology Night #54 Oracle Databaseのアップグレードとクラウド移行実践 GoldenGateとReal Application Testingの活用

Oracle Databaseをアップグレードしたり、クラウド移行する際に頭を悩ますのがダウンタイムやアプリのテストです。
今回のTech Nightでは、Oracle Consulting Serviceのメンバーが中心となり、実プロジェクトでの経験を交えながらGoldenGateとReal Application Testingを活用してそれらの悩みを解決する方法を、その効果やTipsと共にご紹介します。

oracle4engineer

March 29, 2022
Tweet

More Decks by oracle4engineer

Other Decks in Technology

Transcript

  1. Copyright © 2021, Oracle and/or its affiliates 4 Business Continuity

    99.999% Data Availability No Downtime Migrations GoldenGate Data requirements for mission-critical, cloud & multi-cloud Timely Insights Stream Analytics Real-time Data Warehouse, Data Lake, Data Lakehouse Continuous Integration Ground to Cloud to Multi-cloud Event-based Data Integration GoldenGate はリアルタイムデータ連携を実現するテクノロジー マルチ・クラウド環境においても最適なデータ連携を提供可能な基盤
  2. OCI GoldenGate - フルマネージド型の違い 5 Copyright © 2021, Oracle and/or

    its affiliates OCI GoldenGate GG OCI Marketplace GoldenGate Solution Management GoldenGate 環境の作成・管理 < ----------------- 顧客側管理 ----------------- > Platform Services Oracle Cloud Automations Oracle マネージド 未提供 未提供 自動スケーリング (最大3倍) OCIモニタリング/サービス・テレメトリー 分単位での計測・課金 Control Plane/Data PlaneのREST API管理 顧客側管理 顧客側管理 DRおよびバックアップ/リストア アップグレードとパッチ適用(*) Private Endpoints と Secure Vault 自律型DBとのウォレットの統合 OS管理 Infrastructure Management 仮想化とTerraformのスタックオートメーション Oracle提供 Oracle提供 顧客側提供 インストール / 高速プロビジョニング サーバー管理 Storage and Durability Guarantees Core Networking (*)2021年10月時点、アップグレードが利用可能になってから手動で適用する方式とな ります。自動でのアップグレードは今後提供を計画しています。
  3. • 構成の違いを理解する • OCI GoldenGate は v21.3 Microservice Architecture (以下MA)

    で提供される • MA は REST ベースで実装されており、従来の Classic Architecture とは操作や実装が異なる • 抽出プロセス(Extract) や 適用プロセス(Replicat)およびTrail ファイルについては従来からの技術を継承している OCI GoldenGate の技術的な理解 Copyright © 2022, Oracle and/or its affiliates 6 Server Process 従来提供されてきた、 【Classic Architecture】 Source Target TCP/IP Server Process Trail File Trail File Manager Manager
  4. • 構成の違いを理解する • 以下の図は OCI GoldenGateではなく、一般的な MA構成例である • 抽出プロセス(Extract) や

    適用プロセス(Replicat)およびTrail ファイルについては従来からの技術を継承している • ブラウザからの操作で環境構築、レプリケーション操作・管理が可能になる OCI GoldenGate の技術的な理解 Copyright © 2022, Oracle and/or its affiliates 7 【Microservices Architecture】 Source Target Distribution Receiver Service Manager Service Manager Administration Server Administration Server REST Trail File Trail File
  5. • 構成の違いを理解する • OCI GoldenGate および、GG OCI Marketplace では GG

    HUB構成となる OCI GoldenGate の技術的な理解 Copyright © 2022, Oracle and/or its affiliates 8 Source Target Trail File remote capture remote delivery (replicat) Deployment Service Manager Administration Server 実装・管理・制御 Distribution /Receiver (必要に応じて実装する) 現時点では、以下に注意 -> コマンドラインI/F(AdminClient) を持たない -> デプロイメント(実行環境コンテナ)やTrail Fileの維持・管理が少し違う -> Exadata Cloud@Customer は未サポート -> 管理系の実装が異なる https://docs.oracle.com/en-us/iaas/releasenotes/services/goldengate/
  6. OCI GoldenGate の理解 ~ 自動スケーリング • Autonomous Database同様、ベースサイズを選択 し自動スケーリングをONにすると、最大3倍までの自 動スケーリングが可能

    • 自動スケーリングは最大24OCPU • スケーリングはダウンタイムなくオンラインで実行され、1 時間あたりに消費されたOCPUの実平均が課金対象 (例:3OCPUでAuto ScalingをONにすると最大9OCPUとなり、1 時間あたりの平均消費OCPUが60%であれば6OCPU分が課金され ます) 9 Copyright © 2022, Oracle and/or its affiliates 0 4 8 12 Dynamic Auto-Scale 自動的に3倍までスケールアップ ゼロダウンタイムでのスケーリング OCI GoldenGate CPU Usage ワークロードの時間経過 利用実態に応じた課金のため、小規模ではじめても大規模トランザクションに対応可能
  7. 2021年3月時点 OCI GoldenGate 価格(日本円) Copyright © 2022, Oracle and/or its

    affiliates 10 Pay as You Go Annual Flex Metric Metric Minimum Oracle Cloud Infrastructure - GoldenGate ¥161.292 ¥161.292 OCPU Per Hour - Oracle Cloud Infrastructure - GoldenGate - BYOL ¥38.71 ¥38.71 OCPU Per Hour - 【補足】 • 金額は1$=120円換算の日本円表記です • BYOLの換算率については、Oracle PaaS and IaaS Universal Credits Service Descriptions を御確認下さい https://www.oracle.com/us/corporate/contracts/paas-iaas-universal-credits-3940775.pdf
  8. GoldenGate 案件におけるオブジェクトのアセスメント工程について GoldenGate 案件で Database の把握は重要 1. データ型やファンクションの制約を知る サポート対象の理解 https://docs.oracle.com/cd/F51462_01/oracle-db/1-understanding-whats-supported.html#GUID-702F5D2B-58AB-4F08-9E20-50B95661B98B

    2. サポートされるデータ型、されないデータ型 (DBA_GOLDNEGATE_SUPPORT_MODE : R11.2.0.4 以降 ) 3. サポートされるDDL、されないDDLなどのチェック 4. 移行やデータ連携の要件(サービス停止時間の有無、単方向・双方向、変換有無など) 上記を含むGoldenGate連携における難易度把握や要件整理工程は必須Tips 11 Copyright © 2022, Oracle and/or its affiliates
  9. 参考資料 : Cloud Premigration Advisor Tool(CPAT)を活用しよう 12 Copyright © 2022,

    Oracle and/or its affiliates https://oracle-japan.github.io/ocitutorials/database/adb302-cpat/ Cloud Premigration Advisor Tool (CPAT) Analyzes Databases for Suitability of Cloud Migration (ドキュメントID 2758371.1) コマンドの例 ./premigration.sh -connectstring jdbc:oracle:thin:@xxxx.xx.xxxx.com:1521:orcl -u sys --targetcloud Default --sysdba --migrationmethod GOLDENGATE -r text (or json)
  10. DDL伝播 あり なし GoldenGate 案件で Database の把握は重要 要件の明確化と難易度の見極め 13 Copyright

    © 2022, Oracle and/or its affiliates 連携パターン Oracle-Oracle (On-P, OCI に関わらず) Oracle-Oracle (他社Cloudが絡む場合) Non-Oracle (Oracle以外のRDBMSがある) RDBMS以外 (Big Data などが絡む場合) 移行か常時連携か 移行案件 常時連携 変換の有無 表構造はそのまま 表構造が変わる 連携対象数 1:1 1:n や n:1 連携方向 単方向 双方向 CDR(競合) 競合なし 競合あり 難易度(高) 難易度(低) 常時連携の要件は? DR(RPO,RTO) Zero Downtimeメンテナンス対応 他(BCPに必須なデータのみの連携など) ※ For Big Data 以外 シンプルな移行案件のパターン
  11. Oracle Databaseのアップグレードとクラウド移行実践 GoldenGateとReal Application Testingの活用 クラウド移行でGoldenGateを活用する場合の構成事例とTips Oracle Database Technology Night

    #54 日本オラクル株式会社 コンサルティングサービス事業統括 テクノロジーコンサルティング事業本部 浅井 純 2022年3月24日
  12. On-premise から Cloud への移行にも利用できます 『移行時のダウンタイムを短くしたい』と要件がある場合、GoldenGateは検討すべき移行方式のひとつです。 移行当日に行う作業を大幅に削減できるため、移行当日の手戻り等のリスクを低減することができます。 逆伝播を構成することで、切り戻しを見越した構成をとることも可能です。 16 現行システム 新システム

    現行システム 新システム 旧システム 新システム Application Application Application 1) システム移行前 2) システム切替当日 3) システム移行後 現行システムによるサービス提供 新システムによるサービス提供 Copyright © 2022, Oracle and/or its affiliates. All rights reserved.
  13. GoldenGateの構成例(①一般的な構成) 17 On-Premise DC Source DB GoldenGate Trail File OCI

    Tokyo Region REDO ソースDBサーバ Target DB GoldenGate Trail File ターゲットDBサーバ • ソース、ターゲットの各DBサーバにGoldenGateをインストール • ソースDBサーバ上にCapture、ターゲットDBサーバ上にReplicatを構成 【対応可能製品/アーキテクチャ】 GoldenGate Classic Architecture / GoldenGate Microservices Architecture Copyright © 2022, Oracle and/or its affiliates. All rights reserved. ※ 以下は構成イメージであり、記載されていないコンポーネントもあります。
  14. GoldenGateの構成例(②外部アクセス構成) 18 On-Premise DC Source DB OCI Tokyo Region REDO

    ソースDBサーバ Target DB GoldenGate Trail File ターゲットDBサーバ • 中間サーバにGoldenGateとOracle Database Clientをインストール • 中間サーバにCapture/Replicatを構成して、ソースDBとターゲットDBにはリモートアクセスを行う 【対応可能製品/アーキテクチャ】 GoldenGate Classic Architecture / GoldenGate Microservices Architecture / OCI GoldenGate Microservices Architecture 中間サーバ Copyright © 2022, Oracle and/or its affiliates. All rights reserved. ※ 以下は構成イメージであり、記載されていないコンポーネントもあります。
  15. GoldenGateの構成例(③ダウンストリーム構成 - 中間サーバなし) 19 • マイニングDBサーバを別途用意し、Oracle Databaseを構築する • マイニングDBサーバ上にCapture、ターゲットDBサーバ上にReplicatを構成 【対応可能製品/アーキテクチャ】

    GoldenGate Classic Architecture / GoldenGate Microservices Architecture Copyright © 2022, Oracle and/or its affiliates. All rights reserved. On-Premise DC Source DB OCI Tokyo Region REDO ソースDBサーバ Target DB GoldenGate Trail File ターゲットDBサーバ Mining DB REDO マイニングDBサーバ GoldenGate Trail File ※ 以下は構成イメージであり、記載されていないコンポーネントもあります。
  16. GoldenGateの構成例(③ダウンストリーム構成 - 中間サーバあり) 20 • マイニングDBサーバを別途用意し、Oracle Databaseを構築する • 中間サーバにCapture/Replicatを構成して、マイニングDBとターゲットDBにはリモートアクセスを行う 【対応可能製品/アーキテクチャ】

    GoldenGate Classic Architecture / GoldenGate Microservices Architecture / OCI GoldenGate Microservices Architecture Copyright © 2022, Oracle and/or its affiliates. All rights reserved. On-Premise DC Source DB OCI Tokyo Region REDO ソースDBサーバ Target DB GoldenGate Trail File ターゲットDBサーバ 中間サーバ Mining DB REDO マイニングDBサーバ ※ 以下は構成イメージであり、記載されていないコンポーネントもあります。
  17. GoldenGate と OCI GoldenGate どちらを利用するか? OCI GoldenGate は移行元のDBバージョンによっては利用できない場合がある。 移行元のソース側は GoldenGate、移行先のターゲット側は

    OCI GoldenGate といった構成も可能。 • OCI GoldenGateのバージョンは現在『21c』、アーキテクチャは『Microservice Architecture』 ✓ GoldenGate 21c で CertifyされているOracle Databaseのバージョンは、11.2.0.4, 12.1.0.2, 19c, 21c Certification Matrixにて対応を確認可能( https://www.oracle.com/middleware/technologies/fusion-certification.html ) OS情報(種類/バージョン/ビット数)、DB情報(バージョン)から対応を確認する ✓ Oracle Database 11.2.0.4でMicroservices Architectureを利用する場合、必須パッチが存在 参考: Oracle GoldenGate -- Oracle RDBMS Server Recommended Patches (Doc ID 1557031.1) 参考: Latest GoldenGate/Database (OGG/RDBMS) Patch recommendations (Doc ID 2193391.1) 21 Copyright © 2022, Oracle and/or its affiliates. All rights reserved.
  18. 各構成例の影響比較(サマリ) 23 • 現行DBサーバ(ソースDBサーバ)へのリソース影響やデータ伝播性能、構成の複雑性を考慮し、GoldenGateの 構成を検討する • 統合キャプチャ利用前提での比較(GoldenGate18c(18.1.0)以上のリリースでクラシック・キャプチャは非推奨) 構成パターン ソースDBサーバ OSリソース影響

    ソースDBサーバ DBリソース影響 構成複雑度 データ伝播性能 ①一般的な構成 大 大 小 小 ②外部アクセス構成 中 大 中 大 ③ダウンストリーム構成 小 小 大 中 【凡例】 大/中/小:各評価項目内(縦軸)を比較した相対評価です Copyright © 2022, Oracle and/or its affiliates. All rights reserved.
  19. 各構成例の影響比較(1/2) 24 • 現行DBサーバ(ソースDBサーバ)へのリソース影響やデータ伝播性能、構成の複雑性を考慮し、GoldenGateの 構成を検討する • 統合キャプチャ利用前提での比較(GoldenGate18c(18.1.0)以上のリリースでクラシック・キャプチャは非推奨) 構成パターン ソースDBサーバOSリソース影響 ソースDBサーバDBリソース影響

    ①一般的な構成 大 • インストールファイル、Trailファイルを保持するディ スク領域の考慮 • プロセスによるメモリ、CPU、I/Oへの考慮 大 • 統合キャプチャ実行用のStreamsプールの確保 • REDOログをマイニングするためのバックグラウンド プロセスが稼働 ②外部アクセス構成 中 • ①と比べてメモリ/CPUへの影響は小さい • I/Oは中間サーバからのREDO読込み • ディスク領域の考慮は不要 大 • 統合キャプチャ実行用のStreamsプールの確保 • REDOログをマイニングするためのバックグラウンド プロセスが稼働 ③ダウンストリーム構成 小 • ①と比べてメモリ/CPUへの影響は小さい • I/OはマイニングDBへのREDO転送 • ディスク領域の考慮は不要 小 • 統合キャプチャ実行用のStreamsプールはマイニ ングDBで確保 • REDOログをマイニングするためのバックグラウンド プロセスはマイニングDBで稼働 【凡例】 大/中/小:各評価項目内(縦軸)を比較した相対評価です Copyright © 2022, Oracle and/or its affiliates. All rights reserved.
  20. 各構成例の影響比較(2/2) 25 • 現行DBサーバ(ソースDBサーバ)へのリソース影響やデータ伝播性能、構成の複雑性を考慮し、GoldenGateの 構成を検討する • 統合キャプチャ利用前提での比較(GoldenGate18c(18.1.0)以上のリリースでクラシック・キャプチャは非推奨) 構成パターン 構成複雑度 データ伝播性能

    ①一般的な構成 小 • ソースDBとターゲットDBのみで構成できる 小 • GoldenGateがDBサーバ上で構成されるため、 伝播性能は高い ②外部アクセス構成 中 • 中間サーバが必要 • Oracle Database Clientによる接続設定が必 要 大 • Oracle Netによるアクセスはネットワーク帯域に 依存 • 全てのREDOログ情報を中間サーバに持っていく 必要がある ③ダウンストリーム構成 大 • マイニングDBへのREDOログ転送設定が必要 中 • REDOログ転送はネットワーク帯域に依存 • 全てのREDOログ情報をマイニングDBサーバに 持っていく必要がある 【凡例】 大/中/小:各評価項目内(縦軸)を比較した相対評価です Copyright © 2022, Oracle and/or its affiliates. All rights reserved.
  21. GoldenGate 利用にあたってのOracle Databaseへの設定項目(1/2) 1. アーカイブログモードの設定(ソースDBのみ) • CaptureプロセスがREDOログ情報を参照するための必須の設定 • 設定変更時にはDB再起動が必要 2.

    各種ロギングの設定(ソースDBのみ) • 強制ロギング(force logging)の設定【alter database文で設定】 ✓NOLOGGING処理も含め、全てのトランザクションをキャプチャする目的で、GoldenGateでは設定を強く推奨 • 最小サプリメンタルロギングの設定【alter database文で設定】 ✓GoldenGateにおいて必須の設定 ✓トランザクション発生中に設定した場合にハングする事象が確認されているため、MOUNT状態での実施を検討する 参考: ALTER DATABASE ADD/DROP SUPPLEMENTAL LOG DATA 文の実行がハングする(KROWN:160831) (Doc ID 1763279.1) ✓設定時に共有プールのフラッシュが行われるため、SQLの再解析により実行計画変動の可能性 参考: サプリメンタル・ロギングについて(KROWN:34739) (Doc ID 1711572.1) • 表単位/スキーマ単位のサプリメンタルロギングの設定【ggsciコマンドで設定】 ✓伝播に必要な列(主キーや一意キー、GoldenGateで定義した代替キー)の論理的な値の情報がREDOに出力される ✓設定によりREDO生成量は増加するが、増量は10%未満であることがほとんど。主キーなし表がある場合は増分傾向が大きい 26 Copyright © 2022, Oracle and/or its affiliates. All rights reserved.
  22. GoldenGate 利用にあたってのOracle Databaseへの設定項目(2/2) 3. 推奨DBパッチの適用(ソースDB,マイニングDB,ターゲットDB) • データベースに対するパッチを確認し、必要に応じて適用する ✓基本的な考えとして、最新のDBBP/RU+Merge Patch の適用が推奨される

    ✓OCI GoldenGateをDB11.2で利用する場合は、Microservices Architectureを利用するための必須パッチが存在 参考: Oracle GoldenGate -- Oracle RDBMS Server Recommended Patches (Doc ID 1557031.1) 参考: Latest GoldenGate/Database (OGG/RDBMS) Patch recommendations (Doc ID 2193391.1) 4. enable_goldengate_replication初期化パラメータの変更(ソースDB,マイニングDB,ターゲットDB) • 11.2.0.4/12.1.0.2以降のDBバージョンでは、enableへの変更が必須 5. GoldenGate用DBユーザの作成(ソースDB,マイニングDB,ターゲットDB) • 専用のDBユーザを準備し、要件に応じた適切な権限付与を行う 6. Streamsプールの確保(ソースDB or マイニングDB,ターゲットDB) • ダウンストリーム構成の場合、マイニングDBでStreamsプールを確保できればよい 27 Copyright © 2022, Oracle and/or its affiliates. All rights reserved.
  23. クラウド移行案件におけるGoldenGate構成事例① 29 Source DB Target DB 使用製品 GoldenGate構成 Exadata Oracle

    11.2.0.4 ExaCS Oracle 19c 現行: GoldenGate CA 12.2, 19.1 新: GoldenGate CA 19.1 一般的な構成 逆伝播(ターゲット):外部アクセス構成 OCI Osaka Region ExaCS On-Premise DC Primary 11.2.0.4 Linux 5.x 中間サーバ(Linux 7.x) GG 12.2 GG 19.1 GG 19.1 Trail File New Primary 19c OCI Tokyo Region ExaCS New Standby 19c DG Standby 11.2.0.4 DG 順伝播 逆伝播 29 ※ CA: Classic Architecture Copyright © 2022, Oracle and/or its affiliates. All rights reserved.
  24. クラウド移行案件におけるGoldenGate構成事例① 30 Source DB Target DB 使用製品 GoldenGate構成 Exadata Oracle

    11.2.0.4 ExaCS Oracle 19c 現行: GoldenGate CA 12.2, 19.1 新: GoldenGate CA 19.1 一般的な構成 逆伝播(ターゲット):外部アクセス構成 OCI Osaka Region ExaCS On-Premise DC Primary 11.2.0.4 Linux 5.x 中間サーバ(Linux 7.x) GG 12.2 GG 19.1 GG 19.1 Trail File ソース・ターゲットで GGバージョンが異なる 逆伝播構成での GGバージョン New Primary 19c OCI Tokyo Region ExaCS New Standby 19c DG Standby 11.2.0.4 DG 順伝播 逆伝播 30 ※ CA: Classic Architecture Copyright © 2022, Oracle and/or its affiliates. All rights reserved. ソースDBサーバのOSとDBの 組合せでCertifyされるGG バージョンを選択 〇:GG12.2→GG19c ×:GG19c→GG12.2
  25. 31 On-Premise DC OCI Tokyo Region クラウド移行案件におけるGoldenGate構成事例② ADG Primary 12.2.0.1

    Standby 12.2.0.1 ADG Standby 12.2.0.1 Mining 12.2.0.1 REDO転送 (Archのみモード) GoldenGate Standby 12.2.0.1 ExaCS ADG Upgrade to 19c New Primary 19c Source DB Target DB 使用製品 GoldenGate構成 Exadata Oracle 12.2.0.1 ExaCS Oracle 19c GoldenGate CA 19.1 ダウンストリーム構成 (中間サーバなし) ※ CA: Classic Architecture 31 Copyright © 2022, Oracle and/or its affiliates. All rights reserved.
  26. 32 On-Premise DC OCI Tokyo Region クラウド移行案件におけるGoldenGate構成事例② ADG Primary 12.2.0.1

    Standby 12.2.0.1 ADG Standby 12.2.0.1 Mining 12.2.0.1 REDO転送 (Archのみモード) GoldenGate Standby 12.2.0.1 ExaCS ADG Upgrade to 19c マイニングDBをOCI上に 構成 DGカスケード構成の活用 New Primary 19c Source DB Target DB 使用製品 GoldenGate構成 Exadata Oracle 12.2.0.1 ExaCS Oracle 19c GoldenGate CA 19.1 ダウンストリーム構成 (中間サーバなし) ※ CA: Classic Architecture 32 Copyright © 2022, Oracle and/or its affiliates. All rights reserved. クラウド上にマイニングDBを 構成するとリソースチューニン グがしやすい オンプレミス側の設定変更を 軽減するため、クラウド側に スタンバイDBを構成 初期データ移行はカスケード 先のスタンバイDBから Upgradeする方式
  27. OCI Tokyo Region ExaCS クラウド移行案件におけるGoldenGate構成事例③ 33 On-Premise DC DG Primary

    11.2.0.4 Standby 11.2.0.4 Mining 19c REDO転送 (Archのみモード) OCI GoldenGate New Primary 19c OCI GoldenGate Source DB Target DB 使用製品 GoldenGate構成 Oracle 11.2.0.4 ExaCS Oracle 19c OCI GoldenGate MA 21c ダウンストリーム構成 (中間サーバあり) ※ MA: Microservices Architecture Copyright © 2022, Oracle and/or its affiliates. All rights reserved.
  28. OCI Tokyo Region ExaCS クラウド移行案件におけるGoldenGate構成事例③ 34 On-Premise DC DG Primary

    11.2.0.4 Standby 11.2.0.4 Mining 19c REDO転送 (Archのみモード) OCI GoldenGate New Primary 19c OCI GoldenGate パッチ適用影響の軽減 REDO転送モード の検討 Source DB Target DB 使用製品 GoldenGate構成 Oracle 11.2.0.4 ExaCS Oracle 19c OCI GoldenGate MA 21c ダウンストリーム構成 (中間サーバあり) ※ MA: Microservices Architecture Copyright © 2022, Oracle and/or its affiliates. All rights reserved. 11.2.0.4の場合、MA用DBパッチ適用が必要 マイニングDBをクラウド側に19cで構築することで パッチ適用は不要に アーカイブREDOログのみをキャプチャするモードの 伝播性能 vs パッチ適用影響のトレードオフ
  29. 37 [経歴] SIerでアプリエンジニア->DBA -> オラクルコンサル • オラクル歴 約 10年半 (DB関連案件~Cloud関連案件を担当)

    日本オラクル Web記事掲載 実践データベース性能テストの極意:Oracle Real Application Testingを使ってみよう https://www.oracle.com/jp/technical-resources/article/first/real-application-testing.html 『書籍: Oracleの現場を効率化する100の技』共著 • 第5章システムテストのTips などを担当 自己紹介:大森 慎司(おおもり しんじ) Copyright © 2022, Oracle and/or its affiliates. All rights reserved.
  30. 38 1. 19c UpgradeとRAT概要 2. RAT(SPA)活用パターン事例 3. SPA実行効果の実例 4. 案件事例Tips

    アジェンダ Copyright © 2022, Oracle and/or its affiliates. All rights reserved.
  31. 40 Copyright © 2022, Oracle and/or its affiliates. All rights

    reserved. ⇒ 今、19cへの移行案件が増えています Oracle Databaseサポート・ライフサイクル 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026 2027 EXTENDED 2027/4まで 18c (12.2.0.2相当) 従来 12.2.0.2として計画されていたリリースはRelease 18となります。また、12.2.0.3として計画されていたリリースはRelease 19となりま す。Release 18, 19は12.2のライフタイムサポートポリシーの範囲でサポート期間が定められます。Oracle Database 19cが12.2の最終リ リースになります。各リリースにおいて最終リリースを適用いただく事でのExtended Supportの適用が可能となります。 11.2.0.4 EXTENDED 12.1.0.2 Paid Extended Support Premier Waived Extended Support fee 12.2.0.1 Oracle 19Or Oracle 19 12.2ファミリー 最終リリース 各サポートレベルでの提供内容* Premier Support : 24x365日の技術問い合わせ、不具合修正とパッチ提供、 セキュリティ・アラートおよび修正、OS等の新規認証 Extended Support: 24x365日の技術問い合わせ、不具合修正とパッチ提供、 セキュリティ・アラートおよび修正 Sustaining Support: 24x365日の技術問い合わせ、作成済のパッチ提供 *詳細は Oracle Software テクニカル・サポート・ポリシー参照 12.2 ファミリー MOS Note#742060.1 参照 Market Driven Support LIMITED ERROR CORRECTION Limited Error Correction EXTENDED 19c (12.2.0.3相当) 2024/4まで MARKET DRIVEN SUPPORT
  32. 41 Upgradeのテストに大きな工数をかけるのは難しい DBアップグレード時のテスト範囲 Upgrade時のテストパターン(事例) 1. ほとんどやらない ➢ 本番稼働後に、性能トラブル多発し、「そんな影響あるとは知らなかった」というケースもあり Copyright ©

    2022, Oracle and/or its affiliates. All rights reserved. 2. バッチ処理のみテスト(バッチウィンドウに収まること) ➢ 性能劣化しそう/したときに影響が大きい処理=負荷の高い処理(SQL) =バッチ ➢ それ以外で性能トラブルが発生した場合は、そのとき対処 3. バッチ処理+オンライン処理抜粋(※)してテスト (※)主要/重要な処理 、性能懸念の処理などから選定 ➢ オンライン処理の中でも「検索/レポート出力処理」など、重そうな処理を見繕ってテスト ➢ 検索条件など、動的にSQL生成されるものはパターン網羅性に課題あり
  33. 42 Real Application Testing(RAT)とは? Copyright © 2022, Oracle and/or its

    affiliates. All rights reserved. Oracle Real Application Testing(以下RAT) は、主にUpgradeなどのシステム 変更時に使用できる、高品質かつ低作業コストでテストするためのEEオプションです。 Real Application Testing SQL Performance Analyzer (SPA) ⚫ SQL単体テスト(性能/非互換検出) ⚫ システム変更前後でのSQLの実行計画やパフォー マンスの比較レポートを生成 Database Replay ⚫ システムテスト ⚫ 本番環境のトランザクションを記録(キャプチャ)し、テスト環 境で再現(リプレイ)、比較レポートを生成 ? 【RATメリット】:テスト大幅効率化(テスト工数削減)、テスト期間短縮 実行計画や単体性能、SQL 互換性(エラー有無)のチェックに スループットのチェック、 リソース使用量のチェックに
  34. 43 RATのユースケース Copyright © 2022, Oracle and/or its affiliates. All

    rights reserved. • アップグレード時のSQL互換性やSQL性能影響をチェック – SPAを使用し、数万本のSQLからエラーの発生するSQLを発見 – SPAを使用し、数万本のSQLから性能劣化するSQLを発見 • 定期パッチ適用/メンテナンスによる安定運用 – SPA/DB Replayにより、定期パッチの適用や環境設定変更に必要なテストを ルーティン化 • H/W移行にともなう性能影響の調査 – DB Replayにより、新しいH/Wでのリソース使用量の調査や新たなボトルネックの調査
  35. 44 SPA選定理由 Copyright © 2022, Oracle and/or its affiliates. All

    rights reserved. • SQLの網羅的なテストができる(オンラインの動的SQL等) • SQL非互換の観点での評価が容易にできる • OCI DBSystemではRATオプションライセンスも不要 (EEのみで使用可、 Diagnostics/Tuning Packも同様)
  36. 45 SPA実施/評価の流れ Copyright © 2022, Oracle and/or its affiliates. All

    rights reserved. 実行計画が変化したSQL数 実行計画が変化しないSQL数 性能が劣化した SQL数 性能が変わらないSQL数 性能が向上するSQL数 テスト対象のSQL数 実行計画の比較 (EXPLAIN PLAN) 性能比較 (EXECUTE) チューニング対象 • 問題となるSQLの絞り込み – テスト対象のSQLの実行計画の比較⇒実行計画が変化したSQLの性能比較⇒性能が低下するSQLのチューニ ングを実行 – 取得したSTSをフィルタし、再利用してテストすることで、テスト準備にかかる時間、コストを抑え効率的にテストを実 施 評 価 / 対 応 フ ロ ー
  37. 46 SPA技術詳細について Copyright © 2022, Oracle and/or its affiliates. All

    rights reserved. • SPAの技術詳細や、実施手順の詳細説明、および比較レポートイメージ/見方などは、 今回は内容として割愛します。 下記の過去Technology Nightの資料をご参照ください。 [2020/4/9(木)開催] Oracle Database Technology Night #35「データベース・アップグレード成功のために知っておきたいこと」 – データベースアップグレードに有効 Real Application Testing再入門(PDF)
  38. 47 Copyright © 2022, Oracle and/or its affiliates. All rights

    reserved. RAT(SPA)活用パターン事例 1. Exadataリプレイス(SQL非互換テスト) 2. DBCS 移行 3. ExaCS 移行 using DataGuard
  39. 48 1. Exadataリプレイス(SQL非互換テスト) Copyright © 2022, Oracle and/or its affiliates.

    All rights reserved. Exadata X8M Exadata X5 現行基盤 新基盤 STS DBCS ORACLE CLOUD INFRASTRUCTURE (TOKYO REGION) 実行計画比較 ①SQL非互換評価を目的として Oracle Cloud(DBCS)を利用してテスト + 12c/19c環境を迅速に作成できる + OnPの構築スケジュールと独立した評価が可能 ②実行計画変動のある SQLに対して、 OnP Exadata(新基盤) を利用してテスト + 実データを利用して性能 評価を実施可能 ② ➢ ExadataのOnP移行(X5->X8Mリプレイス) ➢ OCI環境を使ってSQLバージョン非互換/実行計画変動の評価を実施 ① メリット:新Exadata機器導入までの期間を有効に使ってスピーディに環境構築し、テストが可能。 データを持って行かずに実施するため、よりライトに実施可能。短期間の使用のため、Cloud費用はかなり低価格に収めら れる。(本案件はDBCSではあるが)ExaCSを使ったテストもコストを抑えて実施可能。 STS
  40. 49 2. DBCS 移行 Copyright © 2022, Oracle and/or its

    affiliates. All rights reserved. ➢ 本番環境が11gR2 OCI DBCSで運用していたものを19c DBCSに移行 ➢ Cloud UI機能を利用してテスト環境を作成しSQL単体性能テストをRAT(SPA)で実施 Object Storage スタンドアロン バックアップ RATテスト用 Database(11. 2) DB 本番 Database(11. 2) DB RATテスト用 Database(19c) DB Upgrade メリット:本番データを使って、SQL性能テスト(SPA)を実施。 SQL性能テスト時も、SPAでは本番相当のCPUを用意する必要もないため、コストは抑えられる。 DBCS環境ではバックアップからのDB複製がGUI操作で容易にできるため、 DBCS環境で本番稼働している場合はRATテスト環境の構築も、より簡単に実施可能
  41. 50 3. ExaCS 移行 using DataGuard Copyright © 2022, Oracle

    and/or its affiliates. All rights reserved. ➢ 本番環境をOnP Exadataで運用していたものをOCI ExaCS(19c)に移行 ➢ DataGuard機能/Cloud UI機能を使って、OnP->OCIにデータ移行/アップグレードを実施 12.2.0.1 OnPデータセンター 19c Tokyoリージョン 12.2.0.1 Active DataGuard Upgrade (Cloud UI) 12.2.0.1 Active DataGuard 12.2.0.1 12.2.0.1 Active DataGuard Active DataGuard DG切離し現行Verテスト 環境を作成 DG切離し現行Ver/新Ver のテストDB環境を それぞれ作成 メリット:DataGuardの複製から19c環境を作っているため、オブジェクト/データの移行が不要なだけでなく、 STSの移行も不要。 ExaCS環境で、DBを複数複製することで、複数環境で同時に別々のテストが可能。 ※固定OCPU/Memoryの範囲であれば、同一筐体内のDB/DBhomeの数は、OCIコスト上の影響はなし。 STS取得 Primary Standby
  42. STS(SQLキャプチャ)の例 52 Copyright © 2022, Oracle and/or its affiliates. All

    rights reserved. 本番環境で取得したSTSのSQL_IDの件数とPlan Hash Value(PHV)の件数(種類)の遷移グラフ(一例)です。 • RAC(2ノード)の環境のため、それぞれのノードでSTSを取得しています。 • キャプチャの後半になるにつれてSQL_ID/PHVともにグラフの傾斜が緩やかになり、収束傾向にあること がわかります。⇒SQLの種類の網羅性は高い状況にあるといえます。 ※SQL_ID Count は、DBA_SQLSETのSTATEMENT_COUNT から取得 PHV Count は、DBA_SQLSET_STATEMENTS の COUNT(DISTINCT PLAN_HASH_VALUE) から取得
  43. SQL非互換の例 53 Copyright © 2022, Oracle and/or its affiliates. All

    rights reserved. 「副問い合わせ内で GROUP BY 句使用時の SELECT リストの制限事項の変更について (KROWN:141697) (Doc ID 1749380.1)」に 該当した例 • 11gR2からの変更(仕様の厳格化)によりエラーが発生する事例 (以前のバージョンでは)EXISTS 句内の副問い合わせで GROUP BY 句に 含まれない列が SELECT 句に指定された場合、それを無視する動作とな ります。 Oracle Database 11g Relase 2(11.2.0) にて動作が変更され、EXISTS 句 内の副問い合わせでも、GROUP BY 句で指定した以外の列が SELECT 句に指定されていれば、ORA-979 が発生するようになっています。
  44. SQL非互換の例 54 Copyright © 2022, Oracle and/or its affiliates. All

    rights reserved. エラーコード /メッセージ SQLサンプル 説明 ORA-00937: 単一グルー プのグループ関数ではあ りません。 select nvl(min(a.col1),(select max(b.col1) from table2 b)) from table1 a; 11gR1->11gR2(11.2.0.4)での非互換です。 グループ関数と NVL 関数を含むクエリに 副問い合わせが含まれていると ORA-937 が発生します (Doc ID 2539061.1) ORA-00918: 列の定義が 未確定です。 SELECT <column> FROM <TABLE NAME> a JOIN <TABLE NAME> b on a.<column> = b.<column> JOIN <TABLE NAME> c on a.<column> = c.<column>; 10gR2->11gR1での非互換です。 同名の列を持つ表を ANSI JOIN で結合した 際、ORA-918 が発生する (KROWN:128950) (Doc ID 1743172.1) ORA-00913: 値の個数が 多すぎます。 insert into hist_dba_profiles select sysdate,a.* from dba_profiles a DBAディクショナリのカラムがバージョン アップによって増えたことによるエラー (select * 使用が原因)【バージョン非互 換】です。
  45. SQL実行計画比較の例 55 Copyright © 2022, Oracle and/or its affiliates. All

    rights reserved. 以下、SPA実行計画比較の実行結果サマリの一例です。 分類 SQL本数 割合 コメント 対象SQL 約64,000本 - 実行計画変動なし 約47,600本 74.4% 比較元と比較先のDBでオプティマイザが作成した実行計画が一致していたSQLです。 実行計画変動あり 約10,000本 15.6% 比較元と比較先のDBでオプティマイザが作成した実行計画が変動したSQLです。 エラー発生 約6,400本 10.0% SPAによる検証時に、エラーが発生したSQLです。 サポート対象外 0本 0% SPAが仕様上評価できないSQLです。 今回、対象となるSQLはありませんでした。 • 「エラー発生」の対象SQLの大半は「ORA-00907: 右カッコがありません。」であり、これはダイナミック・サンプリ ング機能により発行された内部SQLで発生することが確認されており無視可能です。 • その他のエラーに関してもすべて、旧・新のバージョンでのSPA実行でどちらでも発生しており、SQLバージョン非互 換のエラーはありませんでした。 • SQL実行計画の変動があったSQLに対して、SQL性能比較を実施します。
  46. SPAにおける制限事項 56 Copyright © 2022, Oracle and/or its affiliates. All

    rights reserved. SPAではサポートされるSQLとサポートされない(SPAでは評価できない)SQLが存在するため、 SPAでのテスト対象SQLを明確化することが重要です。 SQL 評価可否 • SQL実行計画が作成される問い合わせSQL • INSERT文(SELECT文を含むものは実行計画が作成される 為、評価可能) • DDL文(TABLE/INDEX作成、TABLE LOCK等) • Private DB Link経由のSQL • Export/Import処理 • パラレルDML • Mview Refresh • オプティマイザ統計情報収集 • Dynamic SamplingのSQL 調査/評価の要否を検討。 必要な場合は、別途単体テ ストを検討する。 SPA単体性能テスト実施
  47. SQL性能比較の例 57 Copyright © 2022, Oracle and/or its affiliates. All

    rights reserved. 以下、SPA性能比較の実行結果サマリの一例です。 分類 SQL本数 割合 コメント 対象SQL 約10,000本 - 比較元と比較先のDBでオプティマイザが作成した実行計画が変動したSQLです。 性能変動なし 約9,770本 97.7% SPAによる検証時に、比較元と比較先で性能変動がなかったSQLです。 SQL性能改善 6件 SPAによる検証時に、比較元より比較先で性能が改善したSQLです。 SQL性能劣化発生 4本 SPAによる検証時に、比較元より比較先で性能劣化が発生したSQLです。 タイムアウト発生 1本 SPAによる検証時に、タイムアウト(600秒超過) が発生したSQLです。 エラー発生 約180本 1.8% SPAによる検証時に、エラーが発生したSQLです。 サポート対象外 約40本 0.4% SPAが仕様上評価できないSQLです。 • SQL性能劣化発生のSQLについては、対象SQLの個別分析を実施の上、SQLチューニングを検討/実施 • タイムアウト発生のSQLについては、タイムアウト値を引き上げて再実行して検証。 • エラー発生のSQLについては、全て12c/19c共通のエラーで、SQL非互換のエラーは見受けられませんでした。 • サポート対象外のSQLについては、すべて「パラレルDML」でした。
  48. 58 Copyright © 2022, Oracle and/or its affiliates. All rights

    reserved. SQL性能比較の例 SPA性能比較の実行結果は以下パラメータ値に基づき分類分けされます(参考) WORKLOAD_IMPACT_THRESHOLD: ワークロードに対するSQL文の影響のしきい値。 (※SQLの「Execution Frequency」(=STS内のExecutions情報)に基づいて、そのSQLのSTSワークロード全体に対する影響が計算される) SQL_IMPACT_THRESHOLD: SQLに対する変更の影響のしきい値。
  49. 60 SPA実行Tips Copyright © 2022, Oracle and/or its affiliates. All

    rights reserved. 【事象】メタデータのみ(データ無し)のインポートにもかかわらず、表領域が大量に使用され領域枯渇が発生 【原因】STORAGE句のMINEXTENTSが大きな値となっていたため (本番環境などでは予めデータサイズを見込んでMINEXENTSを大きくしていることがあるため注意) 【対処】impdpオプションとしてTRANSFORM=STORAGE:n(TRANSFORM=SEGMENT_ATTRIBUTES:n)を設定 準備: メタデータ(DBオブジェクト)のインポート Oracle Database Release 19 ユーティリティ 3 Oracleデータ・ポンプ・インポート 3.4.51 TRANSFORM SEGMENT_ATTRIBUTES:[Y | N] この変換は、CLUSTER、CONSTRAINT、INDEX、ROLLBACK_SEGMENT、TABLEおよびTABLESPACEの各オブジェクト型に対して有効です。 値をYに指定すると、適切なDDLにセグメント属性(物理属性、記憶域属性、表領域およびロギング)が指定されます。デフォルトはYです。 STORAGE:[Y | N] この変換は、CLUSTER、CONSTRAINT、INDEX、ROLLBACK_SEGMENTおよびTABLEの各オブジェクト型に対して有効です。 値をYに指定すると、適切なDDLにSTORAGE句が指定されます。デフォルトはYです。SEGMENT_ATTRIBUTES=Nの場合、このパラメータは無視されます。
  50. 61 SPA実行Tips Copyright © 2022, Oracle and/or its affiliates. All

    rights reserved. 【事象】STSキャプチャに長時間かかる 【原因】 カーソルキャッシュからの一括取得にてSTS取得する場合にキャッシュサイズが大きくSQL本数が膨大なため 【対処】定期的な取得(DBMS_SQLTUNE.CAPTURE_CURSOR_CACHE_SQLSET)を使い、取得インターバル内に実行さ れたSQLの増分取得を行うことで1回あたりのSTSキャプチャ本数を減らし、かつ、SQLの網羅性を高めることが可能 STS取得: 比較項目 定期的に複数回取得 コマンド実行時に1回だけ取得 本番負荷影響 あり ・CPU使用率への影響【低】 あり ・CPU使用率への影響【一定時間1コア占有】 (コア占有時間は共有プールのサイズ/対象SQL本数 /抽出フィルタ条件に依存) 収集期間 長い (方針次第) 月次バッチや年次バッチなど、特定日に実行される 処理も収集する場合は長い期間が必要となる。 短い 即時収集が可能。 SQL収集網羅性 高い (方針次第) 定期的に取得件数をモニタリングすることでSQL本 数の収束傾向が確認可能 低い (方針次第) 実行時点でカーソル・キャッシュに存在するSQLの みが取得対象となる。
  51. 62 SPA実行Tips Copyright © 2022, Oracle and/or its affiliates. All

    rights reserved. 【事象】リテラルSQLが多い環境でのSTSキャプチャはSYSAUX表領域の使用サイズが膨れ上がるケースがある 【原因】 バインド変数化されていないリテラルSQLは個々のSQLが別SQL_IDとなり キャプチャされるSQL本数が収束せず膨大となるため 【対処】STSキャプチャのSQL本数とPHVの種類を定期的にロギングして観察することで収束ポイントを判断する (リテラルSQLのSQL_ID(本数)は収束しないがPHVは収束するため) その他、CURSOR_SHARING=FORCE 設定の対処が可能かも検討する 取得したSQL_IDの数 時間 0 バインド変数が 多い環境 リテラルSQLが 多い環境 バインド変数化しているかどうか でSQL_IDの 増え方が異なる 本数 時間 0 SQL_ID数(リテラル) PHVの累積数 PHVは増加しなくなる SQL_ID数(バインド) STS取得:
  52. 63 SPA実行Tips Copyright © 2022, Oracle and/or its affiliates. All

    rights reserved. SPA試行: PL/SQLパッケージおよびタイプ・リファレンス 165 DBMS_SQLPA 165.3.9 SET_ANALYSIS_TASK_PARAMETERプロシージャ LOCAL_TIME_LIMIT: 文単位のタイムアウト(秒)。 TEST_EXECUTE_DOP: SPAタスクを実行する際に必要な同時実行性のレベルを指定します。 【事象】 SPAタスクの実行に長時間かかる 【原因】 TEST EXECUTEでは、実際にSQLをシリアルに実行するためSQL本数に応じて時間がかかる 【対処1】LOCAL_TIME_LIMITパラメータを活用することで長時間SQLはタイムアウトさせ個別実行する 【対処2】TEST_EXECUTE_DOPパラメータを活用することでSQLを並列に同時実行する(★18c以降)
  53. 64 SPA実行Tips Copyright © 2022, Oracle and/or its affiliates. All

    rights reserved. SPA比較実行: PL/SQLパッケージおよびタイプ・リファレンス 165 DBMS_SQLPA 165.3.9 SET_ANALYSIS_TASK_PARAMETERプロシージャ PLAN_LINES_COMPARISON: - ALWAYS --すべてのシナリオの計画を行ごとに比較します。 【事象】実行計画が同じにもかかわらず、plan_change=y と判定される 【原因】Endianの変更(例Solaris<->Linux) を伴うOS移行をした場合にはplan hash value(PHV)が異なるため、 同じ実行計画でもplan_change=Yと判断される 【対処】 PLAN_LINES_COMPARISONパラメータをALWAYSに設定することで、 PHVの比較ではなく実行計画の行レベルの比較を行う ➢ Different Plan Hash Value due to Migration from Solaris to Linux Causing SQL Performance Analyzer to Report Incorrect Plan Changes (Doc ID 2065831.1)
  54. 65 SPA実行Tips Copyright © 2022, Oracle and/or its affiliates. All

    rights reserved. SELECT P1.SQL_ID AS SQLID, P1.PLAN_HASH_VALUE AS PHV_12C,P2.PLAN_HASH_VALUE AS PHV_19C FROM DBA_ADVISOR_SQLSTATS P1, DBA_ADVISOR_SQLSTATS P2 WHERE P1.TASK_NAME = <SPAタスク名> AND P1.EXECUTION_NAME = <SPA試行名(12c)> AND P2.TASK_NAME = <SPAタスク名> AND P2.EXECUTION_NAME = <SPA試行名(19c)> AND P1.SQL_ID = P2.SQL_ID AND P1.PLAN_HASH_VALUE <> P2.PLAN_HASH_VALUE / SPAレポート作成: 【事象】 SPAレポート(HTML)のサイズが膨大になり出力に時間がかかる 【原因】 レポートに出力させるSQL詳細の本数を指定する top_sql の値(デフォルト100本)を大きくしすぎると 出力情報が多すぎHTMLファイルが膨大になる ※TYPE => HTML / TOP_SQL => 1000 / SECTION => ALLでの実サイズ例:約640MB 【対処】 SECTION => SUMMARYでサマリ情報のみを取得する(全SQLの詳細情報を出力させることはナンセンス) 実行計画が変動したSQL(PHV)一覧を取得したければ、以下例のようなSQLで抽出可能
  55. 66 SPA実行Tips Copyright © 2022, Oracle and/or its affiliates. All

    rights reserved. 【課題】 SPA実行結果でエラーが発生した場合に、それがSQL非互換なのか、SPA実行上の問題(SPA制約/環境問題) なのか、の区別が難しい 【対処】ERRORSのレポートを、(COMPAREに対して出力するのではなく) 各SPA実行(旧Ver/新Ver)に対して出力する SPA評価(SQL非互換): 新旧バージョンともにエラー の内容/件数が一致している ⇒エラーはバージョン非互換に よるものではない、と判定で きる 新旧バージョンともにエラー の内容/件数が一致している ⇒エラーはバージョン非互換に よるものではない、と判定で きる
  56. Our mission is to help people see data in new

    ways, discover insights, unlock endless possibilities.