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

Oracle Database Technology Night #55 Oracle Autonomous Database 再入門

Oracle Database Technology Night #55 Oracle Autonomous Database 再入門

今回のTech Nightのテーマは Oracle Autonomous Database です。
2018年3月のサービス開始以降、様々な機能強化を続けている Autonomous Database の再入門と題して、直近1年程度の進化を中心に、より使いやすく、マルチクラウド環境でのデータ連携や可用性も進化した Autonomous Database の今をデモも交えてご紹介します。

oracle4engineer

May 16, 2022
Tweet

More Decks by oracle4engineer

Other Decks in Technology

Transcript

  1. 運⽤管理者の視点 • 豊富な実績に⽀えられたアーキテクチャ • ⾼い性能、可⽤性、セキュリティの担保 • ハイレベルな⾃動化・運⽤管理コストの低減 開発者の視点 • すぐに使える

    • 利⽤コストの抑制、従量課⾦であること • 様々なアプリケーションで汎⽤的に利⽤可能 • すぐに利⽤できるツールが存在すること Oracle が考えるデータ活⽤基盤 Copyright © 2022, Oracle and/or its affiliates 4 Autonomous Database 自律型データベース
  2. 新時代のデータベース・サービス Autonomous Database 実績のあるOracle Database / Exadata が基盤 ⾼性能・⾼可⽤性・⾼セキュリティが実装済み AI/機械学習を利⽤した完全⾃動運⽤

    様々なツールが無償で同梱、DBで完結 完全な マネージド サービス 1コア単位でCPUを無停⽌で増減可能 ワークロードに応じた⾃動増減も可能 CPU/ストレージは1秒単位で課⾦ 完全な 柔軟性 あらゆるワークロード(OLTP/分析/混在) あらゆるデータタイプ(構造化/JSON/グラフ等) 1つのデータベースで対応可能 完全な マルチモデル Copyright © 2022, Oracle and/or its affiliates 5
  3. Oracle Cloud + Exadata Database Machine Oracle Database + RAC

    + EE Autonomous Database A fully managed cloud database for all your workloads – Dev, Test, Business, and Mission Critical ORACLE AUTONOMOUS DATABASE 6 Copyright © 2022, Oracle and/or its affiliates.
  4. Oracle Cloud Automated Data Center Operations Complete Infrastructure Automation Complete

    Database Automation Autonomous Database A fully managed cloud database for all your workloads – Dev, Test, Business, and Mission Critical ORACLE AUTONOMOUS DATABASE #cloud #database = #autonomousdatabase 7 Copyright © 2022, Oracle and/or its affiliates.
  5. Autonomous Database 各レイヤーでMachine Learningを活⽤ Copyright © 2022, Oracle and/or its

    affiliates 8 Database Operations Workload Optimizations Database Infrastructure 故障・不調なサーバ、 ストレージ、スイッチ機器の検出と ⾃動回復 ハングや異常検知、 既知の不具合との⽐較、修正 ⾃動SR起票 クエリ・オプティマイザ リアルタイム統計収集 ⾃動チューニング
  6. Autonomous Database 完全な⾃動化によるデータ管理の効率化/コストの削減 Copyright © 2022, Oracle and/or its affiliates

    9 Software Cost Labor Cost Storage Cost Server Cost Facilities Cost *Source: Oracle TCO report 2018. 50% savings calculated based on 16 CPU config w/BYOL from on-premises Oracle Database 管理コストを最⼤80%、TCOを3年間で最⼤50%削減 ファシリティ管理 サーバー管理 OSインストール/パッチ適⽤ DBインストール/パッチ適⽤ バックアップ/リストア HA/DR DB最適化/スケール AP最適化 AP管理 ファシリティ管理 サーバー管理 OSインストール/パッチ適⽤ DBインストール/パッチ適⽤ バックアップ/リストア HA/DR DB最適化/スケール AP最適化 AP管理 $877K $431K Autonomous Database お客様管理 お客様管理 オラクル管理 On-Premise
  7. Autonomous Databaseが実現する世界 ⼀般的なフルマネージド・サービスとの⽐較 Copyright © 2022, Oracle and/or its affiliates

    10 ⾃動的にスケール ⾃動的に オンラインでパッチ適⽤ ⾃動的に セキュアな構成 ⾃動的に モニタリング ⾃動的にバックアップ ⾃動的に障害回避 ⾃動的に パフォーマンス診断 ⾃動的に最適化 ⾃動的に テスト実⾏ ⾃動的に エラーハンドリング ⾃動的に移⾏ 予め最適化 検証済みの構成
  8. Autonomous Database : ⾃動チューニング ⾃動索引、⾃動パーティション Copyright © 2022, Oracle and/or

    its affiliates 11 AS-IS ⾼スキルなエンジニアによる探索的なチューニング • ヒント句による実⾏計画の固定化や、索引付与、 パーティションの検討をコストをかけて実施 • エンジニアのノウハウに依存 • データ量の増加といった最新のデータ断⾯には対応で きないといった課題もあった Autonomous Databaseにおける実装 最新のOracle Database 21cの機能も先⾏して取り込む • オンライントランザクション処理の⾼速化のための⾃動索引(デフォルト無効) • 分析系処理の⾼速化のための⾃動パーティション(デフォルト無効) • ユーザーは利⽤するか否かを選択するだけ TO-BE(オラクルの設計思想) 熟練のエンジニアによる⼀連のプロセスと同等のことを 機械学習を活⽤し⾃動化 • 様々なチューニング項⽬を順次⾃動化していく • 最新のデータ断⾯(統計情報)に基づき、最適な設定 を断続的に探索、⾃動選択することで性能改善を図る ヒト(ノウハウ) モノ(追加サービス、 アプリ改修) カネ(追加コスト) 利⽤するか否かを選択 不要 不要
  9. Autonomous Database︓実⾏計画管理 実⾏計画管理の⾃動化 Copyright © 2022, Oracle and/or its affiliates

    12 AS-IS 統計情報・実⾏計画を⼿動で固定化 • データは変化しないものとして、統計情報を固定 • ヒント句を利⽤して実⾏計画を固定 • その結果、データ変動や新機能に対応できない Autonomous Databaseにおける実装 最新のOracle Database 21cの機能を先⾏して取り込み、実⾏計画管理の全てのステップを⾃動化 • 最新の統計情報、データ構成を機械的に都度収集し、断続的に適⽤テストを⾏い実⾏計画の安定化を実現 • データ量の変動やパッチ適⽤、バージョンアップに伴うアプリケーションの性能劣化を抑制 TO-BE(オラクルの設計思想) 最新のデータ断⾯に併せて、処理性能の安定化・⾼速化を図る • データは変化するものとして、 最新のデータ断⾯に対して最適な実⾏計画を選択する • 実⾏計画安定化のための機能を提供、かつ⾃動化していく ヒト(ノウハウ) モノ(追加サービス、 アプリ改修) カネ(追加コスト) 特別なノウハウは不要 不要 不要
  10. Autonomous Database︓実⾏計画管理 SQLの性能劣化を検出し修復する過程を全て⾃動化 Copyright © 2022, Oracle and/or its affiliates

    13 さらに、 パフォーマンス向上のためにも活⽤ • ⾃動索引 [19c] • ⾃動パーティション[19c] ①SQLの実⾏情報を⾼頻度で⾃動収集 (⾃動SQLチューニングセット) Object Activity Tracking System AWR SQL Tuning Set 実⾏計画 履歴 ②リソースを⼤量消費する上位SQLを⾃動検出 (⾃動SQL計画管理) ④現⾏のベースラインと代替プランを⽐較し、 良い実⾏計画であればベースラインに⾃動登録 (SPM展開アドバイザ) 実⾏計画 Baseline PLAN (未承認) PLAN (未承認) PLAN (承認済) PLAN (未承認) PLAN (承認済) PLAN (採⽤) ⑤ベースラインに存在する実⾏計画を優先利⽤ (オプティマイザ) ③代替プランを⾃動検索 (⾃動SQL計画管理)
  11. Autonomous Database︓⾃動的な障害回復 障害時の⾃動フェイルオーバー、⾃動修復 Copyright © 2022, Oracle and/or its affiliates

    14 AS-IS 障害発⽣に対して多⼤なコストをかけていた • お客様独⾃の構成に対して、独⾃のリカバリ・マニュアルを 作成、運⽤コストがかかっていた • にもかかわらず、停⽌時間が発⽣してしまうケースも Autonomous Databaseにおける実装 各コンポーネントで障害を⾃動回避できる実装を組み込み済み • RACによる⾃動フェイルオーバー • セッションの瞬断に対してはApplication Continuity(TAC)によるトランザクションの⾃動リカバリ • ASMによる不正IOの検知、ミラーデータの⾃動参照、破損ブロックの⾃動修復 など TO-BE(オラクルの設計思想) コンポーネントを多重化し、障害があっても⾃動で切り替える 仕組みを提供する • ミッションクリティカルとして堅牢なシステムを実装可能に ヒト(ノウハウ) モノ(追加サービス、 アプリ改修) カネ(追加コスト) デフォルトで構成済み TACは有効化が必要 必要に応じてTAC対応 不要
  12. Autonomous Database︓⾃動パッチ データベースへのパッチ適⽤ Copyright © 2022, Oracle and/or its affiliates

    15 AS-IS 特別な理由がない限り、パッチ適⽤は避ける傾向 • 過去のトラブルの経験やコスト観点で塩漬けするケース • ローリング適⽤ができることは知っているが、 使いこなせないので結局システムを⽌めているケース Autonomous Databaseにおける実装 オラクル社による事前テスト • 複数のテスト環境にて適⽤前テストを実施 サービスを⽌めずに⾃動適⽤(*) • 各リージョンの本番環境に順次適⽤ • 各コンポーネントに対してローリング適⽤ • Application Continuity(TAC)によるトランザクションを⾃動リカバリ 実⾏計画の変動に伴う性能劣化を防ぐ仕組みを実装し、アプリ影響を排除 TO-BE(オラクルの設計思想) 常に最新のパッチを適⽤いただくことを推奨 • 最新技術によるメリットの享受のため • 不具合や脆弱性へのプロアクティブな対応を図るため システムを⽌めずに柔軟に適⽤できる機能を提供していく ヒト(ノウハウ) モノ(追加サービス、 アプリ改修) カネ(追加コスト) 特別なノウハウは不要 TACは有効化が必要 不要 必要に応じてTAC対応 * システム停⽌が必要な場合は事前通知の上で実施 ローリング適⽤
  13. Copyright © 2022, Oracle and/or its affiliates 16 AS-IS ⼿動で対応、業務の変動に柔軟に対応できない

    • 負荷のピークを想定したサイジングによる余剰リソースの 発⽣ • リソースが⾜りない場合は追加HWを調達し、 数ヶ⽉かけてシステムを⽌めつつ構成を変更 Autonomous Databaseにおける実装 煩雑な作業なしに、負荷状況に応じてCPU・ストレージリソースを柔軟に利⽤できる • CPUを動的に割り当てることで性能を担保、アプリケーションの停⽌は不要 • 1 OCPU単位での柔軟なリソース配分により⼤幅なコストダウンが可能 • 負荷のピークに合わせたサイジングは不要 • ユーザーはOCPU数と⾃動スケーリングの利⽤有無を選択するだけ • ストレージの⾃動スケールにも対応 TO-BE(オラクルの設計思想) ミッションクリティカルを⽀えるべく、各リソースの動的変更を実装 • 稼働コア数、メモリサイズを動的にスケールアップ・ダウン • 複数のサーバーを並べ、動的にスケールイン・アウト 2CPU 6CPU 4CPU ヒト(ノウハウ) モノ(追加サービス、 アプリ改修) カネ(追加コスト) 不要 不要 不要(スケールアップ 時のOCPU費用のみ) 1TB 3TB 2TB Autonomous Database︓柔軟性 CPUリソースのオンライン変更、⾃動スケーリング
  14. Autonomous Database︓セキュリティ プロビジョニング直後から強固に保護され、安⼼して利⽤できる Copyright © 2022, Oracle and/or its affiliates

    17 バックアップを含む全てのデータを暗号化 (Transparent Data Encryption) 特権ユーザ・Oracle運⽤者から 顧客データへのアクセスをブロック (Database Vault) DB 全ての通信を暗号化 (Advanced Security) 監査ログを保管 (OCI Audit / Unified Audit) 特定の通信のみを許可 (Network ACL) 27001 : 27017 : 27018 国際的コンプライアンス標準に対応(⼀部抜粋) ・・・ 常に最新のセキュリティパッチで保護 特定のユーザのみを許可 (デジタル証明書/パスワード認証) ※ 主要な機能を抜粋 https://www.oracle.com/jp/cloud/cloud-infrastructure-compliance/ ユーザやセッション情報に基づいて 表のアクセスを列・⾏レベルで制限 (Virtual Private Database ) ⾚字︓Autonomous Databaseで事前構成済みの機能 ⿊字︓追加設定を⾏えばすぐに利⽤可能な機能
  15. 18 Copyright © 2022, Oracle and/or its affiliates Autonomous Database

    ワークロード/デプロイメント⽅式 ORACLE AUTONOMOUS DATABASE Autonomous Data Warehouse (ADW) Autonomous Transaction Processing (ATP) Shared Exadata Infrastructure Dedicated Exadata Infrastructure ワークロード デプロイメント ( /DWH) (OLTP/ ) ( Pluggable Database) ( OCI or C@C*) * C@C: Oracle Cloud@Customer(お客様データセンターでのOCI提供サービス) Autonomous JSON Database (AJD) (JSON ) APEX Application Development (APEX )
  16. 19 Copyright © 2022, Oracle and/or its affiliates Autonomous Database

    価格体系 CPU、ストレージのサイズを個々に設定 • OCPU︓1 OCPU単位で秒課⾦ • 1 OCPUを1時間利⽤した場合︓約162 円(ADW/ATP) • ストレージ : 1 TB単位で秒課⾦ • 1TB を 1カ⽉利⽤した場合︓約14208円 従量課⾦制 • 最低1分からスタート可能 • 1分を超えた利⽤については秒単位で課⾦ • ⼀時的なスケールアップに対するコストを抑制 • テストのための⼀時利⽤を必要最低限のコストで対応 • お⼿持ちのOracle Database ライセンスの持ち込みも可能(BYOL) • 1 OCPUを1時間利⽤した場合︓約39 円(ADW/ATP) 初期費⽤なし ピーク時は 秒単位で拡張 拡張時は 無停⽌で即時適⽤ * 料⾦:︓2022/05 現在 ※1 OCPU = 1物理コア = 2vCPU
  17. 過去1年間で実装された主要な新機能 : 年間50以上の機能追加 LAST 12 MONTHS Machine Learning For Python

    Machine Learning Services AutoML UI New Built-in Data Tools Always Free JSON Database Always Free APEX Property Graph Features Graph Studio Customer Managed Keys Automatic Partitioning Cross-Region ADG OCI Data Catalog Integration APEX 21.1 Vanity URL for APEX apps Support for Blockchain tables Integration with Database Management service DBMS_LDAP and UTIL_TCP packages DB Links with P/E Target PL/SQL API to switch consumer groups Scheduled Stop/Start IAM Authentication Cross-region cloning API for MongoDB TLS and mTLS connections Reconnect refreshable clone Support for cloud code repositories Add my IP button Maintenance + time-zone version notifications Storage AutoScale Improved multidimensional model builder Database Link to 3rd Party Database Copyright © 2022, Oracle and/or its affiliates
  18. 23 Copyright © 2022, Oracle and/or its affiliates データベース・アクション Autonomous

    Databaseをデプロイするとすぐに使える無償のWeb GUIツール Oracle Databaseの各種操作に慣れていない⽅におすすめ • より⾼度なクライアントツールを導⼊する前の、事前ステップとしても活⽤可能 GUIで様々な操作が可能 • 開発︓SQL実⾏、RESTデータサービスの操作、データモデル図の⽣成、JSONデータの操作 • データ・ツール︓データのロード(⼀括、⾃動)、データ・インサイト、カタログ • 管理︓データベースユーザの作成、パスワード管理、領域管理 など • モニタリング︓パフォーマンス・ハブ(ASH分析、SQLモニタリング)
  19. SYSDATE/SYSTIMESTAMP呼び出し時のタイムゾーンのハンドリング セッションレベルでパラメータSYSDATE_AT_DBTIMEZONEの値をTRUEに設定することで、 SYSDATE/SYSTIMESTAMPの戻り値をデータべースのタイムゾーンで返すことができるようになりました。 SYSDATE/SYSTIMESTAMPのタイムゾーンがUTCになることへの回避策としてご利⽤いただけます。 2022/1 SQL> SELECT dbtimezone FROM DUAL;

    /* DBタイムゾーンの確認︓設定はALTER DATABASE SET time_zone='+09:00'(DB再起動必要 )*/ DBTIME ------ +09:00 SQL> SELECT SYSTIMESTAMP FROM DUAL; /* SYSDATE_AT_TIMEZONE有効化前 */ SYSTIMESTAMP --------------------------------------------------------------------------- 01-MAR-22 02.14.49.131008 AM +00:00 SQL> ALTER SESSION SET SYSDATE_AT_DBTIMEZONE=TRUE; Session altered. SQL> SELECT SYSTIMESTAMP FROM DUAL; /* 有効化後 */ SYSTIMESTAMP --------------------------------------------------------------------------- 01-MAR-22 11.15.45.202339 AM +09:00 Copyright © 2022, Oracle and/or its affiliates
  20. ログオン・トリガーでの実装例 SYSDATE/SYSTIMESTAMP呼び出し時のタイムゾーンのハンドリング <adminユーザで実⾏> ALTER DATABASE SET TIME_ZONE = '+9:00'; CREATE

    OR REPLACE TRIGGER apuser.enable_sysdate_at_dbtimezone_trigger AFTER LOGON ON apuser.schema BEGIN execute immediate 'ALTER SESSION SET SYSDATE_AT_DBTIMEZONE=TRUE'; END; / (ADB再起動) sqlplus apuser/password@adb_medium SQL> SELECT TO_CHAR(sysdate,'YYYY/MM/DD HH24:MI:SS') , systimestamp FROM dual; TO_CHAR(SYSDATE,'YY SYSTIMESTAMP ------------------- ---------------------------------------- 2022/04/25 15:06:46 22-04-25 15:06:46.464088 +09:00 2022/1 Copyright © 2022, Oracle and/or its affiliates https://docs.oracle.com/cd//E83857_01/paas/autonomous-database/adbsa/autonomous-initialization-parameters.html#GUID-1D5E830F-2986-4E6C-AF8F-899AC3C85D07
  21. Copyright © 2022, Oracle and/or its affiliates TLS接続のサポート mTLS (相互TLS/Mutual

    TLS)接続とTLS接続の両⽅をサポートする構成が可能になりました。 デフォルトではmTLS接続のみが有効です。 • TLS接続を使⽤する場合の留意点 • ネットワークのアクセスタイプが「許可されたIPおよびVCN限定のセキュア・アクセス」 または「プライベート・エンドポイント・アクセスのみ」であることが前提 • mTLS接続のみ(デフォルト)に戻す場合、既存のTLS接続はすべて切断される 2021/9 チェックを 外した場合 https://docs.oracle.com/cd//E83857_01/paas/autonomous-database/adbsa/support-tls-mtls-authentication.html#GUID-3F3F1FA4-DD7D-4211-A1D3-A74ED35C0AF5
  22. TLS接続のサポート︓ウォレットなしの接続 Oracle Call Interface(OCI)接続 • Oracle Instant Client 19.13 -

    Linuxx64のみ • Oracle Instant Client 19.14 以降-すべてのプラットフォーム • Oracle Instant Client 21.5 以降 -すべてのプラットフォーム JDBC Thin接続 • JDK8 8u162 以降 ODP.NET、ODP.NET Core • 19.13 以降 • 21.4 以降 Copyright © 2022, Oracle and/or its affiliates 2021/9 https://docs.oracle.com/en/cloud/paas/autonomous-database/adbsa/connect-prepare-oci-tls.html#GUID-423C98D1-6A18-4E56-A77F-B6F5CA1424E2
  23. Copyright © 2022, Oracle and/or its affiliates Oracle Database API

    for MongoDB MongoDBクライアント⽤のAPIが提供されました。このAPIを利⽤することでMongoDB⽤に作成されたアプリケーションで Autonomous Databaseにアクセスできるため、既存のMongoDBを使⽤したアプリケーションの移⾏が容易になります。 注意点 • Autonomous Transaction Processing、Autonomous JSON Database で利⽤可能 • ネットワークのアクセスタイプが「指定されたIPおよびVCNからのセキュア・アクセスを許可」の場合のみ、 サービスコンソールの「開発」に「Oracle Database API for MongoDB」が表⽰され、利⽤可能になる • アクセスタイプが「すべての場所からのセキュア・アクセスを許可」および「プライベートエンドポイント」の場合は利⽤不可 2022/2 $ mongosh --tls --tlsAllowInvalidCertificates 'mongodb://TESTUSER:<PASSWORD>@<database URL>.<OCI region>.oraclecloudapps.com:27017/testuser?authMechanism= PLAIN&authSource=$external&ssl=true&loadBalanced=false' testuser> db.createCollection('fruit'); testuser> db.fruit.insertOne( {name:"orange", count:42} ) testuser> db.fruit.insertOne( {name:"apple", count:12, color: "red"} ) JSON MongoDB アプリケーション サービスコンソールの[開発]でMongoDB接続⽂字列を確認 →LoadBalancedプロパティをサポートしているドライバの場合 →LoadBalancedプロパティをサポートしていないドライバの場合 AJD or ATP https://docs.oracle.com/en/database/oracle/mongodb-api/mgapi/overview-oracle-database-api-mongodb.html https://blogs.oracle.com/oracle4engineer/post/mongodb-api-ja
  24. Copyright © 2022, Oracle and/or its affiliates Oracle Database API

    for MongoDB ネットワークのアクセスタイプを「指定されたIPおよびVCNからのセキュア・アクセスを許可」にすると、 サービスコンソールの「開発」に「Oracle Database API for MongoDB」が表⽰され、利⽤可能になる 2022/2 ネットワークACL設定前 ネットワークACL設定後
  25. Copyright © 2022, Oracle and/or its affiliates 起動/停⽌のスケジューリング ADBインスタンスの起動/停⽌のスケジュール設定ができるようになりました。 •

    コンソールから⾃動起動/停⽌スケジュールの表⽰/編集が可能 • 曜⽇別に起動、停⽌の時間を指定 • 分析⽬的での利⽤や開発テスト環境における夜間停⽌等でコスト削減が可能 • AlwaysFreeでは利⽤不可 2021/12 https://docs.oracle.com/cd//E83857_01/paas/autonomous-database/adbsa/autonomous-auto-stop-start.html#GUID-91B1C250-FEAF-438A-939E-190391F82CC4
  26. Copyright © 2022, Oracle and/or its affiliates プライベートエンドポイントのDatabaseに対するデータベースリンク作成 Private Endpointを持つAutonomous

    DatabaseからプライベートIPを保有するOracle Database(ADBを含む)に対して、 データベースリンクを作成できるようになりました 従来は踏み台サーバーを介して設定する必要がありましたが、シンプルに構成できるようになりました ※この機能を使⽤するためには、SRでの機能(プライベート・リンク)の有効化リクエストが必要です。 2021/12 ap-tokyo-1 Private お客様 DC DWH Autonomous Database FastConnect or VPN https://blogs.oracle.com/datawarehousing/post/creating-database-links-from-autonomous-database-to-databases-with-private-endpoints Database Database Dynamic Routing Gateway
  27. プライベートエンドポイントのDatabaseに対するデータベースリンク作成 BEGIN DBMS_CLOUD.CREATE_CREDENTIAL( credential_name => 'PRIVATE_ENDPOINT_CRED', username => 'NICK', password

    => 'password' ); END; / BEGIN DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK( db_link_name => 'PRIVATE_ENDPOINT_LINK', hostname => 'exampleHostname', port => '1521', service_name => 'exampleServiceName', ssl_server_cert_dn => NULL, credential_name => 'PRIVATE_ENDPOINT_CRED', directory_name => NULL, private_target => TRUE); END; / Copyright © 2022, Oracle and/or its affiliates BEGIN DBMS_CLOUD.CREATE_CREDENTIAL( credential_name => 'PRIVATE_ENDPOINT_CRED', username => 'NICK', password => 'password' ); END; / BEGIN DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK( db_link_name => 'PRIVATE_ENDPOINT_LINK', hostname => exampleHostname', port => '1522', service_name => 'exampleServiceName', ssl_server_cert_dn => 'サーバの識別名', credential_name => 'PRIVATE_ENDPOINT_CRED ', directory_name => 'ウォレットのあるディレクトリ', private_target => TRUE); END; / 2021/12 SSL/TCPS TCP
  28. Oracle以外のデータベースへのデータベースリンク Oracle Database Gatewayをユーザ側で⽤意せずに、Oracle以外のデータベースへのデータベースリンクを作成できる ようになりました。他のデータベースのデータを簡単にAutonomous Databaseで利⽤することができます。 前提 • 現在サポートされるデータベースはMySQL Enterprise

    Edition、 Redshift、 PostgreSQL、Snowflake • ターゲットデータベースがパブリックインターネットからアクセス可能であり、サポートされているポート番号を使⽤ • ターゲットデータベースが着信SSLおよびTLS接続を許可する構成 Copyright © 2022, Oracle and/or its affiliates AWS Redshift PostgreSQL SELECT COUNT(*) FROM TABLE@各DBへのDBLINK; MySQL Enterprise Edition Snowflake 2022/3 https://docs.oracle.com/en/cloud/paas/autonomous-database/adbsa/database-links-other-databases-oracle-managed.html
  29. Oracle以外のデータベースへのデータベースリンク BEGIN DBMS_CLOUD.CREATE_CREDENTIAL( credential_name => 'REDSHIFT_LINK_CRED', username => 'NICK', password

    => 'password' ); END; / BEGIN DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK( db_link_name => 'REDSHIFT_LINK', hostname => 'example.com', port => '5439', service_name => 'example_service_name', credential_name => 'REDSHIFT_LINK_CRED', gateway_params => JSON_OBJECT('db_type' value 'AWSREDSHIFT'), ssl_server_cert_dn => NULL); END; / Copyright © 2022, Oracle and/or its affiliates 2022/3 Redshift BEGIN DBMS_CLOUD.CREATE_CREDENTIAL( credential_name => 'SNOWFLAKE_LINK_CRED ', username => 'NICK', password => 'password' ); END; / BEGIN DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK( db_link_name => 'SNOWFLAKE_LINK', hostname => 'xy12345’, port => '443', service_name => 'example_service_name', credential_name => 'SNOWFLAKE_LINK_CRED', gateway_params => JSON_OBJECT('db_type' value 'SNOWFLAKE'), ssl_server_cert_dn => NULL); END; / Snowflake
  30. Oracle以外のデータベースへのデータベースリンク Copyright © 2022, Oracle and/or its affiliates 2022/3 BEGIN

    DBMS_CLOUD.CREATE_CREDENTIAL( credential_name => 'MYSQL_LINK_CRED ', username => 'NICK', password => 'password' ); END; / BEGIN DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK( db_link_name => 'MYSQL_LINK', hostname => 'mysql.example.com', port => '3306', service_name => 'mysql.example_service_name', credential_name => 'MYSQL_LINK_CRED', gateway_params => JSON_OBJECT('db_type' value 'MYSQL'), ssl_server_cert_dn => NULL, private_target => TRUE); END; / MySQL Database Service ※要プライベート・リンクの有効化
  31. リソース・プリンシパルを使⽤したOCIリソースへのアクセス DBMS_CLOUDおよびOCI PL/SQL SDK APIで、リソース・プリンシパルを使⽤したOCIリソースへのアクセスが可能になりました。 リソース・プリンシパルはOCI Identity Access Management(IAM)の⼀部で、OCIリソースが特定のOCIサービスを APIで操作することを承認します。

    この承認は動的グループとIAMポリシーを通じて確⽴されます。 利点 • DBMS_CLOUD.CREATE_CREDENTIALで個別のクレデンシャル作成が不要になる • OCIユーザに依存しない運⽤が可能になり、OCIリソースへのアクセス管理がシンプルになる 注意 • リソース プリンシパル トークンは2時間キャッシュされるため、ポリシーまたは動的グループを変更した場合は 2時間待つ必要があります • リフレッシャブルクローンでは利⽤不可 2021/5 Copyright © 2022, Oracle and/or its affiliates https://docs.oracle.com/cd//E83857_01/paas/autonomous-database/adbsa/resource-principal.html#GUID-E283804C-F266-4DFB-A9CF-B098A21E496A
  32. リソース・プリンシパルを使⽤したOCIリソースへのアクセス 1.リソース・プリンシパルを使⽤するAutonomous Databaseを含む動的グループの作成 例︓特定のコンパートメント内のすべてのAutonomous Databaseを含む動的グループ 動的グループ︓ADBs ルール︓ALL {resource.type = 'autonomousdatabase',

    resource.compartment.id = 'ocid1.compartment.xxxxxxxx'} 2.ポリシーの作成 例︓動的グループにテナント内のObject Storageバケット、バケット内のオブジェクトの管理を許可するポリシー Allow dynamic-group ADBs to manage buckets in tenancy Allow dynamic-group ADBs to manage objects in tenancy 3.リソース・プリンシパルの有効化(adminユーザーで実⾏) EXEC DBMS_CLOUD_ADMIN.ENABLE_RESOURCE_PRINCIPAL(); 2021/5 Copyright © 2022, Oracle and/or its affiliates
  33. リソース・プリンシパルを使⽤したOCIリソースへのアクセス 4.admin以外のユーザに対してリソース・プリンシパルへのアクセス許可(adminユーザーで実⾏) EXEC DBMS_CLOUD_ADMIN.ENABLE_RESOURCE_PRINCIPAL(username => 'APUSER'); 5.リソース・プリンシパルの使⽤例 BEGIN DBMS_CLOUD.COPY_DATA( table_name

    = > 'dept', credential_name => 'OCI$RESOURCE_PRINCIPAL', -- credential_nameにOCI$RESOURCE_PRINCIPALを指定する file_uri_list => 'https://objectstorage.<region>.oraclecloud.com/n/<namespace>/b/<bucket>/o/dept.csv', format => json_object('type' value 'csv', 'skipheaders' value '1') ); END; / 2021/5 Copyright © 2022, Oracle and/or its affiliates
  34. Copyright © 2022 Oracle and/or its affiliates ソースファイルのパーティショニングを使⽤した外部パーティション表 Hive形式や単純なフォルダーなどでパーティション化されたデータを元に外部パーティション表を作成できるようになりました。 DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLEでfile_uri_list句にファイルパスを指定して作成します。

    以下の利点があります。 • シンプルな記述 • ファイルパスからパーティションの列とデータ型を⾃動で判別(⼿動で指定も可) • フォルダの削除や追加に対して同期をとるSYNC_EXTERNAL_PART_TABLEの利⽤ ※partition_clouse句と同時には使えません。 2022/3 DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE ( table_name => 'mysales', credential_name => 'mycredential', file_uri_list => https://objectstorage.us-phoenix-1.oraclecloud.com/.../sales/*.csv', column_list => 'product varchar2(100), units number, country varchar2(100), year (number), month varchar2(2)', field_list => 'product, units', --[Because country, year and month are not in the file, they are not listed in the field list] format => '{"type":"csv","partition_columns":["country", "year", "month"]}'); .../sales/country=USA/year=2020/month=01/file1.csv .../sales/country=USA/year=2020/month=01/file2.csv .../sales/country=USA/year=2020/month=02/file3.csv .../sales/country=USA/year=2020/month=03/file1.csv .../sales/country=FRA/year=2020/month=03/file1.csv 46 https://docs.oracle.com/en/cloud/paas/autonomous-database/adbsa/query-external-partition-file-url-path.html#GUID-078FEAA8-13BE-4FA6-94F4-4BDCE082CDCD
  35. Copyright © 2022 Oracle and/or its affiliates ソースファイルのパーティショニングを使⽤した外部パーティション表 2022/3 47

    country=JAPAN, year=2022,month=01のデータを含むCSVファイルを格納 country=JAPAN, year=2022,month=02のデータを含むCSVファイルを格納 country=JAPAN, year=2022,month=03のデータを含むCSVファイルを格納 country=JAPAN, year=2022,month=04のデータを含むCSVファイルを格納 country=USA, year=2022,month=01のデータを含むCSVファイルを格納 country=USA, year=2022,month=02のデータを含むCSVファイルを格納 country=USA, year=2022,month=03のデータを含むCSVファイルを格納 country=USA, year=2022,month=04のデータを含むCSVファイルを格納 Product A,24 Product B,8 Product C,133 各フォルダ内のCSVファイル …
  36. Copyright © 2022 Oracle and/or its affiliates ソースファイルのパーティショニングを使⽤した外部パーティション表 BEGIN DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE(

    table_name => 'mysales', credential_name => 'MYCRED', file_uri_list => 'https://objectstorage.ap-tokyo-1.oraclecloud.com/.../sales/*.csv', column_list => 'product VARCHAR2(100), units NUMBER, country VARCHAR2(100), year NUMBER, month VARHCAR2(2)', field_list => 'product, units', --[country、year、monthはフォルダ名で指定されるため、CSVファイルには含まれない] format => '{"type":"csv","partition_columns":["country", "year", "month"]}' –[フォルダ構成に対応したパーティション化キー列] ); END; / 2022/3 48 各フォルダ内のCSVファイル Product A,24 Product B,8 Product C,133 …
  37. Copyright © 2022, Oracle and/or its affiliates クロス・リージョンでの⾼可⽤性構成(Autonomous Data Guard)のサポート

    2021/8 Cross-region Standby Local Standby Production Redo logs Redo logs Redo logs Tokyo Osaka これまでは同⼀リージョン内でのスタンバイ構成のみでしたが、 他のリージョンにスタンバイ・データベースを構成可能になりました • ターゲット・リージョン • プライマリが東京の場合︓ ⼤阪もしくは韓国(ソウル) リージョン • プライマリが⼤阪の場合、︓東京リージョン • コンソールからのクリック操作で簡単に構成可能 • スタンバイへのSQLアクセスは不可 • コスト : スタンバイ・データベースのリソースに課⾦ • OCPUのスケールアップ等、プライマリの操作はスタンバイ側にも⾃動適⽤ • ただし、AutoScaleによるコア数の変更はスタンバイには適⽤されない • フェイルオーバー時のRTO:15分、RPO:1分 フェイルオーバー、スイッチオーバー後、接続設定の変更は不要 • ローカルでのAutonomous Data Guardとの併⽤が可能 • プライマリ・データベースに対して1つずつ構成可能、より⾼い可⽤性構成に https://docs.oracle.com/ja-jp/iaas/adbdataguard/autonomous-data-guard-about.html
  38. Copyright © 2022, Oracle and/or its affiliates クロス・リージョンでの⾼可⽤性構成(Autonomous Data Guard)のサポート

    クロス・リージョンとローカルの違い 2021/8 ローカル クロス・リージョン スタンバイの場所 同じリージョンの異なるAD (シングルADの場合は異なるExadata筐体) ブロックボリュームのペア・リージョンに従い構成される ・東京 -> ⼤阪、韓国(ソウル) ・⼤阪 -> 東京 スタンバイへの操作 不可 ネットワーク更新やフェイルオーバー/スイッチオーバー操作など 特定の操作を許可(OCIコンソール画⾯の表⽰名は**_remote) スタンバイ側のコスト OCPU︓プライマリと同⼀(AutoScale分は含まない) Exadata Storage︓プライマリと同⼀サイズ OCPU︓プライマリと同⼀(AutoScale分は含まない) Exadata Storage︓プライマリの2倍のサイズが必要 (データファイル分と、転送データ分が必要となる) ⾃動フェイルオーバー 可(RTO:2分 RPO:0分) 不可 ⼿動フェイルオーバー 可(RTO:2分 RPO:最⼤1分) 可(RTO:15分 RPO:最⼤1分) 切り替え前後の ウォレット変更 不要(AuDG構成後にダウンロードしたクレデンシャル・ ウォレットを継続して利⽤可能) 不要(AuDG構成後にダウンロードしたクレデンシャル・ウォレットを 継続して利⽤可能) 付属ツールのURL 切り替え前後で同じ 切り替え前後で異なる その他 Data Safe、顧客管理の暗号化キー利⽤不可
  39. 透過的アプリケーション・コンティニュイティのサポート Autonomous DatabaseでTAC(透過的アプリケーション・コンティニュイティ)を利⽤できるようになりました。 TACを利⽤すると、セッション切断の影響を受ける進⾏中の処理を⾃動回復できるため、アプリケーションのコードを 変更することなく、アプリケーションの継続性を確保することができます。 TACはAutonomous Database固有の機能ではなく、Oracle Databaseの機能となります。 詳細はこちらをご覧ください。 •

    Tech Nightセミナー#39 「⾼可⽤性アーキテクチャ - アプリケーションの継続性] • 資料 : https://speakerdeck.com/oracle4engineer/apurikesiyonkonteiniyuitei • 動画 : https://videohub.oracle.com/media/1_3reh7niv 注意 • デフォルトでは無効 2021/5 Copyright © 2022, Oracle and/or its affiliates https://docs.oracle.com/cd//E83857_01/paas/autonomous-database/adbsa/application-continuity1.html
  40. 透過的アプリケーション・コンティニュイティのサポート サポートされるクライアント︓ • Oracle JDBC Replay Driver 19c以降。 • Oracle

    JDBC Replay Driver 19c以上を使⽤したOracle Universal Connection Pool (UCP) 19c以上 • Active GridLinkを使⽤したOracle Weblogic Server 12c • Oracle JDBCリプレイ・ドライバ19c以降でUCPを使⽤するサードパーティJDBCアプリケーション・サーバー • Java接続プールまたはOracle JDBC Replay Driver 19c以上を使⽤したスタンドアロンJavaアプリケーション • Oracle Call Interface Session Pool 19c以降 • SQL*Plus 19c (19.8)以降 • ODP.NET プール済、管理対象外ドライバ19c以上("Pooling=true"デフォルト(12.2以降) • 19c以降のOCIドライバを使⽤しているOracle Call Interfaceベースのアプリケーション 注意 • Javaアプリケーションの場合はパッチの適⽤(クライアント側)が必要です 2021/5 Copyright © 2022, Oracle and/or its affiliates https://docs.oracle.com/cd//E83857_01/paas/autonomous-database/adbsa/application-continuity-code.html#GUID-7A9D4F16-B529-4AE7-ADE4-E7F84A614214 https://docs.oracle.com/cd//E83857_01/paas/autonomous-database/adbsa/application-continuity-notes.html#GUID-62BDD928-8F5A-4C39-AFA0-84A08FE3675C
  41. 透過的アプリケーション・コンティニュイティのサポート • サービス名とアプリケーション・コンティニュイティの設定の確認 SELECT name, failover_type FROM DBA_SERVICES; • TPサービスに対して、透過的アプリケーション・コンティニュイティを有効にする

    execute DBMS_APP_CONT_ADMIN.ENABLE_TAC( 'databaseid_tp.adb.oraclecloud.com', 'AUTO', 1200); • TPサービスに対して、透過的アプリケーション・コンティニュイティを無効にする execute DBMS_APP_CONT_ADMIN.DISABLE_FAILOVER( 'databaseid_tp.adb.oraclecloud.com'); 2021/5 Copyright © 2022, Oracle and/or its affiliates https://docs.oracle.com/en/cloud/paas/autonomous-database/adbsa/application-continuity-configure.html#GUID-BFD31E09-1BA2-4D4B-AFBC-42D54B3E2BF0
  42. 新時代のデータベース・サービス Autonomous Database 実績のあるOracle Database / Exadata が基盤 ⾼性能・⾼可⽤性・⾼セキュリティが実装済み AI/機械学習を利⽤した完全⾃動運⽤

    様々なツールが無償で同梱、DBで完結 完全な マネージド サービス 1コア単位でCPUを無停⽌で増減可能 ワークロードに応じた⾃動増減も可能 CPU/ストレージは1秒単位で課⾦ 完全な 柔軟性 あらゆるワークロード(OLTP/分析/混在) あらゆるデータタイプ(構造化/JSON/グラフ等) 1つのデータベースで対応可能 完全な マルチモデル Copyright © 2022, Oracle and/or its affiliates 55