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

Oracle Database 19c 機能概要

oracle4engineer
February 05, 2021
22k

Oracle Database 19c 機能概要

Oracle Databaseのオプション機能を中心に、各機能の概要をまとめています。

oracle4engineer

February 05, 2021
Tweet

More Decks by oracle4engineer

Transcript

  1. 2 • Introduction • Parallel Query • Oracle Partitioning •

    Advanced Compression • Database In-Memory • Diagnostics Pack & Oracle Tuning Pack • Recovery Manager • Database Lifecycle Management Pack • Multitenant • Real Application Clusters • Automatic Storage Management • Data Guard & Oracle Active Data Guard • GoldenGate • Advanced Security • Database Vault • Audit Vault and Database Firewall • Real Application Testing • Data Masking and Subsetting Pack • Machine Learning • Spatial • Oracle Net Services • External Table • Data Pump • Database Link • Resource Manager • Materialized View • Automatic Indexing • Optimizer Statistics • Server Result Cache • Memoptimized Rowstore • Flashback Technology 資料内容 Copyright © 2024, Oracle and/or its affiliates
  2. 設立前 AMPEX社に勤務していたLarry Ellisonが、 CIAのプロジェクトOracleに参画 1977年 Software Development Labs設立 1978年 CIAが最初の顧客

    1979年 世界で初めてリレーショナル・データベースを 商用化(Oracle Version 2) Wright-Patterson空軍基地が採用 1982年 企業名をOracle Systems Corporationに 改名 1995年 企業名をOracle Corporationに改名 Oracle Databaseの生い立ち Ed Oats Bruce Scott Bob Miner Larry Ellison Copyright © 2024, Oracle and/or its affiliates 4
  3. 時代の要望に応じた継続的なイノベーション Oracle Databaseの歴史 メインフレームと ミニコンの時代 クライアント/サーバーの時代 インターネット・ コンピューティングの時代 クラウドと ビッグデータの時代

    • Oracle v2 世界初商用RDBMS • Oracle v4 読み取り 一貫性 • Oracle v5 クライアント/ サーバー • • Oracle v6 行レベルロック PL/SQL Oracle7 パラレルクエリー ストアドプロシージャ • Oracle8 パーティショニング オブジェクト指向 • Java/XML マテリアライズド・ビュー • Real Application Clusters Data Guard • 自動データベース診断 ASM • Exadata Active Data Guard • • Multitenant Database In-Memory Autonomous Database Cloud • Automatic Indexing Copyright © 2024, Oracle and/or its affiliates 5
  4. 主要なデータ・タイプとデータ・モデルに対応 Oracle Databaseはマルチ・モデルをサポート 利用者にとって重要なこと データ一貫性 すぐに分析可能であること セキュリティの確保 信頼性 スケーラビリティ JSON

    Graph Text リレーショナル Spatial Oracle Database Blockchain 開発者にとって重要なこと 適性なデータ・モデル 宣言的なSQLでアクセス トランザクション 主要な開発言語をサポート 標準化されたAPIで開発 Copyright © 2024, Oracle and/or its affiliates 9
  5. Oracle Databaseがサポートする主要なデータ・タイプとデータ・モデル リレーショナル • 表形式 • 数値・文字 • SQLアクセス •

    複雑な問い合わせ Spatial • 座標・ポリゴンなど 空間情報 • GPSなどの 座標情報の活用 Text • テキストもしくは ドキュメント・データ の全文検索 JSON • テキストベースの データ交換用の フォーマット • シンプルで使いやす いデータ形式 Graph • ノードとエッジの 関係性 • 関係性の検索など 高速で実現 Blockchain • データの改ざんを 前後のデータの つながりで防止 • 監査証跡、 トレーサビリティなど Copyright © 2024, Oracle and/or its affiliates 10
  6. 1つのデータベースで複数のワークロードを同時に処理でき、リアルタイムなデータ分析を実現 オンライン・トランザクション処理 • トレーディング・システムや ショッピング・サイトなど • 同時、大量ユーザー、低レイテンシ 分析処理 • ペタバイト級のデータ・ウェアハウス

    など • 大量データ、大量処理 IoT • 各種センサーから情報を受け取 るストリーミング処理 • 大量デバイス、超低レイテンシ • 時系列分析 リアルタイム・アナリティクス • 超高速インメモリ分析 • 機械学習 • グラフ分析 Oracle Databaseはマルチ・ワークロードをサポート Copyright © 2024, Oracle and/or its affiliates 11
  7. Amazon & Niche Database Vendors データおよび処理特性ごとに固有の単一目的データベー スを選択。データがバラバラで一貫性がなく、既存システ ムとの連携が課題でデータ活用も困難 Oracle Database

    複数のデータおよび処理特性に対応するオープンな コンバージド・データベースで重要なビジネス情報を中心に データを一元管理しリアルタイムで活用可能。 データベース・アーキテクチャ戦略の違い Amazon Aurora MongoDB Document Store Google Big Query Azure Synapse Analytics Snowflake Data Warehouse Amazon Quantum Ledger Amazon Redshift Amazon DocumentDB Copyright © 2024, Oracle and/or its affiliates 13
  8. 主要プラットフォーム上で動作し、お客様の投資を保護 他のデータベース • 各データベースは、独自のハードウェアやプラット フォーム上でのみ動作する = ベンダー・ロックイン • 他のプラットフォームに移行するには既存資産を 改修する必要有り

    Oracle Database • どのプラットフォームでも、同じデータベースが動作 = ロックインなし • Exadata、Autonomous Databaseも同様 • アプリケーションを変更せず、他のプラットフォーム上へ 容易に移行可能 Oracle Databaseの特長 - マルチプラットフォーム対応 DB2 for z/OS zOS IBM MF SQL Server Windows x86 HW Aurora AWS SQL Azure MS Azure Oracle Database UNIX Linux Windows AWS MS Azure Oracle Cloud HPE IBM Oracle x86 HW Copyright © 2024, Oracle and/or its affiliates 14
  9. 数十年にわたって、世界中のミッション・クリティカル・システムを支え続けてきた実績 • 最大のデータ保護を実現 • アプリケーションの停止を極小化 • Oracle Databaseに組み込まれ、自動化された機能 • 高いROI

    (投資回収率) 実績をもとに作成されたベスト・プラクティス Oracle Maximum Availability Architecture (MAA) • データベース・サーバーに関わる全階層を考慮 • コンピュート、ストレージ、サイトを冗長化可能 • システムの可用性要件に応じて最適な リファレンス・アーキテクチャを選択 Oracle Databaseの特長 - 高可用性 サイト・レプリケーション Oracleクライアント コンピュート・ ノード ストレージ 接続フェイルオーバー Copyright © 2024, Oracle and/or its affiliates 16
  10. Oracle Databaseは機密データを保護するあらゆる機能を提供 • データベースを評価し、セキュリティ・リスク軽減や改善の対象となる箇所を特定 • ポリシーに違反するデータ・アクセスの試みを検知 • アクセス制御や暗号化等により、データへの不適切あるいはポリシーに違反するアクセスを防止 世界中の政府/国防機関で使われ続けてきた実績 •

    CIAのプロジェクトから始まったOracle Database • 軍事用に開発された技術を民生転用 • Oracle Databaseのエンジンに組み込まれた機能 • 既存のアプリケーションに修正を加えずセキュリティ実装が可能 • システムのセキュリティ要件に応じて最適なソリューションを選択可能 • 実績をもとに作成されたリファレンス・アーキテクチャ Oracle Maximum Security Architecture (MSA) Oracle Databaseの特長 - 堅牢なセキュリティ Copyright © 2024, Oracle and/or its affiliates 17
  11. Exadata X10Mに使用されているデータベース・サーバー は2RUサイズのAMD EPYC 2ソケット・マシン CPU • AMD EPYC 9J14

    (96コア) • 96コア × 2ソケット = 192コア DRAM (DDR5) • 32GB DIMM × 16スロット = 512GB • 64GB DIMM × 24スロット = 1536GB • 96GB DIMM × 24スロット = 2304GB • 128GB DIMM × 24スロット = 3072GB 最近のサーバー・ハードウェア CPUコア数の高密度化は2RUサイズのサーバーで3桁の並列度を可能にした Copyright © 2024, Oracle and/or its affiliates 20
  12. 大量データ処理の並列化 Oracle Databaseのパラレル実行 アプリケーションのデータ操作 • SELECT • DML (INSERT/UPDATE/DELETE/MERGE) •

    PL/SQL オブジェクトのメンテナンス • 表/索引統計収集 • DDL (CREATE TABLE AS SELECT) • CREATE/ALTER INDEX 物理/論理バックアップ • RMAN BACKUP/RESTORE (ファイル・コピー) • Data Pump 高可用性 • インスタンス・リカバリ (インスタンス障害) • RMAN RECOVER (REDOログ適用) • Data Guard REDO Apply Copyright © 2024, Oracle and/or its affiliates 21
  13. 1つのSQL処理を並列に処理 分析/集計処理や大量一括更新に対応 • SELECT • DML (INSERT/UPDATE/DELETE/MERGE) • PL/SQL 複数のパラレル実行サーバー・プロセス(PX)が

    処理対象の表/索引に対してアクセスする範囲を 自動分割して同時に処理 パーティション化されていない通常の表/索引でも パラレル処理が可能 アプリケーションのデータ操作 PX PX PX パラレル実行 サーバー・プロセス 表/索引 PX Copyright © 2024, Oracle and/or its affiliates 22
  14. オブジェクトに対するフルスキャンやソート等を並列に処理 表/索引統計収集 • オプティマイザがSQLの実行計画を決定するのに 使われる • オブジェクトの値の分布を事前に調べる DDL • CREATE

    TABLE AS SELECT B-Tree索引のメンテナンス • 表の特定列の値をソートして行へのアドレスを持つ • CREATE INDEX • ALTER INDEX REBUILD オブジェクトのメンテナンス B-Tree索引 表 Copyright © 2024, Oracle and/or its affiliates 23
  15. サイズの大きなファイルが複数あるコピー等を並列に処理 RMANによる物理バックアップ • ファイル・コピーの並列化 • BACKUP • RESTORE Data Pumpによる論理バックアップ

    • エクスポート/インポートの並列化 • 論理バックアップにはREDOログ適用はできない 物理/論理バックアップ BACKUP データファイル アーカイブREDOログ バックアップ Copyright © 2024, Oracle and/or its affiliates 24
  16. リカバリ(REDOログ適用)操作を並列に処理 インスタンス・リカバリ • Oracleインスタンス異常終了後のデータ一貫性の 復元の並列化 • ロールフォワード(REDOログ適用) • ロールバック RMANによるリカバリ

    • REDOログ適用の並列化 Data Guard REDO Apply • プライマリ・データベースから受け取ったREDOデータの 適用(リカバリ)処理の並列化 高可用性 REDOログ データファイル RECOVER Copyright © 2024, Oracle and/or its affiliates 25
  17. アクセスするデータ・ブロックを減らす SELECT * FROM t1 WHERE primary_key = value1 B-Tree索引は表の特定の列の全行の値をソートして

    行へのアドレスを持っている トランザクション系アプリケーションのようにアクセス対象の 行数が少ない場合は表ブロックのフル・スキャンよりも 索引ブロック → 表ブロックをたどった方がアクセスするデー タ・ブロックの個数が圧倒的に少ない SQLチューニングの基本的な考え方 B-Tree索引ブロック 表 表ブロック Copyright © 2024, Oracle and/or its affiliates 28
  18. 分析および集計処理 SELECT * FROM t1 WHERE column1 BETWEEN value1 AND

    value2 分析および集計処理では、表の中の多くの行へ アクセスすることが必要になるケースが多い アクセスする行数の割合が大きくなると、索引ブロックから 表ブロックへのランダム・アクセスを繰り返すよりも、 表ブロックをフル・スキャンした方が高速になる さらにデータが増えるほど索引ブロックの階層も増えるため、 索引アクセスよりもフル・スキャンの方が高速になる SQLチューニングの基本的な考え方 B-Tree索引ブロック 表 表ブロック Copyright © 2024, Oracle and/or its affiliates 29
  19. 列の値が特定の条件を満たすグループに表を分割する SELECT * FROM t1 WHERE column1 BETWEEN value1 AND

    value2 列の値が特定の条件を満たすグループ(パーティション)に 表を分割する SQLのWHERE句の絞り込み条件がパーティションの条件 に合致すると、該当するパーティションのみにアクセスする (パーティション・プルーニング) 分析および集計処理の表フル・スキャンが特定の パーティションのフル・スキャンに限定できる パーティション表 パーティション1 表 表ブロック パーティション2 パーティション3 Copyright © 2024, Oracle and/or its affiliates 30
  20. アクセス範囲が表全体のサイズに影響されない パーティション・プルーニング 2020/01/01 2020/02/01 2020/03/01 2020/02/01 2020/01/01 2020/01/01 時間の経過 パーティション追加

    パーティション追加 1か月単位で集計するのでパーティションを1か月単位で分割する想定例 表全体のサイズは増加していくが、SQLがアクセスする範囲は1か月分のパーティションに限定される Copyright © 2024, Oracle and/or its affiliates 32
  21. 大量データのメンテナンスに関わる処理時間を削減 データ削除 • DROP PARTITION • TRUNCATE パーティション追加 • 空パーティション

    • 別の表を取り込む 索引リビルド 圧縮 読み取り専用 パーティション単位のメンテナンス操作 表1 表2 列定義が同じ表をパーティションとして取り込む Copyright © 2024, Oracle and/or its affiliates 35
  22. データを圧縮して格納し、容量の節約と検索性能向上を実現 • データを圧縮することで、格納データ量を約1/2から1/4に抑えることが可能 • データを圧縮することにより、ストレージ容量を節約 • さらに、I/O量が減ることにより検索パフォーマンスの性能向上にもつながる • ヒート・マップと自動データ最適化機能(ADO)による高度なデータ配置管理 •

    既存のアプリケーションの変更は一切必要なし Oracle Advanced Compression 処理時間の検証 非圧縮環境 圧縮環境 検索の処理時間が 大幅に短縮 CPU時間 I/O時間 非圧縮環境 圧縮環境 CPU時間 I/O時間 更新のオーバーヘッドも ほとんどない 検索処理における 処理時間の内訳イメージ OLTP処理における 処理時間の内訳イメージ Copyright © 2024, Oracle and/or its affiliates 37
  23. Oracle Databaseの圧縮機能 機能名 対象および用途 基本表圧縮 データの変更が少ない表やパーティション 高度な行圧縮 データの変更が頻繁にある表やパーティション 高度なLOB圧縮と重複削除 DWH環境やOLTP環境における非構造化データ

    高度な索引圧縮 索引 高度なネットワーク圧縮 クライアントとサーバーの間の通信データ REDO転送の圧縮 Data Guard環境 RMANバックアップ圧縮 物理バックアップ データ・ポンプ データの圧縮 論理バックアップ 自動データ最適化(ADO)/ヒートマップ データ配置の最適化 ハイブリッド列圧縮 – ウェアハウス用 データ変更が少ない表やパーティション、より高い圧縮で分析クエリを高 速化したい場合 ハイブリッド列圧縮 – アーカイブ用 データの変更が少なく、データの検索も少ない表やパーティション、最も 高い圧縮率が実現される Advanced Compression Option Oracle Storage, Exadata Copyright © 2024, Oracle and/or its affiliates 38
  24. データの変更が頻繁にある表やパーティションに最適 • DML操作を含めた、あらゆるタイプのデータ操作の処理中に、表データを圧縮可能 • コールドデータまたは非アクティブデータにも使用可能 • OLTPおよびデータウェアハウスアプリケーションの両方に使用可能 • 非圧縮時のデータ量と比較して2倍から4倍の圧縮率 最良な圧縮率とパフォーマンスを提供

    • すべてのDML操作とバルクロード操作で圧縮を維持 • ほとんどのクエリでは、データは圧縮されたままバッファキャッシュに格納 • バッファキャッシュに格納される圧縮データが多いため、総I/O回数が少なくなり、クエリの高速化を期待できる 高度な行圧縮 Copyright © 2024, Oracle and/or its affiliates 39
  25. 非構造化データの圧縮と重複排除によるパフォーマンス向上 高度なLOB圧縮 • 非構造化データを扱う SecureFiles LOBでの圧縮機能を提供 • 圧縮の恩恵を受けないデータは自動的に対象外 • 圧縮済みLOBをさらに圧縮対象から除外

    • コンテンツ管理、メールアプリケーション、ビデオなどのデータアーカイブなどに効果的 • 圧縮アドバイザーがSecureFiles LOBに関するアドバイスを提供 • オーバーヘッドのない読み取り操作 • キャッシュされたデータによる読み取りパフォーマンスの向上 重複排除 • SecureFilesデータの重複コピーを排除 • データに消費されるストレージ容量を大幅に削減 • 書き込みおよびコピー操作を大幅に改善 高度なLOB圧縮と重複排除 Copyright © 2024, Oracle and/or its affiliates 40
  26. バックアップ領域の節約とバックアップ所要時間の短縮 バックアップデータのストレージ要件を大幅に削減 • Oracle Recovery Manager (RMAN)で利用可能なバックアップデータ圧縮機能 • 要件にあわせた圧縮レベルを指定可能 •

    バックアップデータは圧縮されてからストレージまたはテープに書き込まれる RMANバックアップによる圧縮 圧縮レベル Advanced Compression パフォーマンスのメリットとデメリット BASIC 不要 基本機能として利用可能なデフォルトの圧縮アルゴリズム(SE2でも利用可能) 圧縮率はMEDIUMと同等だがCPU使用率が高い LOW 必要 バックアップ・スループットへの影響が最小 MEDIUM 必要 ほとんどの環境で推奨され、圧縮率と速度の優れた組合せ CPU使用率と圧縮率に優れている HIGH 必要 ネットワーク速度が制限事項となる、速度の遅いネットワークでのバックアップに最適 高い CPU使用率と最高の圧縮率 Copyright © 2024, Oracle and/or its affiliates 42
  27. ストレージ容量の削減にとどまらず、I/Oパフォーマンス性能も向上 透過的: アプリケーションの改修は必要なし 高速: トランザクション処理、分析処理、データウェアハウス • インメモリオプションと組み合わせる事で、より多くのデータがバッファキャッシュとフラッシュキャッシュに収まる • クエリの高速化、バックアップと復元の高速化 自動化されたデータストレージの最適化

    • データのライフサイクル全体でストレージの使用量とコストを削減する手法を自動化 削減: フットプリントをより小さく • データベースのサーバーおよびストレージコストを削減 • 重複排除圧縮は、データベースのサイズが大きくなるにつれて、継続的な節約を提供 データベースストレージ最適化の利点 Copyright © 2024, Oracle and/or its affiliates 46
  28. トランザクション処理と分析処理の性能向上はトレードオフ 行型データベース vs. 列型データベース 行型 ▪ トランザクション処理を高速化する行型 – 例: 注文データの挿入と検索

    – 少数の行(ロー)と多数の列(カラム)を高速処理 列型 ▪ 分析処理を高速化する列型 – 例: 都道府県毎の売上合計のレポート – 少数の列(カラム)と多数の行(ロー)を高速処理 SALES SALES 従来は、どちらかを性能向上させると、どちらかにオーバーヘッドが発生するため、 トランザクション処理と分析処理を単一のデータベースで共存することは難しかった Copyright © 2024, Oracle and/or its affiliates 48
  29. 同一データをメモリー上に2種類のフォーマットで保持し、全ての処理を高速化 データベースのメモリー空間内で、 同一データを行型、列型両方のフォーマットで保持 • 行型: バッファキャッシュ • 列型: インメモリー列ストア(IM列ストア) 両方のフォーマットを使い分けることで、

    全てのデータベース処理の高速化を実現 • 分析、集計処理は列型フォーマットに対して実行 • トランザクション処理は行型フォーマットに対して実行 トランザクションの一貫性保証 Database In-Memory (DBIM)機能概要 バッファ キャッシュ IM列 ストア SALES SALES 行型 フォーマット 列型 フォーマット SALES 1つのSALES表に対して 2つのフォーマット ストレージ上には 行型のみ Copyright © 2024, Oracle and/or its affiliates 49
  30. DBIMの特徴 リアルタイム分析 実装が簡単 アプリケーションの 変更なし 混合ワークロード の高速化 Analytics Transactions OLTPシステムで

    分析を実現 リアルタイムの ビジネス決定を可能に 100X 100X 100%の互換性 実証済みの スケールアウト、 可用性、セキュリティ Copyright © 2024, Oracle and/or its affiliates 50
  31. 導入の容易性 DBIMの特徴 1. IM列ストアのサイズを設定 inmemory_size = XXX GB 2. IM列ストア上に格納する表、

    パーティションを選択 alter table | partition … inmemory; 3. 自動的にポピュレート 設定の基本3ステップ インメモリー導入事前調査 (IMアドバイザ、圧縮アドバイザ) IM列ストア上に列型データのポピュレートが完了するまで、行型データを利用し処理が可能です これによりIM列ストアへのポピュレートを待つことなく素早く処理を開始可能です システム・グローバル領域 (SGA) ストレージ上には 行型フォーマットのみ 保存 行型 フォーマット 行型→列型 変換 SALES SALES 行型 フォーマット 列型 フォーマット バックグランド・プロセス (ポピュレート) SALES Copyright © 2024, Oracle and/or its affiliates 51
  32. デュアルフォーマットを透過的に選択 データベースのオプティマイザがSQLにあわせて最適なフォーマットを選択 DBIMの特徴 表毎に処理するデータフォーマットが決まるのではなく、SQL毎に処理するデータフォーマットが透過的に選択されるため、 同一の表をトランザクション処理にも、分析処理にも利用可能 行型 列型 select * from

    SALES where order_id = ‘ABC123’; select region, sum(amount) from SALES group by region; Oracle Database オプティマイザ SALES表 デュアル フォーマット Bツリー索引を 使用した処理 インメモリー検索を 使用した処理 少数の行の全列のデータ取得 一部の列を使った大量行の集計処理 Copyright © 2024, Oracle and/or its affiliates 52
  33. インメモリーのデータ更新 IM列ストア利用時においても、更新処理は基本的に従来と同じ 仕組みで処理される ① 行ストア (バッファ・キャッシュ)における更新 ② IM列ストアの該当IMCUエントリを失効させる ③ 無効なデータの再ポピュレーション(自動/手動)

    無効なデータの再ポピュレーションは、表単位ではなくIMCU単位で 非同期に実行される • In-Memory Compression Unit (IMCU)は、 インメモリー上の圧縮された記憶域単位 IM列ストアを利用しても、DML実行時に追加のI/Oは発生しない ためオーバヘッドはほぼない DBIMの特徴 システム・グローバル領域 (SGA) バッファ キャッシュ IM列 ストア SALES SALES 行型 フォーマット 列型 フォーマット 更新 失効 ① ② ③ Copyright © 2024, Oracle and/or its affiliates 53
  34. ご参考 DBIM単一ユーザーの性能テスト(平均Elapsed Time) 検証シナリオ • スター・スキーマ • 100個のランダムに生成された分析スタイル問合せ • 複数テーブル結合、集計、その他

    • 単一DBユーザーが100個の問合せを順番に実行 • パラレル度 = 4 備考: スター・スキーマに対する問合せ性能向上には、基本的にはビットマップ索引を作成します。 本テストシナリオでは、他クエリーも流れていることを想定し、パラレル度は 4 に設定してあります。 つまり、最大性能を示す検証結果ではありません。 Elapse Time (秒) 9.1 5.5 2.0 0.0 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0 ビットマップ索引 Exadata In-Memory on Exadata 問合せあたりの実行時間(秒) Copyright © 2024, Oracle and/or its affiliates 54
  35. 代表的なユースケース データ マート OLTP DWH 分析用 DB 基幹系 OLTP ①

    既存DWHを統合、インメモリ化し高速化 ② データマートをインメモリ化し、さらに高速化 ③ OLTPシステムを直接インメモリ化し、分析用途に利用 • 分析、レポーティングの高速化 • ダッシュボード画面の高速化(経営/業務系) • リアルタイム分析の促進 ④ 基幹系OLTPシステムとの分離構成 既存システムを極力変更しない 分析処理を負荷分散 レプリケーション Copyright © 2024, Oracle and/or its affiliates 55
  36. オプションを購入することなく、最大16GBのIM列ストアを利用可能に Enterprise Editionの19c RU (19.8)から利用可能 INMEMORY_FORCEパラメータで有効化 • BASE_LEVELに設定 INMEMORY_SIZEは1インスタンス当たり最大16GB •

    RACでは、各インスタンスで最大16GBに使用可能 • マルチテナントはCDBの各インスタンス当たり16GBに制限 特記事項 • 圧縮アルゴリズムの指定不可、自動インメモリー(AIM)は無効など一部制約あり • 認定クラウド環境では、Oracle Cloud Infrastructureで利用可能 Database In-Memory Base Level機能 System Global Area (SGA) Buffer Cache Large Pool Log Buffer Shared Pool In-Memory Area (Max 16GB) Other Copyright © 2024, Oracle and/or its affiliates 56
  37. データベースのパフォーマンス情報を簡単に収集して分析 自動ワークロード・リポジトリ(AWR) • パフォーマンス統計を自動収集 • パフォーマンス履歴の表示および分析 • レポートやビューを簡単に生成 アクティブ・セッション履歴(ASH) •

    アクティブ・セッションの情報を自動収集 • レポートやビューを簡単に生成 自動パフォーマンス診断(ADDM) • AWRデータを自動で素早く分析 • 具体性、一貫性、実行可能性を備えたパフォーマンス提案 Oracle Diagnostics Pack Copyright © 2024, Oracle and/or its affiliates 59
  38. 過去に遡ってデータベースのパフォーマンスを分析 • データベース統計を自動的に収集し、スナップショットとして保存 • スナップショットからAWRレポートを生成 自動ワークロード・リポジトリ(AWR) 1時間毎に収集* SGA AWRスナップショット 8日間保存*

    データベース統計 時間 スナップショットID データベース統計 id=100 id=101 id=102 100-101間のAWRレポート 101-102間のAWRレポート AWRレポートから得られる情報例 • スナップショット詳細 • ロード・プロファイル • サーバー・プロセスのイベントトップ10 • インスタンス効率(%) • SQL統計 • 共有プール統計 • IO統計 • セグメント統計 • SQL文 *変更可能 Copyright © 2024, Oracle and/or its affiliates 60
  39. 短期間のパフォーマンス問題の分析 • アクティブ・セッションの情報を毎秒メモリー(SGA)に格納 • SGA上から、サンプリングして定期的に表へ書き出す • 期間を指定し、ASHレポートを生成可能 アクティブ・セッション履歴(ASH) CPU時間 待機時間

    時間 SessionがACTIVE セッション1 セッション2 1秒ごとにすべてのアクティブ・セッションの 状態をサンプリングして積み上げ 1/10にサンプリングしストレージへ格納 Copyright © 2024, Oracle and/or its affiliates 61
  40. SQLを調査し、SQLチューニングの推奨事項を取得 特定のSQLに包括的な分析を実施し特定された様々な問題に対する推奨事項を提供 リアルタイムおよび過去のパフォーマンスデータを利用して、代替実行計画を特定 自動メンテナンス・タスクとしてデータベース・メンテナンス・ウィンドウで実行も可能 (自動SQLチューニング・アドバイザ) SQLチューニング・アドバイザ SQLプロファイル(*) 統計情報分析 アクセス・パス分析 SQL文分析

    実行計画分析 パラレル・クエリー分析 自動チューニング・オプティマイザ DBA SQLチューニングの 推奨事項例 欠落または失効した統計の収集 SQLプロファイルの作成 不足しているアクセスパスの追加 SQL文の変更 代替実行計画の利用 (*) SQL文に関する補足的な統計情報 例: SQL文で実際に戻された行数 Copyright © 2024, Oracle and/or its affiliates 64
  41. 用途が異なる Oracle Databaseの物理バックアップと論理バックアップ 物理バックアップ 論理バックアップ ツール Recovery Manager (RMAN) Data

    Pump Export 機能 データファイル(データ・ブロック)をコピーする データベースの一部のデータもしくは全体を エクスポートする いつのデータを 復旧できるか データ・ブロックに破損が生じてもリストア (データ・ブロックの変更の起点)とリカバリ (データ・ブロックにREDOログの変更の差分 を適用)で障害直前の状態に復旧できる エクスポートしたデータをインポートしても REDOログの適用はできない エクスポートした時点のデータしか復旧できない 用途 障害に備える仕組み データを移し替える仕組み Copyright © 2024, Oracle and/or its affiliates 68
  42. Oracleインスタンス管理下で行われるデータベースのバックアップ、リストアおよびリカバリ データベース無停止でのオンライン・バックアップ • アプリケーションはバックアップの実行を関知しない データ・ブロック破損の検査 • 破損ブロックのバックアップの防止 • バックアップ・ファイルの検査 どのファイルをどこにバックアップしたかを自動管理

    • どのバックアップ・ファイルからリストアするかを自動 判別 バックアップおよびリストア時間の短縮 • 並列化 • 高速増分バックアップ • 増分更新バックアップ • データ・ブロック単位のリストア Oracle Recovery Manager (RMAN) oracle rman データファイル (コピー元) バックアップ (コピー先) RMANクライアント Oracleサーバー・ プロセス Copyright © 2024, Oracle and/or its affiliates 69
  43. 推奨はRMAN • Oracle付属のバックアップ・ツール • Oracleサーバー・プロセスがデータベースのファイルにア クセスする仕組みを使ってファイルをコピー • Oracleインスタンス管理下で行われる操作 • RMAN以外の方法でコピーするすべての手法

    • Oracleインスタンスがコピーを関知しない • OSのファイル・コピー・コマンド • ストレージ機能のスナップショットやスプリット・ミラー Oracle Databaseの2種類の物理バックアップ手法 oracle rman データファイル (コピー元) バックアップ (コピー先) スナップショット スプリット・ミラー Recovery Manager (RMAN) ユーザー管理バックアップ RMANクライアント Oracleサーバー・ プロセス コピー元ボリューム バックアップ・ボリューム Copyright © 2024, Oracle and/or its affiliates 70
  44. RMANはSQL実行のストレージI/Oをブロックしない • バックアップのファイル・アクセスの仕組みがSQL実行の ファイル・アクセスと同じなのでSQL実行のストレージ I/Oをブロックしない • ストレージ機能のスナップショットやスプリット実行時に 短時間でもI/Oをフリーズさせるものがある オンライン・バックアップ oracle

    rman データファイル (コピー元) バックアップ (コピー先) スナップショット スプリット・ミラー Recovery Manager (RMAN) ユーザー管理バックアップ RMANクライアント Oracleサーバー・ プロセス コピー元ボリューム バックアップ・ボリューム Copyright © 2024, Oracle and/or its affiliates 71
  45. 確実にリカバリするための"Recovery" Manager • コピー時に破損検査が行われる • バックアップしたファイルの破損検査も可能 • 破損領域がそのままコピーされる • 誤った単位でボリュームをコピーしているとリカバリ時に

    なってはじめてリカバリ不能に気付く データ・ブロックの破損検査 oracle rman データファイル (コピー元) バックアップ (コピー先) スナップショット スプリット・ミラー Recovery Manager (RMAN) ユーザー管理バックアップ RMANクライアント Oracleサーバー・ プロセス コピー元ボリューム バックアップ・ボリューム Copyright © 2024, Oracle and/or its affiliates 72
  46. 確実にリカバリするための"Recovery" Manager • どのファイルをいつどこにコピーしたかをOracle自身が管 理する(制御ファイルおよびリカバリ・カタログ) • それに基づきリストアおよびリカバリ操作が自動化でき る • どのファイルをリストアすべきかを人が判断する

    • 誤った単位でボリュームをコピーしているとリカバリ不能 になる バックアップの自動管理 oracle rman データファイル (コピー元) バックアップ (コピー先) コピー元ボリューム バックアップ・ボリューム スナップショット スプリット・ミラー Recovery Manager (RMAN) ユーザー管理バックアップ 管理情報 RMANクライアント Oracleサーバー・ プロセス Copyright © 2024, Oracle and/or its affiliates 73
  47. RMANでのバックアップ、リストアおよびリカバリ時間の短縮 並列化 複数あるコピー対象を並列化 高速増分バックアップ 前回のバックアップ時点から更新された データ・ブロックのみにアクセス 増分更新バックアップ フル・バックアップにあらかじめ 増分バックアップを適用 ブロック・メディア・リカバリ

    1ブロック単位のリストアおよびリカバリ BACKUP RESTORE データファイル バックアップ フル・バックアップ 増分バックアップ データファイル バックアップ RECOVER データファイル Copyright © 2024, Oracle and/or its affiliates 74
  48. Recovery Manager (RMAN) ユーザー管理バックアップ 破損検査 される されない リストアおよび リカバリ操作 自動化できる

    破損箇所の特定からどのファイルをリストアするか まですべて管理者の判断 最小リストア粒度 データ・ブロック ファイルまたはボリューム バックアップおよび リストア時間の短縮 • 高速増分バックアップ • 増分更新バックアップ • ブロック・メディア・リカバリ • 並列化 ストレージ機能との組み合わせ Oracle Databaseの2種類の物理バックアップ手法 ストレージ機能(スナップショットなど)はバックアッ プ構成を誤ると容易にリカバリ不能になるので 注意 Copyright © 2024, Oracle and/or its affiliates 75
  49. データベース、システムおよびアプリケーションの管理者が、Oracle Databaseのライフサイクル管理に 必要なプロセスを自動化するのに役立つ、包括的なソリューション Database Lifecycle Management Pack概要 期待される効果 • 構成の「ずれ」によるトラブルの防止

    • リリース時のヘルスチェックや障害時の 情報収集の高速化 • データベースとデータのセキュリティ強化 • プロアクティブなセキュリティ強化と 障害予防 • 開発・テストサイクルの高速化 ライフサイクル管理ソリューション • 検出 • DBのプロビジョニング • パッチ適用 • DBオブジェクトの変更管理 • DBやOSの構成管理 • コンプライアンス管理 • Enterprise Data Governance • 変更アクティビティ・プランナ Copyright © 2024, Oracle and/or its affiliates 77
  50. 検出 • ホストとそのソフトウェアデプロイメント の識別、管理可能なターゲットとして のホストの追加、およびホストの状態 の監視と管理 DBのプロビジョニング • DBソフトウェアのインストール、DBの 作成やクローニングを自動化すること

    で、構成の標準化、開発およびテス トの迅速化を実現 パッチ適用 • セキュリティパッチなど定期パッチの適 用作業を自動化することにより、低コ ストでセキュリティ対策の最新化、障 害の未然予防を実現 DBオブジェクトの変更管理 • 複数DBのオブジェクト定義情報を一 元管理、履歴管理、比較、同期す ることで、多数あるオブジェクトの開発 およびリリースにおけるリスクと工数を 削減 DBやOSの構成管理 • 初期化パラメーターやパッチレベル、 カーネルパラメーター等を一元的に履 歴管理し、テスト時やリリース時に発 生しがちな環境間差異等のリスクを 低減 コンプライアンス管理 • データベースの構成を定期的に自動 チェックし、組織の定めた標準や業界 標準(PCIDSS等)から逸脱していな いか、脆弱性にさらされていないかを 評価 Enterprise Data Governance • 複数のデータベースから機密データの 格納された表や列を検出、マスキン グ等のセキュリティ対策漏れを防止 変更アクティビティ・プランナ • 四半期ごとのセキュリティ・パッチの ロールアウト、ビジネス要求に合せた 新しいサーバーの構築、データ・セン ターの移行または統合、および環境 全体へのコンプライアンス標準の導入 など様々なオペレーションの計画、管 理および監視 Database Lifecycle Management Pack主な機能 Copyright © 2024, Oracle and/or its affiliates 78
  51. DBソフトウェアのインストール、DBの作成やクローニングを自動化することで、構成の標準化、 開発およびテストの迅速化を実現 主なユースケース • Oracle Databaseのプロビジョニング • Oracle Real Application

    Clustersのプロビジョニング • Oracle Real Application Clustersの拡張および縮小 • Oracle Databaseの作成 • プラガブル・データベースのプロビジョニング • Oracle Database Clientのプロビジョニング データベースのプロビジョニング 基本となる環境 検証環境 ① 検証環境 ② 検証環境 ③ 既存構成をプロファイル化し、 迅速に構成を配布 Copyright © 2024, Oracle and/or its affiliates 79
  52. セキュリティパッチなど定期パッチの適用作業を自動化することにより、低コストでセキュリティ対策の最新化、障害の未然 予防を実現 • パッチ推奨 • 構成情報をもとに、未適用の推奨パッチを提示 • パッチ計画 • 複数のパッチを「パッチ計画」に追加、

    一斉適用可能 • パッチ情報、および構成情報をもとに 競合の事前チェック • パッチ適用 • 手動操作によるオペレーション・ミスを防止 • 検証済みのパッチ計画をテンプレート化することで適用を標準化 パッチ適用 未適用の推奨パッチ Copyright © 2024, Oracle and/or its affiliates 80
  53. 複数DBのオブジェクト定義情報を一元管理、履歴管理、比較、同期することで、多数あるオブジェクトの開発およびリ リースにおけるリスクと工数を削減 データベース・オブジェクトの変更管理 開発DB 本番DB Ver 0.1 Ver 0.2 Ver

    1.0 異なるバージョン間で オブジェクト定義の差分比較 リリースに必要なDDLを作成、実行し、オブ ジェクト定義を安全かつ確実に同期 EMPLOYEES表のEMAIL列の長 さが25から30に増えている Copyright © 2024, Oracle and/or its affiliates 81
  54. データベースの統合とシンプルな運用のための新しいアーキテクチャ Oracle Multitenantの背景 サーバー仮想化 インスタンス分割 スキーマ分割 PDB分割 構成 DB App

    App App スキーマ スキーマ スキーマ OS CDB PDB PDB PDB App App App OS OS DB DB DB App App App OS DB DB DB App App App OS OS Hypervisor Multitenant Copyright © 2024, Oracle and/or its affiliates 86
  55. データベースの統合とシンプルな運用のための新しいアーキテクチャ アプリケーションごとにPDB (プラガブル・データベース)を提供 • アプリケーションの変更は不要 • 高速なプロビジョニング(クローン) • ポータビリティ/可搬性 CDB

    (コンテナ・データベース)で共通オペレーションの実施 • 一元管理(アップグレード、バックアップ、HA構成) • 必要に応じて個別の管理も可能 メモリーとバックグラウンド・プロセスの共有 • より多くのアプリケーションを稼働できる Oracle Multitenantの特徴 PDB Root CDB OS Copyright © 2024, Oracle and/or its affiliates 87
  56. Multitenantのメリット • 設備投資の低減 • サーバー台数の削減 • サーバーのメモリ、コア数の削減、 それに伴うライセンス数の削減 • 運用コストの低減

    • 複数データベースをまとめて管理 • 運用手順の標準化 • 俊敏性の向上 • 迅速なプロビジョニング • セルフサービスによるプロビジョニング • 容易な移行 • アプリケーションの変更なしの移行 メリット サーバー仮想化 インスタンス分割 スキーマ分割 Multitenant 設備投資の低減 × △ 〇 〇 運用コストの低減 × △ 〇 〇 俊敏性の向上 〇 〇 × 〇 容易な移行 〇 〇 × 〇 Copyright © 2024, Oracle and/or its affiliates 88
  57. Multitenantの高集約により、設備投資の低減 データベースの高密度集約(ITリソース有効活用) 統合できるDBの数 メモリ容量* 250 50 200MB 1600MB 87.5%カット 5倍

    同環境なら、5倍の数のデータベースを統合可能 同じ性能を出すために必要なメモリサイズを 87.5%カット(1/8に縮小) ライセンス/ハードウェアコストの節約 5倍の利用効率による 高い費用対効果 同じ環境だったら 同じ性能を出すには *DBを動かすために必要なメモリサイズ シングルインスタンス Multitenant構成 Copyright © 2024, Oracle and/or its affiliates 89
  58. プラガブル・データベースはデータファイルの集合 Multitenantアーキテクチャ REDO ログ・ファイル 制御 ファイル データファイル (表領域) SYSTEM UNDO

    SYSAUX TEMP USERS データファイル (表領域) SYSTEM UNDO SYSAUX TEMP USERS データファイル (表領域) SYSTEM UNDO SYSAUX TEMP USERS PDB 1 PDB n ルート・コンテナ CDB$ROOT PDB 1 PDB n REDO ログ・ファイル 制御 ファイル データファイル (表領域) SYSTEM UNDO SYSAUX TEMP USERS データベース non-CDB構成 CDB構成 Copyright © 2024, Oracle and/or its affiliates 90
  59. 簡単かつ効率的なデータベースのアップグレード A) 一括でアップグレード B) Unplug & Plugの活用 Multitenant機能と活用 Oracle 12.1.0.2

    Oracle 19.8.0.0 アップグレード Oracle 12.1.0.2 Oracle 19.8.0.0 Unplug & Plug アップグレード Oracle 19.8.0.0 Copyright © 2024, Oracle and/or its affiliates 92
  60. アプリケーション・テナントの 中央集中管理 • アプリケーション・コンテナ • PDB間でアプリケーションの オブジェクト共有 • プロキシPDB •

    異なるCDB間での アプリケーション・ルートの同期 • コンテナ・マップ • PDBを使った ロジカル・パーティション 大規模環境にも対応可能な 統合と分離 • 1 CDB当たり最大4,096PDB • PDB毎にキャラクタセット変更可 • PDB毎にフラッシュバック可 • メモリー、I/O、CPUの リソース制御 • ロックダウン・プロファイル • より細かい権限の制御 プロビジョニングの容易さとテナントの 移動しやすさ • 再配置 • PDBの再配置をしても アプリケーションは継続利用可能 • 最小限のダウンタイムでサーバー側 のロードバランスを実施 • リフレッシュ可能なクローン • 参照用途で手動もしくは定期的に 同期をとるPDBを設定可能 • ホット・クローン • オンラインでPDBの複製が可能 Multitenant機能と活用 Copyright © 2024, Oracle and/or its affiliates 93
  61. PDBスナップショット・カルーセル • PDBスナップショットを複数世代取得し、テストなどで 利用可能 • ホット・クローンの仕組みを利用して取得 • 最大8つまでのスナップショットを保存 • 9つ目のPDBスナップショットが取得されると古いものを削除

    • カルーセル内のPDBスナップショットからread/write可能な PDBをオープン PDB単位でのReal Application Testing • 特定のPDBに接続してワークロードのキャプチャ、 リプレイが可能 • PDB管理者が、管理するPDBに対して実施 • 接続しているPDBのワークロードのキャプチャを実施。同様に、 接続しているPDBでワークロードのリプレイを実施。 Multitenant機能と活用 16th 15th 14th 13th 12th 11th 10th 9th T0 T1 T2 T3 T4 T5 T6 T7 CREATE PLUGGABLE DATABASE .. USING SNAPSHOT … 本番 ALTER PLUGGABLE DATABASE SNAPSHOT … 開発 AP DB SQL/ワークロードを取得 取得したSQL/ワークロード 本番環境 テスト環境 Client Replay Client DB Copyright © 2024, Oracle and/or its affiliates 94
  62. 1. 既存システムの統合基盤 2. 開発・検証環境のアジリティ向上 3. SaaS/ASPサービスの基盤として の活用 Multitenantの代表的なユースケース 既存環境を統合しMultitenant化 統合(本番)

    開発 マスター (開発2) (開発1) スナップショット 開発 本番 オンプレミス オンプレミス or Oracle Cloud 異なる環境への複製 独立性、セキュリティ、 運用コスト削減と運用効率化 A社 B社 C社 SaaS/ASP サービス展開 Copyright © 2024, Oracle and/or its affiliates 95
  63. 共有ストレージ・共有キャッシュ型で全ノードがアクティブ スケーラビリティ • 全ノードがアクティブで対等に更新可能 • ノード数(CPU数)増加による性能向上 • トランザクション系: 同時ユーザー数の向上 •

    分析系: 並列度向上 可用性 • Oracleインスタンスに障害が発生しても正常ノードに よって自動的にリカバリされる • 最低1つのOracleインスタンスが稼働していれば 全データにアクセス可能 • ノードごとのローリング・メンテナンス可能 透過性 • Oracleクライアントから見た挙動が シングル・インスタンスと同じ Oracle Real Application Clusters (RAC) 共有ストレージ データ・ベース・サーバー Copyright © 2024, Oracle and/or its affiliates 97
  64. トランザクション系も分析系も同じアーキテクチャで対応 トランザクション系 • 多数のセッションからの同時並行リクエスト • より多くの同時リクエストを処理 集計/分析系 • 1つのSQL処理を並列化 •

    より高い並列度で1つのSQLを処理 スケーラビリティ Oracleクライアント QC PX PX PX PX PX PX PX PX Oracleクライアント Copyright © 2024, Oracle and/or its affiliates 98
  65. データベース・サーバーに障害が発生すると正常ノードが自動リカバリ Oracleインスタンス障害 • 一瞬でOracle Grid Infrastructureに検出される • Oracleインスタンス障害が検出されると正常ノードの Oracleインスタンスによって自動的にリカバリされる •

    最低1つのOracleインスタンスが正常動作していれば 全データにアクセス可能(アプリケーションが動作する) OSより下の階層の障害 • OS以下の障害は正常ノードのOracle Grid Infrastructureがタイムアウトで検出 可用性: データベース・サーバー障害 GI GI GI GI GI: Oracle Grid Infrastructure Copyright © 2024, Oracle and/or its affiliates 100
  66. 一部のノードを停止させてもデータベースは稼働を継続可能 1. 停止 2. パッチ適用 3. 起動 ローリング・パッチ適用 • RACは最低1つのOracleインスタンスが正常動作して

    いれば全データにアクセス可能(アプリケーションが動作 する) • Oracleインスタンス停止 → パッチ適用 → 起動をノード ごとに繰り返すことでデータベース全体としては稼働さ せたままパッチ適用が可能 可用性: ローリング・メンテナンス GI GI GI GI: Oracle Grid Infrastructure Copyright © 2024, Oracle and/or its affiliates 101
  67. Oracleクライアントから見た挙動がシングル・インスタンスと同じ Oracleインスタンスからのデータの見え方が同じ • ストレージを共有しており1つのOracleインスタンスから 全データにアクセス可能 • 複数ノード間でのメモリーの一貫性を全自動で維持 (Cache Fusion) スキーマ構造が同じ

    • 表/索引を格納するデータ・ファイルが同じ • 表/索引のパーティショニングは不要 トランザクション分離レベルの挙動が同じ • 複数のセッションがノード内/ノード間で同じデータにア クセスしたときの挙動が同じ 透過性 シングル・インスタンスで開発したアプリケーションがそのまま動作する Oracleクライアント Copyright © 2024, Oracle and/or its affiliates 102
  68. Oracle接続ドライバは標準機能でRACのことが考慮されている ロード・バランシング • 接続数や負荷に応じて適切に振り分け フェイルオーバー • 接続リクエストを自動再試行 • 接続時フェイルオーバー •

    更新トランザクションを自動再実行可能 • アプリケーション・コンティニュイティ RACへの接続 Oracleクライアント Copyright © 2024, Oracle and/or its affiliates 103
  69. Oracle Real Application Clusters ノード数(CPU数)増加による性能向上 • トランザクション系処理はより多くの同時リクエストに対応 • 集計/分析系処理はより高い並列度で実行時間短縮 可用性

    • Oracleインスタンス障害/ノード障害からの自動リカバリ • 最低1つのOracleインスタンスが正常動作していれば全データにアクセス可能 • ノードごとのローリング・メンテナンス可能 アプリケーションからはシングル・インスタンスと同じに見える • スキーマ構造とトランザクション分離レベルが同じ • シングル・インスタンスで開発したアプリケーションがそのまま動作する まとめ Copyright © 2024, Oracle and/or its affiliates 104
  70. 高性能、高可用性、管理容易性を提供するデータベースとして理想的なストレージ管理機能 Oracle Databaseのストレージ仮想化機能 • Oracle Databaseに対するボリューム・マネージャ兼ファイルシステム • エディションに関係なく、シングルまたはクラスタ環境ともに利用可能 • ASMによるファイルシステム機能も提供

    I/O性能を最大限引き出しつつ、ストレージ管理工数を 大幅削減 • すべてのストレージ・デバイスにまたがったディスクの仮想化とストライピ ングを自動で行い、アクセスを均一化 • ストレージ・デバイスの増減にあわせた自動リバランス ストレージ筐体をまたがる高可用性と拡張性 • ミラーリング(二重化/三重化)可能 • 冗長構成でファイル破損を検出すると自動修復 • ストレージ・デバイス異常を検出すると自動切り離し • ストレージ・デバイスの増減にあわせた自動リバランス Oracle Automatic Storage Management (ASM) 1 2 3 4 1 2 3 4 4 3 1 2 追加 自動リバランス 削除 高性能の維持 高可用性の担保 管理容易性 ミラーリング ストライピング Copyright © 2024, Oracle and/or its affiliates 106
  71. アーキテクチャ ASMインスタンス • ASMディスク・グループ内の構成情報(メタデータ)の管理するインスタ ンス ASMディスク • ASM用に定義されたLUNやストレージ・デバイス ASMディスク・グループ •

    ディスクの論理的な単位 • ディスク・グループごとに冗長化レベルを設定可能 障害グループ • 同一コントローラ配下のディスクをまとめた単位 • 異なる障害グループ間でミラーリングし、データ損失を回避 ASMファイル • ASMディスク・グループ内に格納されるファイル • データベース・ファイルなども含まれる AU(アロケーション・ユニット) • 分割したASMファイルをASMディスクに割り当て配置する単位 Oracle Automatic Storage Management (ASM) データベース インスタンス ASM インスタンス ASMディスク ASM ディスク・グループ ASMファイル AU(アロケーション・ユニット) 障害グループ Copyright © 2024, Oracle and/or its affiliates 107
  72. 「ディスク追加をする際の作業が大変」 例) ディスクや表領域が非常に細かく分割されている • 空き領域がディスクや表領域毎に独立しているため、無駄な空き領域が増大 • 監視対象(ディスクや表領域)が多く、頻繁に領域不足に陥り、運用工数が増大 • データ・ファイル数が多く、SQLの性能劣化やミス・オペレーションを誘発 •

    管理レイヤー数が多い為、運用オペレーションの複雑化 • 変更する際のデータベース管理者とストレージ管理者の間での調整作業の難しさ 例) ディスク追加時に、既存データをリバランスしていない • 空き領域が新規ボリュームにのみ存在する為、新たにINSERTされるレコードがそのボリュームに集中することで、 ボトルネックが発生し易い • 既存レコードは既存ボリューム内に格納されている為、性能改善効果は無し データベースのストレージ - よくある課題 その1: 性能と運用の複雑化 ディスク追加のみだと 新規レコードが一点集中 対策として、一度データを 退避し、全ディスクへ 再投入 データロード後、 データやアクセスが均等化 Copyright © 2024, Oracle and/or its affiliates 108
  73. Stripe And Mirror Everything (S. A. M. E) 「全てのストレージ・デバイスの均等利用を目的に、データをストライプして全てのストレージ・デバイス上に分散配置し、 ミラーリングも行う」という設計手法

    • I/O性能の確保: 全てのストレージ・デバイスのI/O帯域をフル活用 • 可用性を確保: ミラーリングの採用 • 設計の簡素化: 物理的なストレージ構成を隠蔽し、特別な設計は不要 ASMの基本思想 1 2 3 4 3 6 1 7 5 6 7 8 4 2 8 5 異なるデバイスに ミラーリング すべてのデバイスにストライピング Copyright © 2024, Oracle and/or its affiliates 109
  74. 高性能、高可用性、管理容易性を提供するデータベースとして理想的なストレージ管理機能 ストライピング • 全ディスクでファイルを自動均等分散 の形でストライピングし、高性能を維 持 ミラーリング • ミラーリング(2重化/3重化)により、ス トレージ・デバイス障害に対する可用

    性の担保 • ストレージ筺体を区別し、筐体間でミ ラーを保持 動的リバランシング • ストレージ・デバイスの追加/削除時に 既存データを動的に自動再配置し、 容易な管理が可能 • 容量やIOPS不足時に、ストレージ・デ バイスを追加するだけでストレージ拡 張を実現 • データベース無停止でのリバランスが 可能 Oracle Automatic Storage Management 1 2 3 4 1 2 3 4 4 3 1 2 筺体#1 Primary Secondary 筺体#2 追加 自動リバランス Copyright © 2024, Oracle and/or its affiliates 110
  75. ストレージ管理を圧倒的に効率化 ASMによるデータベースの物理設計の簡易化 キャパシティ プランニング データ位置 の検討 論理ボリュームの 作成 ファイルシステムの 作成

    Oracle インストール DB作成 キャパシティ プランニング ディスクグループの 作成 Oracle インストール DB作成 ホットポットを 見付ける データファイル移動 ディスクグループ内での自動均等 分散により管理作業なし H/Wへの ディスク追加 論理ボリュームの 作成 ファイルシステムの 作成 移動データ の検討 新規ディスクに ファイルを移動 DBファイルの改名 H/Wへの ディスク追加 ディスクグループへ の追加 自動リバランス DB 作 成 チ ュ ー ニ ン グ デ ィ ス ク 追 加 工数と所要時間を 大幅に削減 ASM ASM ASM 一般的なストレージ 一般的なストレージ 一般的なストレージ Copyright © 2024, Oracle and/or its affiliates 111
  76. 「耐障害性のためにミラーリングなど対処していたがデータにアクセスできない」 ストレージ・データの障害の例 • ソフトウェアから永続化デバイスまでのどこかの階層がデータを破損させた • それを「検出」するのはデータを読み取って中身を解釈するOracleのプロセス • 破損させた階層は「自分が壊した」というログを残さないため多くの場合根本原因は 迷宮入りする ストレージ・ハードウェアの障害の例

    • 破損データの書き込みリクエストは「そのまま」格納される • 主に永続化層であるHDDおよびフラッシュ・メモリのハードウェア故障への対処 • エンタープライズ向けストレージはコントローラーやインターフェースのハードウェアも ひととおり冗長構成になっている • ハードウェアの故障を検出したら切り替える、または切り離すという対処 データベースのストレージ - よくある課題 その2: 可用性 Oracle Database OS multipath driver device driver Host Bus Adapter storage controller network CPU/memory Copyright © 2024, Oracle and/or its affiliates 112
  77. Oracle Clientに透過的かつ自動的な切り離し、再配置、ブロック修復 ストレージ・デバイス障害時に自動切り離し • OSシステム・コールがエラーになるストレージ・デバイスをオフライン化、 復旧できない場合は切り離す • 冗長化されていれば処理は継続 • ストレージ・パス障害の切り替えはOSのI/Oタイムアウトに依存

    (60秒程度) • Exadataならば数秒でノード障害を切り離せる • ストレージ・デバイスの増減にあわせてリバランスして冗長性を回復 ファイル破損時の自動修復 • 読み取ったファイルの破損を「検出」するのはOracleのプロセスで あるが... • ストレージ・デバイス以外の階層の異常でもストレージのデータを 破損させる場合がある • ASMで冗長化している場合ファイル破損を検出すると自動的に ミラーから読み取り処理継続し、破損箇所を自動修復 ASMのストレージ障害への対処 データベース インスタンス ASM インスタンス 1 2 3 2 3 1 自動切り離し 処理継続 自動修復 自動リバランス Copyright © 2024, Oracle and/or its affiliates 113
  78. システム停止による影響 計画外のデータセンターの 停止や災害の影響による 平均コスト 年間の合計停止時間の平均 24か月間で計画外停止を 経験したUSデータセンターの 割合 91% $10M

    $350K Source: Gartner, Data Center Knowledge, IT Process Institute, Forrester Research 87時間 停止時間による1時間当たり の平均コスト 災害・障害やデータ消失・破損による停止は、ビジネスに致命的な影響を与える → データ保護と可用性を備えたシステム構成を考えることが必要 Copyright © 2024, Oracle and/or its affiliates 115
  79. Oracle Database自身が持つレプリケーション機能でデータ保護・可用性の提供 + 適切なROIを実現 Oracle Data Guard / Oracle Active

    Data Guard プライマリ・ データベース スタンバイ・ データベース 同期・非同期 破損ブロックの 自動修復※ レポーティング※ バックアップ※ データ保護 迅速な切り替え リソースの有効活用 スイッチオーバー フェイルオーバー REDO転送によって同期をとることで、 データーベースを障害およびデータ破 損から保護 計画/計画外停止時に迅速に切り 替えることでダウンタイムを縮小し、 業務を継続 レポーティング、テストやバックアップ 用途でスタンバイ・データベースを活 用可能 ※Active Data Guardオプションが必要 Copyright © 2024, Oracle and/or its affiliates 116
  80. 「必要な時に切り替えようとしたら壊れていて切り替えられなかった」 ストレージ・ミラー方式 • ストレージのコピー機能を利用して、ソースとレプリカ の間でデータの同期をとる方式 • ストレージ・ミラーなどのレプリケーション方式の場合、 ソースでのデータ破損がレプリカにもコピーされ、 いざ切り替えようとしても切り替えられないレプリカに なる可能性がある

    Oracle Databaseのレプリケーション機能では • REDO (差分)を用いて同期をとる方式 • 受信したREDO情報を検査した上で、スタンバイに 適用するため、破損が伝搬しない • Oracle Active Data Guardは、ブロック破損や ロスト・ライトなどを防ぎ、普段から利用して、 いざという時に使えるレプリカを保持 データベースのレプリケーション - よくある課題 その1: データ保護 ストレージ ストレージ ストレージ ストレージ インスタンス (メモリ) インスタンス (メモリ) インスタンス (メモリ) REDOログ REDOログ REDOログ REDOログ Copyright © 2024, Oracle and/or its affiliates 117
  81. データ保護・災害時の業務継続に適したレプリケーション • 要件・用途に合わせたレプリケーション • 2種類の適用方法を提供 • フィジカル・スタンバイ・データベース (データブロックレベルでプライマリと等しい) • ロジカル・スタンバイ・データベース(論理的にプライマリと等しい)

    • 2種類の転送方法を提供 • 同期転送(データ保護を優先) • 非同期転送(システム性能を優先) • データ差分/整合性を担保する仕組み • スタンバイへの書き込み(データ変更)は不可 • 適用プロセスの並列化で差分を削減 • 自動でギャップ解決 • ロスト・ライトを自動で検知 • 破損ブロックを自動で修復し、正しい結果を返す(自動ブロックメディアリカバリ)* Data Guardによるデータ保護 *Active Data Guardオプションが必要 プライマリ・データベース スタンバイ・データベース 同期・非同期 Copyright © 2024, Oracle and/or its affiliates 118
  82. Data Guardアーキテクチャ Data Guardにおける同期の仕組み ログ バッファ プライマリ・ データベース スタンバイ・ データベース

    NSS/ TT LGWR RFS データ ファイル データ ファイル アーカイブ ログ アーカイブ ログ オンライン REDOログ スタンバイ REDOログ REDO転送 REDOを転送、スタンバイ側で受信 REDO適用 リカバリの仕組みでREDOを適用 ロール変換 スイッチオーバー(計画的) フェイルオーバー(計画外)で ロールを変更 MRP ※各バックグラウンド・プロセスの名称 RFS: リモート・ファイル・サーバー・プロセス MRP: 管理スタンバイ・リカバリ・プロセス ※各バックグラウンド・プロセスの名称 LGWR: ログ・ライター・プロセス NSS: ネットワーク・サーバーSYNCプロセス TT: REDO転送スレーブ・プロセス Copyright © 2024, Oracle and/or its affiliates 119
  83. 同期転送(SYNC) データ保護 • プライマリでコミットが発行されるとスタンバイへ転送完 了後にコミット確定 パフォーマンス影響 • スタンバイへの転送時間に依存してプライマリのコミット 処理が待機 非同期転送(ASYNC)

    データ保護 • プライマリでコミットが発行されてもスタンバイへの転送 をまたずにコミット確定 パフォーマンス影響 • プライマリへのコミット処理はスタンバイへの転送を待 機しない Data Guardによるデータ保護 転送方式 3.応答 2.転送 4.確定 1.コミット 1.コミット 2.確定 2.転送 Copyright © 2024, Oracle and/or its affiliates 120
  84. 「切り替え手順が複雑、アプリ側との連携に時間がかかるので切り替えるのを諦めた」 ストレージ・コピーの課題 • 切り替え手順が煩雑で「切り替えることができなかった」、 「時間を要した」結果、サービス停止時間が長期化 • ストレージの切り離しやマウントなどOS上での操作など Oracle Data Guardでは

    • 計画停止と計画外停止などケースにあわせた2種類の切り替え • 障害時に自動切換も可能 • 少ないステップで数秒から数分で切り替えが可能のため、 サービス停止を縮小可能 データベースのレプリケーション - よくある課題 その2: 運用の煩雑化 スタンバイ →プライマリ プライマリ 迅速に切り変えられず、 長期停止 迅速に切り替え、 停止時間を抑える レプリカ マスター Copyright © 2024, Oracle and/or its affiliates 121
  85. 切り替えや切り戻しが容易 • 少ないステップでの切り替えが可能 • SQLでの切り替え • Data Guard Broker (Data

    Guard管理機能)を利用して1コマンドでの切り替 え • 切り替え実施時に高速アプリケーション通知(FAN)を発行可能 • Enterprise Manger Cloud Controlを利用して1クリックでの切り替え • ケースごとの切り替え方法 • スイッチオーバー: メンテナンスなど計画停止で行うロール変換 • 差分がない状態(データが完全に同期)での切り替え • スイッチ後の同期も自動で実施され、スイッチバックも可能 • フェイルオーバー: 障害発生時など、計画外停止で行うロール変換 • 同期転送(最大保護モード)以外はデータ損失の可能性あり • フェイルオーバー後に、旧プライマリをフラッシュバック機能を使って 簡単に新スタンバイに変更可能 • 自動切り替えも可能(Fast Start Failover) Data Guardの切り替え プライマリ スタンバイ スタンバイ →プライマリ プライマリ →スタンバイ スタンバイ →プライマリ 旧プライマリ フェイルオーバー スイッチオーバー Copyright © 2024, Oracle and/or its affiliates 122
  86. 「災対環境の必要性は理解しているけれども普段使わない環境へ投資するのは難しい」 ストレージコピーの課題 • 通常時はレプリカ側が利用されず、有事しか活用されないリソースへ 投資することへの費用対効果が見合わない • 普段使ってないことから、実際に切り替えようとしたら使えない状態で 切り替えられなかった • レプリカ側のデータ破損やロストライト等、レプリカ側のデータ障害に気付けず、

    データ差分があった Oracle Data Guardでは • スタンバイを参照用として利用可能(DMLも対応)なので、 参照系の別システムや参照系処理のオフロードで有効活用 • 日々のバックアップ処理をオフロードしてメインの負荷を削減 • 一時的に書き込み可能モードに切り替えて、テスト環境として利用可能 • 普段から利用し、有事の際にきちんと使えるスタンバイを保持 データベースのレプリケーション - よくある課題 その3: 費用対効果 ソース レプリカ プライマリ スタンバイ Copyright © 2024, Oracle and/or its affiliates 123
  87. 適切なROIを実現 • 参照可能モード(READ ONLY)で平常時の利活用 • Active Data Guardオプションが必要 • DMLも実行可能(頻繁な更新がないようなケースを想定)

    • バックアップをスタンバイで取得することで、プライマリでのバックアップ処理の 負荷を削減し業務影響をなくすことが可能 • 一時的に書き込み可能モードに変換してテスト環境として利用 • フィジカル・スタンバイから一時的に書き込み可能な スナップショット・スタンバイに切り替え • フラッシュバック機能でテスト前の状態に戻し、フィジカル・スタンバイに 戻したら自動で差分適用 • 普段から利用することでデータの整合性、正常性を自動確認 • 参照用として動かすことでデータベースとしての利用可否を確認 • ロストライトなど同期されていないブロックを自動検知 Data Guardのスタンバイ有効活用 レポーティング* バックアップ* テスト環境 *Active Data Guardオプションが必要 Copyright © 2024, Oracle and/or its affiliates 124
  88. Data Guardのユース・ケース DR構成やHA構成 クエリ・オフロード テスト環境 メンテナンス バックアップ処理のオフロード データベースの複製 ▶ 可用性レベルを向上したデータ保護

    ▶ 分析などの参照系のオフロード ▶ プライマリのバックアップ負荷削減 ▶ データベース複製時のプライマリへの負荷削減 ▶ 一時的に書き込み可能モードに変換してテスト ▶ メンテナンスなどの計画停止をローリングで実施することでダウンタイムを短縮 Copyright © 2024, Oracle and/or its affiliates 125
  89. 最小構成 ローカル・スタンバイ 瞬時の切り替えや同期転送が 可能な近距離のスタンバイ リモート・スタンバイ 大規模障害を見据えた災対環境 マルチ・スタンバイ マルチ・スタンバイ ローカル・リモートともにスタンバイを持 ち、状況に応じて切り替え。スタンバ

    イごとに、同期・非同期を設定可 カスケード カスケード・スタンバイ テスト用途などスタンバイとは別に レプリカを持ちたい場合 FarSync(遠隔同期)スタンバイ 遠隔地スタンバイとの同期転送の中継 構成パターン 同期 非同期 Copyright © 2024, Oracle and/or its affiliates 126
  90. Oracle Data Guard/Active Data Guardは、データ保護のための最善策 データ保護 • REDO転送によって複製データベースに同期をとることで、データーベースを障害およびデータ破損から保護 迅速な切り替え •

    計画/計画外停止時に切り替えることでダウンタイムを縮小し、業務を継続 リソースの有効活用 • レポーティング、テストやバックアップ用途でスタンバイ・データベースを活用可能 まとめ Copyright © 2024, Oracle and/or its affiliates 127
  91. Classic ArchitectureとMicroservices Architectureの違い Oracle GoldenGateアーキテクチャ概要 • REST対応サービスを提供する 新しいアーキテクチャ • Oracle

    Databaseのみサポート対象 • WebUIベースの設定・管理 • 今後Oracle Databaseが 接続対象の場合の推奨ビルド • 従来から提供されている アーキテクチャで継続的に提供 • Certification matrix記載の すべてがサポート対象 • コマンドラインベースの設定・管理 ※補足※ • それぞれ、別々のビルドイメージとして提供されています。 • ExtractおよびReplicatは、どちらのArchitectureでも同じものが提供されます • Oracleでは、ExtractはIntegrated Mode、ReplicatはParallel Modeの利用を推奨しています Microservices Architecture Classic Architecture Replicat (Apply) - NonIntegrated Mode - Integrated Mode - Parallel Mode Extract (Capture) - Classic Mode - Integrated Mode Service Manager Admin Server Distribution Server Metrics Server Service Manager Receiver Server Metrics Server Admin Server Extract (Capture) - Classic Mode - Integrated Mode Data Pump Collector Manager Manager Replicat (Apply) - NonIntegrated Mode - Integrated Mode - Parallel Mode Copyright © 2024, Oracle and/or its affiliates 130
  92. 主なユースケース Oracle GoldenGate Data Lake あらゆるデータレイクへの ストリーミングデータ供給 Stream Analytics 機械学習、地理空間および高度な

    ルールの適用 Data Pipelines ストリーム上で受け取った データの変換処理 Database HA/DR アクティブ-アクティブ, マルチマスター, ゼロダウンタイムDB移行 OLTP Replication OLTPデータベース間での トランザクション伝搬 Data Warehouse データウェアハウスへの 最新トランザクションデータ供給 Copyright © 2024, Oracle and/or its affiliates 131
  93. 多種多様な製品やサービスに対応 Oracle GoldenGate リアルタイムな トランザクションデータ伝搬 Oracle Stream Analytics Kafka ETL

    &ML Spark DBMS Cloud Big Data NoSQL Streams MySQL Database Server Oracle Database IBM Db2 Microsoft SQL Server Cassandra Java Message Service HPE NonStop (Guardian) SAP Sybase ASE IBM Informix SAP Sybase ASE Netezza TERADATA IBM Db2 HPE NonStop (Guardian) Oracle Database MySQL Database Server Microsoft SQL Server IBM Informix Greenplum SAP HANA Elasticsearch MongoDB JDBC JDBC Cloudera Hortonworks Cassandra Oracle NoSQL Java Message Service Oracle Cloud Object Storage MapR Google BigQuery Amazon S3 Amazon Aurora Amazon Kinesis Amazon Redshift Oracle Database Cloud Oracle Autonomous Database Confluent Oracle Autonomous Database Kafka Kafka Kafka HBase HDFS Snowflake Microsoft Azure Ecosystem HIVE Flink ETL &ML Copyright © 2024, Oracle and/or its affiliates 132
  94. 多種多様な製品やサービスに対応 Oracle GoldenGate – Data GuardやActive Data Guardとの違い • DB全体を複製

    • REDO適用を利用した物理的な レプリケーション (※1) 一部制限あり 異なるOSやDB間での レプリケーションが可能 (※1) 同一のバージョンやエンディアン間での レプリケーションが可能(※2) (※2)同じData Guard構成内の異機種のプライマリとスタンバイのData Guardサポート(Doc ID 2201589.1) • 必要な表のみをレプリケーションできる • 論理的なレプリケーション Data Guard Active Data Guard Oracle GoldenGate 【堅牢】 【柔軟】 Copyright © 2024, Oracle and/or its affiliates 133
  95. ライセンスの違いによる使用可否 Oracle GoldenGate – Data GuardやActive Data Guardとの違い  REDOログを転送、適用

     計画停止、ディザスタ・リカバリ  様々なデータ破損からの保護  同期および非同期構成のサポート  スタンバイDBの活用(Active Data Guard)  破損データブロックの自動修復(Active Data Guard)  REDOログから抽出したTrailを転送し、SQLを実行  計画停止、移行やアップグレード、リアルタイム・データ連携  異なるOSやDB間でのレプリケーション  オブジェクト単位の柔軟なレプリケーション  Active – Active 構成 REDOを転送 スイッチオーバー Trailを転送 Trailを転送 Oracle Active Data Guard (ADG) Oracle GoldenGate (GG) ※Oracle GoldenGateのライセンスには、Oracle Active Data Guardのライセンスが含まれます Copyright © 2024, Oracle and/or its affiliates 134
  96. データベース内の機密データを暗号化、リダクションにより保護 透過的データ暗号化 • データベース層でデータを暗号化 • データベースを迂回して、ストレージから 直接機密データを読み取ることを阻止 Data Redaction •

    問合せ結果データをリダクション(マスク) • 権限のないユーザーに対して データが表示されるリスクを軽減 Oracle Advanced Security Redacted Applications Data Redaction XXXX-XXXX-4368 Disks Exports Backups Transparent Data Encryption Encrypted Storage d$f8#;!90Wz@Yg#3 Copyright © 2024, Oracle and/or its affiliates 136
  97. アプリケーションの変更なしに機密データを暗号化 透過的データ暗号化(TDE) Disks Exports Backups Transparent Data Encryption Encrypted Storage

    d$f8#;!90Wz@Yg#3 データ・ファイルに格納されているデータを保護 • データ・ファイルに格納されている機密データを暗号化 • 記憶域メディアやデータ・ファイルが盗まれた場合、 格納されているデータの情報流出を防止 • セキュリティに関連した規制コンプライアンスの問題への対応 アプリケーションを変更することなく、機密データへのアクセスが可能 • 許可されているユーザーやアプリケーションでは、 自動的にデータの暗号化および復号を実施 • 暗号化、復号のためにアプリケーション変更は不要 Copyright © 2024, Oracle and/or its affiliates 137
  98. データベース暗号化のイメージ例 透過的データ暗号化(TDE) 正当な権限を持つユーザーが DBに接続してデータを参照 ID Name Salary 1 John $100,000

    2 Bill $200,000 3 Kevin $50,000 4 Susan $300,000 ID Name Salary Ko W(KS -7j_ Nu u/eED l=.d9 A9 k7<: “gxjm F) Lc<= ‘a}41 暗号化によって、ストレージから 直接データの参照は不可 アプリケーションは変更不要で 暗号化データの参照が可能 ストレージ上のファイルから 直接データを参照 Copyright © 2024, Oracle and/or its affiliates 138
  99. • ユーザーの権限に応じてリアルタイムにデータをマスクし、アクセスコントロールを実現 • 職責に応じて閲覧させるべき情報をデータベース側で制御 • アプリケーションの変更なしに、情報漏洩リスクを最小化可能 通常業務で不必要な機密データへのアクセスを抑制 Data Redaction 業務上、参照が必要なユーザー

    テーブル DBサーバー ポリシー設定 APサーバー 2172-9841-4368 XXXX-XXXX-4368 アプリ DBはポリシー設定に基づいて、 利用者権限に応じたマスクを実施 アプリケーションは 伏字化を意識する必要がない 2172-9841-4368 XXXX-XXXX-4368 業務上、参照が不必要なユーザー 2172-9841-4368 6342-4881-5211 3311-0090-5055 マスキングとは異なり、 DB上のデータはマスクされない Copyright © 2024, Oracle and/or its affiliates 139
  100. 特権ユーザーの職務分掌にも対応したアクセス制御 Oracle Database Vault 職務分掌 特権ユーザー (SYS, DBA権限)であっても情報にはアクセスさせない 透過的 既存アプリケーションの変更不要、Multitenant

    Architecture対応 厳密 ユーザー、クライアント情報 (IPアドレスなど)、時間を組み合わせポリシー設定 アプリケーション SELECT * FROM customers 管理者 (特権ユーザー) 人事情報 顧客情報 財務情報 Copyright © 2024, Oracle and/or its affiliates 141
  101. 特権ユーザーの職務分掌 特権ユーザーの無制限のアクセスを禁止し、ユーザーごとのアクセス権限を分離する Oracle Database Vault 機密データの 取り扱い者 DB管理者 セキュリティ 管理者

    機密データ データ・ディクショナリ 業務データ ユーザ・アカウント 時刻 =8:00-19:00 曜日 = 月-金 IPアドレス =xxxxx • 許可された範囲で 機密データにアクセス可能 • DBの運用管理業務 • 業務データと機密データへの アクセスは不可 • アカウントと鍵の管理業務 • 業務データと機密データへの アクセスは不可 必要に応じてルールを適用し、 時間帯やIPアドレスでアクセスを制限する 一般利用者 • 許可された範囲で 業務データにアクセス可能 ルールセット Copyright © 2024, Oracle and/or its affiliates 142
  102. Multitenant Architecture環境でのDatabase Vault SYS 給与 SYS 在庫 PDB2 PDB1 SYS

    SYSTEM CDB Database Vaultで保護されている PDBの表に対して、CDBのSYS ユーザーはアクセスできない Database Vault ON Database Vault OFF CDB 管理者 PDB 管理者 それぞれのPDB管理者が 自分のPDBのみを管理する インフラ管理として 必要な業務のみ アクセスを許可 顧客 人事 CDBのSYSユーザーは PDBの表にアクセス できてしまう Copyright © 2024, Oracle and/or its affiliates 143
  103. 漏れのない監査と不正なSQLからの防御を実現 Oracle Audit Vault and Database Firewall • Oracle Solaris

    • Oracle Linux • Red Hat Enterprise Linux • IBM AIX on Power Systems • Microsoft Windows Server ユーザー ネットワーク イベント Database Firewall 監査情報、 イベントログ Operating Systems Databases ポリシー レポート アラート Audit Vault Server • Oracle Database • MySQL • IBM DB2 • Microsoft SQL Server • SAP Sybase ASE アプリケーション 透過的 既存アプリケーション、データベースの変更不要 正確な検知 SQL文を正確に理解し検知するSQL文法解析エンジンを搭載 漏れのない監査 データベースへのローカル接続等、ネットワークを経由しないSQLも監視 Copyright © 2024, Oracle and/or its affiliates 146
  104. 監査情報の収集、分析、およびレポート • OSと一体化したソフトウェア・アプライアンス • データベース、OS、ディレクトリから 監査レコードを収集し、安全に保存 • 容易なログの絞込み&分析 • アラート通知

    • 調査とコンプライアンスのためのカスタム および事前定義されたレポート • 収集したログはリテンションポリシーで管理 Audit Vault Server 監査情報、 イベントログ Operating Systems Databases ポリシー レポート アラート Audit Vault Server Copyright © 2024, Oracle and/or its affiliates 147
  105. ネットワークのモニタリングによるデータベース監視とSQLインジェクション対策 • OSと一体化したソフトウェア・アプライアンス • ネットワーク・トラフィックからデータベースの アクティビティを監視 • 典型的なアクティビティのプロファイルを作成し、 アクセスパターンの変化をすばやく特定 •

    これまでにないSQLがデータベースに到達するのを 検出またはブロック • ホワイトリスト/ブラックリストベースのポリシーを使用した 異常検出と脅威のブロック Database Firewall Server ユーザー ネットワーク イベント Database Firewall Server Databases ポリシー レポート アラート Audit Vault Server アプリケーション Copyright © 2024, Oracle and/or its affiliates 148
  106. ネットワークのモニタリングによるデータベース監視とSQLインジェクション対策 いずれかの方法でデータベースに接続可能 • プロキシ • ネットワークを介したデータベースへの 不正アクセスの検出と防止 • ホスト監視 •

    データベースのネットワーク・トラフィックを アクティブに監視 • Out-of-band • ネットワーク・エージェントを使用せずに データベース・トラフィックをアクティブに監視 Database Firewall Server ユーザー アプリケーション Database Firewall Server ホスト監視 Out-of-band プロキシ Copyright © 2024, Oracle and/or its affiliates 149
  107. Real Application Testing (RAT)の機能 リスクの最小化 自動化 コスト削減 データベース ・リプレイ データベース

    統合リプレイ SPA SPA クイックチェック SPA = SQL Performance Analyzer ▪ 負荷テストのソリューション ▪ 問題を検出して修正 • SQL応答時間のテスト・ ソリューション • 性能に問題のあるSQLを 識別し、調整 • オンプレミス、あるいは Oracle Cloudのための データベース統合の キャパシティ・プランニング • データベースの性能に対する 定期的なDBAタスクを事前 に特定 Copyright © 2024, Oracle and/or its affiliates 153
  108. SQLパフォーマンス・アナライザ: 処理の流れ クライアント APサーバー DBサーバー / ストレージ ①SQLワークロード取得 ②変更前の SQL実行

    ③変更後の SQL実行 ④分析 実行計画 (変更後) 実行計画 (変更前) 比較分析 SQL Tuning Set: 指定期間に実行された SQL群の情報 実行計画 (変更後) 実行計画 (変更前) STS STS テスト環境 本番環境 Copyright © 2024, Oracle and/or its affiliates 155
  109. システム変更後にコストを抑えながら高い信頼度で検証し、確実な改善を達成 • 分析可能なシステム変更例 • DBアップグレード、パッチ、初期化パラメータの変更 • OS、HW、DBの構成変更 • 索引の追加、パーティション化、マテリアライズド・ビューなどの変更 •

    オプティマイザ統計情報の収集および更新 • SQLプロファイルの作成などのSQLチューニング操作 • プラガブル・データベース(PDB)またはスキーマ統合手法を使用したデータベース統合テスト SQLパフォーマンス・アナライザ: ユースケース Copyright © 2024, Oracle and/or its affiliates 156
  110. SPAクイック・チェック • 本番データベース上でシステム変更を簡単に、素早く検証 • ボタン1つをクリックするだけで初期化パラメータ変更の影響、オプティマイザ統計収集の影響、 キーSQLプロファイル実装の影響といったDBAタスクを検証 • Oracle Enterprise Manager

    Cloud Controlに含まれる機能 SPAクイック・チェック DBA テスト環境 本番環境 SPAを実行したい… 実行するには、安全だけど…しかし • 別途HWが必要 • テストデータは本番データと同等であるべき • 変更により、タスクに時間がかかったり、 エラーが発生しやすい 実行するには簡単だけど…しかし • リソースを大量に消費し、本番パフォーマンスに 影響を与える可能性がある • 変更は手動でプライベートセッションに スコープする必要がある • 完了するのに長時間かかる可能性がある • デフォルトでリソース制御がない Copyright © 2024, Oracle and/or its affiliates 157
  111. 初期化パラメータ変更の影響検証 • 変更する前に、データベース・ワークロードへの影響を検証 • alter session文で変更できる値 オプティマイザ統計の影響検証 • オプティマイザ統計を収集する前に、データベース・ワークロードへの影響を検証 キーSQLプロファイル実装の影響検証

    • 自動SQLチューニング・アドバイザで自動実装で作成されるプロファイル(キーSQLプロファイル)を実装前に、 プロファイル実装の影響を検証 自動SQLチューニング・アドバイザの統計結果の検証 SPAクイック・チェック: ユースケース Copyright © 2024, Oracle and/or its affiliates 158
  112. データベース・リプレイ: 処理の流れ 分析レポート キャプチャ ファイル キャプチャ ファイル リプレイ・ クライアント ①ワークロードをキャプチャ

    キャプチャ時のCPU使用率3 ~ 5%程度 ②前処理 ③リプレイ ④分析 DBサーバー / ストレージ クライアント APサーバー DBサーバー / ストレージ 本番環境 テスト環境 Copyright © 2024, Oracle and/or its affiliates 160
  113. リプレイ実行後、比較レポートを生成 • ワークロード・リプレイレポート • AWR比較レポート • ASHレポート キャプチャ時とリプレイ時の違い • パフォーマンスの違い

    • エラーの内容 • リプレイ時に発生した新規エラー • キャプチャ時に発生しリプレイ時に 発生しなかったエラー • キャプチャ時に発生しリプレイ時に発生したエラー • データの違い • キャプチャ時と異なる行数が変更されたDML • キャプチャ時と異なる行数が返されたSELECT データベース・リプレイ: 分析結果 Copyright © 2024, Oracle and/or its affiliates 161
  114. データベース・リプレイ 一般的な負荷ツール テストシナリオ 不要。 本番ワークロードをキャプチャし、リプレイするだけで 本番負荷を再現。 必要。 本番相当のワークロードを擬似的に作成し、広範囲に及ぶ テストシナリオの作成が必要となり、時間とコストがかかる。 「テストシナリオが不十分

    = テスト品質が不十分」 作成者のスキルに依存。 テスト担当 データベース管理者 アプリケーション担当者 負荷テスト環境 DBサーバー環境 APサーバーが使用できない状況でも負荷テストが可能 APサーバーとDBサーバー環境が必要 テスト データベース・レイヤに限定し負荷をかけるため DB担当者が 本番のワークロードをキャプチャすることで繰り返しリプレイ可能 負荷ツールとテスト対象アプリケーション両方に精通している 必要がある 分析 データベース管理者だけで負荷テストが実施でき、 理解しやすい分析結果のレポートが出力される。 アプリケーションがデータベース全体に与える影響を検証するには、 DB 担当者のデータベース性能結果分析スキルが必要。 アプリケーション担当者だけでは、負荷テストの実施から 分析までを完結できない。 データベース・リプレイ: 一般的な負荷ツールとの比較 Copyright © 2024, Oracle and/or its affiliates 162
  115. データベース統合を管理するための包括的な エンド・ツーエンド・ソリューション 推測による作業や人的ミスを排除することにより正確な 統合アプローチを提供 • 過去のワークロードに基づく分析(データベースおよび ホストのメトリック) • 計画から展開までの統合のすべての段階における 自動化

    様々なシナリオに柔軟なアプローチを提供 • ExadataまたはOracle Cloudへの統合をサポート 計画 • 統合候補データベースのAWRを利用した統合に 関するアドバイスを提供 移行 • EMプロビジョニング機能 を使用しデータベースを 新しい統合プラットフォームに移行することで 統合計画を実装 検証 • 統合データベースでテスト・ワークロードを実行すること で統合計画を検証 データベース統合リプレイ Copyright © 2024, Oracle and/or its affiliates 163
  116. 複数の環境を組み合わせてテストを実施 データベース統合リプレイ 本番環境 CRM DB1 HCM DB2 DWH DB3 Windows

    DB 11gR2 AIX DB 11gR2 HP-UX DB 12cR2 Capture 1 Capture 2 Capture 3 5月31日 月末処理 6月15日 ピーク時 6月18日 ETL処理 テスト環境 統合リプレイ・ディレクトリ リプレイ Capture 1 Capture 2 Capture 3 Copyright © 2024, Oracle and/or its affiliates 164
  117. 非本番環境へ安全にデータを共有 Oracle Data Masking and Subsetting Pack 利点 • テスト環境、開発環境から

    機密データの漏洩防止 • データのサブセット化による ストレージコストの最小化 • テストデータが監査の対象外となる コンプライアンス・コストを削減 機能 • 機密性の高い列、表の親子関係を自動検出 • 包括的で拡張可能なマスキング変換 • 統合型のデータ・サブセット化 010010110010101001001001001 001001001001001001000100101 010010010010011100100100100 100100100001001001011100100 101010010010101010011010100 1010100100000011111111000 SSN 463-62-9832 クレジット・カード 3715-4691-3277-8399 SSN 463-62-9832 576-40-7056 518-12-6157 281-50-3106 クレジット・カード 3715-4691-3277-8399 5136-6247-3878-3201 3599-4570-2897-4452 5331-3219-2331-9437 本番 テスト/開発 555-12-1234 5555-5555-5555-4444 機密性の高い情報を不可逆な形式にマスキング Copyright © 2024, Oracle and/or its affiliates 166
  118. 拡張可能なマスキング・フォーマット・ライブラリ 事前定義済みのマスキング・フォーマットを提供 マスキング・フォーマットはカスタム可能 • ランダムな数字、文字列、日付 • 置換 • ユーザ定義のPL/SQL関数 マスクされた値のサンプルを生成

    E-Business SuiteとFusion Applicationsのテンプレートを提供 Data Masking 事前定義されているフォーマット 定義したフォーマットによるサンプル生成 様々なマスキング形式 Copyright © 2024, Oracle and/or its affiliates 168
  119. マスキングの例 Data Masking Country Identifier CA 226-956-324 US 610-02-9191 UK

    JX 75 67 44 C Country Identifier CA 368-132-576 US 829-37-4729 UK AI 80 56 31 D Emp ID First Name 324 Albert 986 Hussain Emp ID First Name 324 Charlie 986 Murali Emp ID First Name 324 Charlie 986 Murali 経理 Company Closing Price IBFG $36.92 XKJU ¥789.8 Company Closing Price IBFG $89.57 XKJU ¥341.9 フォーマットを維持してランダム値へ変換 一貫性を持ったアウトプットの生成 人事 条件に沿ったマスク BLOB 3178973456 6509876745 Search : [0- 9]{10} Replace : * BLOB ********** ********** BLOB として格納されたファイルのマスク シャッフル ID COUNTRY 1 US 2 JP 3 US 4 UK 5 FR ID COUNTRY 1 US 2 FR 3 UK 4 JP 5 US Country カラムの値に応じたフォーマットを作成 (Country が UK なら [英字][英字][6桁の数字][英字]) 通貨、桁数を変えずに、ランダム数値でマスク Copyright © 2024, Oracle and/or its affiliates 169
  120. 高度な分析をデータベース内で実行できる機械学習プラットフォーム データ分析にかかる変換コスト、データ移動コストの削減 • Oracle Database標準機能としてDB内で処理完結 • データの移動コストを最小化 • データ前処理 (変換/補完)、モデル生成が高速

    • RやPythonのスクリプトをDB内で実行 • 分析サーバーを別途用意する必要なし システム化、実装のコストの削減 • MLモデルをDB内に生成 • そのままDBのデータに適用可能 • 高性能、スケーラブルでセキュアなプラットフォーム 機械学習をすべての人に • 機械学習ベースのソリューションを活用する すべての人をサポート • オープンソースパッケージを活用して、機能を拡張可能 Oracle Machine Learningの概要 Copyright © 2024, Oracle and/or its affiliates 172 Oracle Machine Learning OML4SQL OML4Py OML4R OML Notebooks OML4Spark Oracle Data Miner OML AutoML UI OML Services
  121. オラクルの取り組み 従来の分析環境 RDBMSなどオリジナル・データの ある場所からデータをツール内に移動して分析 データが存在する場所で分析 分析 • モデリングのデータの準備・移動に時間や手間がかかる • データの絞り・サンプリングでモデル作成

    • シングルスレッドが主流(マルチスレッドには工夫が必要) • ファイル等の持ち出しによるセキュリティの問題 • アドホックな運用環境のスキルが必要 • 本番環境へのモデルのデプロイには様々な作業が必要 • データの移動が不要でモデリングに手間要らず • 全量分析が可能 • 手軽にマルチスレッドが可能 • DB内から外へデータを出さずに分析 • 分析や機械学習のスキルセットで運用 • DB内のモデルはSQLで簡単に本番環境へ適応・更新 データ分析をデータベース内で実行 データ移動 分析 ? データ移動 Flat File Copyright © 2024, Oracle and/or its affiliates 173
  122. 回帰(Regression) 線形モデル(LM) 一般化線形モデル(GLM) サポート・ベクター・マシーン(SVM) ステップワイズ線形回帰 ニューラル・ネットワーク 異常検出(Abnormally Detection) 1クラスSVM 相関(Association

    Rules) Apriori/バスケット分析 属性評価(Attribute Importance) 最小記述長(Minimum Description Length) CUR行列分解 教師なしペアワイズKLダイバージェンス A1 A2 A3 A4 A5 A6 分類(Classification) 決定木(Decision Tree) (2項分類)一般化線形モデル(GLM) 単純ベイズ(Naïve Bayes) ランダム・フォレスト(Random Forest) サポート・ベクター・マシン(SVM) 明示的セマンティック分析(ESA) ニューラル・ネットワーク クラスタリング(Clustering) 期待値最大化法(EM) k平均法(k-means) 直交パーティショニング・クラスタリング (O-Cluster) 時系列(Time Series) 指数平滑法 等 (単純,、2重、Holt-Winters法、Regular & Irregular, with and w/o trends & seasonal 含む) 特徴抽出(Feature Extraction) 明示的セマンティック分析 (ESA) Non-Negative Matrix Factorization (NMF) 特異解分析 (SVD) 主成分分析 (PCA) 教師無し Pair-wise KL Div 予測問合せ(Predictive Queries) クラスタリング問合せ 特徴抽出問合せ 異常検出問合せ 統計関数(Statistical Functions) 基本関数: 最小、最大、メジアン、標準偏差、t 検定、F検定、ピアソン分布、カイ二乗検定、 分散分布(ANOVA)等 SQL関数: 行列の選択、条件式、結合、等 Oracle Machine Learning Algorithms and Analytics Copyright © 2024, Oracle and/or its affiliates 174
  123. データベースに統合された機械学習エンジン • Oracle Database, Autonomous Databaseの機械学習機能への迅速なアクセスでSQLユーザを支援 データベース内で完結した並行・分散アルゴリズム • 別の機械学習エンジンへのデータ抽出の必要無し •

    高速性と拡張性を兼ね備える • 実時間バッチスコアリング • 予測に対して根拠を示す データベースオブジェクトとしての機械学習モデル • パーミッションに基づいたアクセスコントロール • ユーザの行動を監視 • 異なるデータベース間でモデルのエクスポート/インポート Oracle Machine Learning for SQL (OML4SQL) SQL Interfaces SQL*Plus SQL Developer … Oracle Autonomous Database OML Notebooks Oracle Database Copyright © 2024, Oracle and/or its affiliates 175
  124. シンプルなSQL文を用いた分類モデルの活用例 OML4SQL: モデルの作成とリアルタイム予測 BEGIN DBMS_DATA_MINING.CREATE_MODEL( model_name => 'BUY_INSUR1', mining_function =>

    dbms_data_mining.classification, data_table_name => 'CUST_INSUR_LTV', case_id_column_name => 'CUST_ID', target_column_name => 'BUY_INSURANCE', settings_table_name => 'CUST_INSUR_LTV_SET'); END; SELECT prediction_probability(BUY_INSUR1, 'Yes' USING 3500 as bank_funds, 825 as checking_amount, 400 as credit_balance, 22 as age, 'Married' as marital_status, 93 as MONEY_MONTLY_OVERDRAWN, 1 as house_ownership) FROM dual; モデル作成(PL/SQL) リアルタイムスコアリング(SQLクエリ) ※クエリ内で予測され結果が取得できます Copyright © 2024, Oracle and/or its affiliates 176
  125. Autonomous Database上でデータサイエンティストが協力し合うためのUI • Autonomous Data Warehouse Cloudの標準機能 機械学習ソリューションをビルド、評価、デプロイ可能 • Apache

    ZeppelinベースのNotebook型SQLインターフェイス 複数のデータソースや複数のAutonomous Databaseサーバーに アクセス可能 • 複数のユーザが1つのノートブックを開くことが可能で ユーザによる変更は他のユーザに即座に反映 • SQLやPL/SQLスクリプト言語を分析し値を抽出、 機械学習アルゴリズムがインサイトや予測を提供 Oracle Machine Learning Notebooks Copyright © 2024, Oracle and/or its affiliates 177
  126. データベースの機能としてRの実行環境を提供 • Rの処理をデータベース・サーバーへオフロード • データ・フレーム上またはOracle Databaseの表でRを実行可能 • DB内統計エンジンとの連携 • R関数の透過的な実装

    • コマンド、コンソール、ワークスペースは通常のRと同じものを利用可能 企業のデータベースをRで利用 • データベース内のデータに対してダイレクトかつ透過的に処理 • 大規模データセットをRで扱うことが可能 高いパフォーマンス • 自動で並列処理をデータベース内にて実行 • クライアントのパフォーマンスに頼ることのなくRを実行 Oracle Machine Learning for R (OML4R) データベース サーバー OML4R SQL Interfaces SQL*Plus SQL Developer … Copyright © 2024, Oracle and/or its affiliates 178
  127. R言語を使用した機械学習機能 R言語の処理を透過的にOracle Database内の処理に変換することで、大規模、かつ複雑な分析を実現します。 Database内処理に変換できない部分もDatabaseサーバー上でRプロセスを実行します OML4Rのアーキテクチャ R Engine R Engine R

    Engine Other R packages Rの処理をDatabase内の処理に変換・オフロード OML4R R Engine OML4R SQL/R R 結果 結果 Databaseサーバー内で外部プロセスとしてRを実行することも可能 Other R packages Rクライアント • RスクリプトをOracle Databaseで 実行するようにスクリプトを発行します。 • グラフの描画や処理フローの制御は、通常の Rの機能を利用し、クライアント側で実行します。 Oracle Database内部での実行 • Rの関数をSQLに変換して実行します。 • Oracle Databaseの並列実行の仕組みを 活用し、大量のデータに対応します。 • Oracle Databaseの持つ統計関数、データ マイニング機能を内部的に活用します。 Oracle DatabaseサーバーでのR実行 • データベースが複数のRのプロセスをデータベース サーバー上に外部プロセスとして起動します。 • SQLやPL/SQLからRのスクリプトを 呼び出し可能です。 分析者 Oracle Databaseサーバー 外部 プロセス (旧称Oracle R Enterprise (ORE)) Copyright © 2024, Oracle and/or its affiliates 179
  128. Oracle SQL Developer*で手軽に分析ワークフローを作成可能 データサイエンティストの生産性を向上 • 典型的なデータサイエンスの 作業を自動化 • 簡単にドラッグ&ドロップが 可能なインターフェイス

    • 手軽に分析ワークフローを 定義・共有 • 多様なアルゴリズムとデータ変換 • SQL文を生成することで 速やかなデプロイが可能に *Oracle DatabaseのためのSQL開発ツール Oracle Data Miner Copyright © 2024, Oracle and/or its affiliates 180
  129. 空間データ、地理データの高度な活用を実現する空間データベースプラットフォーム Oracle Spatial Oracle Database上で空間データを 検索、分析 • 空間データを扱うためのデータ型、関数、 プロシージャを提供 •

    SQLで空間演算子による空間データの検索、 分析が可能 • Partition、パラレルクエリなどOracle Database機能も併用し、分析処理を高速化 高度な空間情報活用を実現する 各機能 • 最短経路など、最適なルートを探索する ルーティングシステム • 動線上の位置情報に様々な情報を 付随させる線形参照システム • 空間データの高速な検索を実現する 空間索引機能 • 異なる座標系の空間データを自動的に 変換する座標系変換機能 継続的に品質向上、機能拡張に 注力 • Rasterデータや3Dデータへの対応、 KMLのサポート • Oracle 12cでは更なる高速化のパラメータを 追加 他社GISソフトウェアとの高い親和性 • Autodesk社 : MapGuide/OnSite • ESRI社: ArcGIS/ArcView • GE社: Smallworld Copyright © 2024, Oracle and/or its affiliates 182
  130. 空間データを豊富な関数とSQLで扱える 多様な機能性 • 変換、分析、バリデーションや修正まで • 測地系の明示的/暗黙的変換 • 空間分析、集計関数、線形参照システム.. パフォーマンスおよびスケーラビリティ •

    R-Tree型空間索引による高速な空間検索 • Oracleの並列化/高速化技術を享受 • Spatial Vector Acceleration(SVA) 組み込み容易性 • ほとんどの機能はSQLベースでのアクセスが可能 • 空間関連処理をDBへオフロード Oracle Spatial ベクトルデータ関連の実装関数 約250種 • 豊富な空間位相判定 • 空間データの変換、分析関数、測地系変換 • ラスター、3Dデータ、点群、TINにも対応 一般的なGeoDatabaseの限界を突破 • 検索範囲を範囲階層で絞り込む索引構造 • パーティションによるパラレルクエリ対応 • 索引のパーティション化にも対応 • SVAにより更なる高速化 SQLで空間データを自在に扱える • 上述の空間判定、変換、分析関数も • アプリケーションは結果の取り扱いに注力 ラスターデータ関連の実装関数 約190種 • オルソ補正、光学補正、モザイク化、ピラミッド化 • 演算(ラスター代数) Copyright © 2024, Oracle and/or its affiliates 183
  131. 種々のデータにSQLでアクセス可能 Oracle Spatial Topologies 3D / LiDAR Raster Networks Polygons

    Lines Points Location Tracking (Geofencing) SELECT a.customer_name, a.phone_number FROM policy_holders a WHERE sdo_within_distance( a.geom, hurricane_path_geom, ‘distance = 10 unit = mile’) = ‘TRUE’; Spatial Analysis Through SQL Copyright © 2024, Oracle and/or its affiliates 184
  132. Oracle Databaseのネットワーク接続に関係するコンポーネントの総称 Oracle Databaseのネットワーク接続に関わるOracle NetプロトコルやOracleリスナー・プロセスなどのコンポーネ ントの総称をOracle Net Servicesという。 OracleクライアントからOracleサーバーへの接続だけでな く、

    Oracleサーバー同士を接続するDatabase Linkや Data GuardなどもOracle Net Servicesの役割。 Oracle Net Services tnslsnr Oracleクライアント Oracle Net Services Database Link Data Guard Oracle Net プロトコル Oracleインスタンス • 共有メモリー • バックグラウンド・プロセス Oracleリスナー・プロセス • 接続リクエスト受信 データベース • ファイルの集合 Copyright © 2024, Oracle and/or its affiliates 186
  133. メジャーな言語をカバー マルチ・プラットフォーム 接続可能なバージョン組み合わせ Oracleクライアントからの接続 言語 API C OCI, ODBC, ODPI-C

    C++ OCCI Java JDBC .NET ODP.NET Node.js node-oracledb Python cx_Oracle PHP OCI8, PDO_OCI R ROracle Erlang erloci Perl DBD::Oracle Ruby ruby-oci8 Rust rust-oracle Go goracle, go-oci8 Julia Oracle.ji クライアント サーバー Windows x64 Linux x86-64 Solaris SPARC Solaris x86 HP-UX AIX zLinux Windows x64 Linux x86-64 Solaris SPARC Solaris x86 HP-UX AIX zLinux クライアント サーバー 12c Release 2 11g Release 2 12c Release 1 12c Release 2 18c 19c ある程度バージョンに幅がある 詳細はAppendix Copyright © 2024, Oracle and/or its affiliates 187
  134. tnslsnr Oracleインスタンスとネットワーク接続リクエストを受けるOracleリスナー・プロセスが独立している (1) OracleクライアントはOracleリスナー・プロセスの保持 するTCPサーバー・ソケットに対して接続リクエストを発 行する。 (2) Oracleリスナー・プロセスがOracleサーバー・プロセスを 生成し、Oracleリスナー・プロセスが確立したTCPコネ クションをOracleサーバー・プロセスに引き継ぐ。

    (3) OracleクライアントのプロセスはOracleサーバー・プロ セスとTCP接続する。 この接続形態を専用サーバー(Dedicated Server)接続 という。これが最も基本的な接続形態。 Oracle Databaseアーキテクチャ Oracleクライアント Oracleインスタンス • 共有メモリー • バックグラウンド・プロセス Oracleリスナー・プロセス • 接続リクエスト受信 データベース • ファイルの集合 oracle Oracleサーバー・プロセス • SQL処理の主体 (1) (2) (3) Copyright © 2024, Oracle and/or its affiliates 188
  135. Oracle Databaseサーバーの接続先を指定する記法 「サービス」に接続するという概念 接続記述子(Connect Descriptor) • Oracle Netの全パラメータを指定可能な記法 • これをあらかじめ定義して別名をつけておくファイルがtnsnames.ora

    簡易接続(EZCONNECT) • Layer 4以下のプロトコルをTCP/IPに決め打ちし簡略化した記法 • 本番システムの高可用性構成(RACやData Guard)では使用しない 簡易接続プラス(EZCONNECT Plus) 19c以降 • EZCONNECTに接続記述子のパラメータを指定できるように拡張した記法 (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP) (HOST = hostname) (PORT = port)) (CONNECT_DATA = (SERVICE_NAME = service) ) ) hostname:port/service tnslsnr service TCP/IPサーバー・ ソケット データベースの ワークロードの 抽象概念 Copyright © 2024, Oracle and/or its affiliates 189
  136. Oracleクライアントは「サービス」に接続する データベースのワークロードを抽象化した概念 サービス service1 ノード1 ノード2 Oracleインスタンスの名前 • INSTANCE_NAME •

    SID (ORACLE_SID) データベースの名前 • PDB_NAME • DB_UNIQUE_NAME • DB_NAME 「サービス」とはデータベースのワークロードを抽象化し た概念であり、Oracleインスタンスの名前でもなくデータ ベースの名前とも異なる抽象概念である。 クラスタ・ノードの仮想化 共有ストレージ・共有キャッシュ型クラスタ・データベース であるOracle Real Application Clustersは複数の Oracleインスタンスが同じサービスを担当できるので、 Oracleクライアントからは「サービスに接続する」という概 念で複数ノード構成であることを仮想化している。 マルチ・テナント・アーキテクチャ 1つのOracleインスタンスが複数のプラガブル・データ ベース(PDB)をホストしているが、PDBごとに異なるサー ビス名があるので、Oracleクライアントは「サービスに接 続する」という概念で接続するPDBを区別している。 PDB1 PDB2 PDB3 service2 service3 Copyright © 2024, Oracle and/or its affiliates 190
  137. 「サービス」で接続するデータベースを区別する プラガブル・データベース(PDB)ごとに一意なサービス名を持っている 各Oracleインスタンスはデータベースのワークロードを抽象 化した「サービス」という属性を持っている。コンテナ・データ ベース(CDB)構成の場合はプラガブル・データベース (PDB)ごとに一意なサービス名を持っている。 1つのOracleリスナー・プロセスが同一のTCP/IPポートで 複数のOracleインスタンスへの接続リクエストを担当でき る。 Oracleリスナー・プロセスはどのサービスをどのOracleインス

    タンスが担当しているかを把握している。 Oracleクライアントはサービス名を指定して接続リクエスト を発行し、Oracleリスナー・プロセスはそのサービスを担当 する適切なOracleインスタンスにリクエストをルーティングす る。 tnslsnr Oracleクライアント Non-CDB1 Oracle インスタンス1 Oracle インスタンス2 service1 service2 Oracleリスナー・ プロセス PDB2 PDB3 service3 CDB2 host:port/service1 host:port/service2 Copyright © 2024, Oracle and/or its affiliates 191
  138. 標準機能で高可用性構成に対応 Oracle Net Servicesが持つ付加機能 接続ロード・バランス RACの複数ノードに対して負荷分散 クライアント 接続フェイルオーバー 接続に失敗したら別の接続先を試行 クライアント

    コネクション・プール 接続確立処理の省略 クライアント サーバー oracle pool 高速アプリケーション通知 クラスタウェアとコネクション・プールが連携 クライアント pool Copyright © 2024, Oracle and/or its affiliates 192
  139. RACにはクラスタを代表するSingle Client Access Name (SCAN)リスナーがあり、どのサービスをどのOracle インスタンスが担当しているかを認識している。 サービスがアクティブになっているOracleインスタンスに接続 リクエストをリダイレクトして負荷分散する。 接続確立後はクライアント・プログラムとOracleサーバー・ プロセスはTCPコネクションで直結される。

    RACの複数ノードに負荷分散 接続ロード・バランス tnslsnr Oracle instance1 Oracle instance2 tnslsnr ノード 1 ノード 2 tnslsnr service1 service1 tnslsnr service1 instance1 instance2 (1)接続リクエスト発行 SCAN リスナー Oracleクライアント (2)リダイレクト Copyright © 2024, Oracle and/or its affiliates 193
  140. データベース・サーバー側の高可用性構成に接続ドライバが対応 新規コネクション確立失敗時のフェイルオーバー • 接続時フェイルオーバー 確立済みコネクション切断時の自動再接続と再実行 • 透過的アプリケーション・フェイルオーバー • アプリケーション・コンティニュイティ(※) 接続フェイルオーバー

    tnslsnr Oracle instance1 Oracle instance2 tnslsnr ノード 1 ノード 2 service1 service1 Oracleクライアント tnslsnr Oracle instance1 Oracle instance2 oracle ノード 1 ノード 2 service1 service1 Oracleクライアント ※Enterprise Edition RACもしくは Active Data Guard Copyright © 2024, Oracle and/or its affiliates 194
  141. 接続確立処理の省略 クライアント側コネクション・プール Oracle接続ドライバ側のコネクション・プール • Universal Connection Pool for Java (UCP)

    • OCI Session Pool • ODP.NET サーバー側コネクション・プール Oracleクライアント側でプールできない場合の次善策 • Database Resilient Connection Pool (DRCP) • Oracleサーバー・プロセスをあらかじめ生成しておく コネクション・プール Oracle instance1 Oracleクライアント Pool oracle oracle Oracle instance1 Oracleクライアント App oracle oracle Copyright © 2024, Oracle and/or its affiliates 195
  142. Oracle Clusterwareとコネクション・プールの連係 Oracle ClusterwareとOracleクライアントのコネクション・ プール間に、SQL実行用コネクションとは別にイベント通 知用のコネクションを持つ。 高速接続フェイルオーバー (Fast Connection Failover:

    FCF) • サービスの起動および停止、ノード停止イベントの 通知 • クライアントは停止したノードとのコネクションをTCP タイムアウトを待たずに切断できる ランタイム接続ロード・バランス (Runtime Connection Load Balance: RCLB) • サーバー側で最適な負荷配分を算出して通知 • プールされたコネクションから負荷配分を考慮して SQLを実行するインスタンスを決める 高速アプリケーション通知(Fast Application Notification: FAN) Oracle instance1 Oracle instance2 ノード 1 ノード 2 service1 service1 Oracleクライアント Clusterware Clusterware Pool FANイベント FANイベント SQL実行用 コネクション FAN用 コネクション Copyright © 2024, Oracle and/or its affiliates 196
  143. HDFSやApache Hiveに格納された外部ソースもハイブリッド・パーティションに利用可能 外部表の例② ハイブリッド・パーティションとBig Data Oracle Database Hybrid Partition表 HDFS

    Hive データファイル データファイル Partition 1 Partition 2 Partition 3 Partition 4 Copyright © 2024, Oracle and/or its affiliates 201
  144. 「パフォーマンス」と「管理性」を兼ね備えたデータベース間のデータ移動ユーティリティ データベース間におけるデータとメタデータの高速移動 • データベース間のデータ移動 • 論理バックアップの取得 データ移動に伴う作業時間を大幅に短縮 • データベース・サーバー上で実行 •

    パラレル実行 • データベース・リンクを利用した中間ファイルを介さない エクスポート、インポート Oracle Database のすべてのエディションで使用可能 Oracle Data Pump ローカル・ストレージ ダンプ ファイル インポート エクスポート データベース・サーバー ローカル・ストレージ上に ダンプ・ファイルを配置 expdp impdp Copyright © 2024, Oracle and/or its affiliates 204
  145. 異なるバージョン間での移動が可能 移行可能なバージョン組み合わせ例 11g Release 2 12c Release 1 12c Release

    2 18c 19c 11g Release 2 12c Release 1 12c Release 2 18c 19c ソース ターゲット 異なるプラットフォーム間での 移動が可能 対象データ範囲をモードとして 選択可能 柔軟なデータ移動が可能 マルチ・プラットフォーム間での移行 Windows x64 Linux x86-64 Solaris SPARC Solaris x86 HP-UX AIX Linux on Z Windows x64 Linux x86-64 Solaris SPARC Solaris x86 HP-UX AIX Linux on Z ソース ターゲット エクスポート、インポートでモード選択可能 全体モード スキーマ・モード 表モード 表領域モード 全体モード スキーマ・モード 表モード 表領域モード ソース ターゲット Copyright © 2024, Oracle and/or its affiliates 205
  146. ダンプ ファイル エクスポートおよびインポートする対象および行を制限可能 例)特定の条件を満たす行だけをエクスポート 例)特定の表だけをインポート データおよびメタデータのフィルタ処理 パラメータ EXCLUDE 指定したオブジェクトやオブジェクト・タイプにより、メタデータを操作から除外 INCLUDE

    指定したオブジェクトやオブジェクト・タイプにより、メタデータを操作に含める CONTENT メタデータのみ、データのみ、またがその両方のパターンでエクスポートまたはインポート QUERY SQL SELECT文の句で指定することで、エクスポート・ジョブ内のすべての表または特定の表のデータをフィルタリング エクスポート ダンプ ファイル インポート Copyright © 2024, Oracle and/or its affiliates 206
  147. ネットワークを介して、ソース・データベースからターゲット・データベースへデータを移動 ネットワーク・リンクを利用したエクスポート ソース・データベースのデータをターゲット・データベースのス トレージにダンプ・ファイルを出力 ネットワーク・リンクを利用したインポート 中間ファイルを生成せず、直接ターゲット・データベースへ インポート データベース・リンクを使用したデータ移動 (ネットワーク・リンク機能) ターゲット・データベース

    ソース・データベース ターゲット・データベースのストレージに ダンプ・ファイルを出力 直接ターゲット・データベースへ インポート ダンプ ファイル データベース・リンク ターゲット・データベース ソース・データベース データベース・リンク expdb network_link=… impdb network_link=… Copyright © 2024, Oracle and/or its affiliates 208
  148. 分散トランザクションの実施 リモート表に対しても、ローカル表と同様に参照・更新を 同一トランザクションとして、処理可能 マテリアライズド・ビューとの連携 リモート・データベース(マスター・サイト)の データをもとにマテリアライズド・ビューでデータを ローカル・データベース(マテリアライズド・ビュー・サイト)に 複製可能 ローカル・データベース リモート・データベース

    ユースケース リフレッシュにより、 マスター・サイトの データを反映 ローカル・データベース UPDATE SALES@Remote …; INSERT INTO EMP …; COMMIT; リモート・データベース クライアント データベース・リンク SALES EMP 同一トランザクション として処理 データベース・リンク Copyright © 2024, Oracle and/or its affiliates 211
  149. ANY ANY ANY CPU、Memory、Processes、I/Oのリソース配分を適切に管理 リソース管理のコンセプト FAST MEDIUM SLOW リソース管理なし 複数のワークロードが利用する

    リソース配分が影響して、 優先度の高い処理が遅くなることも リソース管理あり 複数のワークロードが利用する リソース配分を管理して、 優先度の高い処理を先に実行 Copyright © 2024, Oracle and/or its affiliates 213
  150. リソースを適切に配分し、重要度の高い処理を優先 リソース管理のコンセプト ストレージ ネットワーク ストレージ(Exadata) Flash Cache データベース・サーバー CPU CPU

    CPU PGA SGA CPU XRMEMや FlashCacheの容量 SGAやPGAの メモリー容量 ストレージ ネットワークの帯域 CPUの 使用率 サーバー、ネットワーク、ストレージなどシステム全体で リソース管理を利用して、重要度の高い処理に優先してリソースを割当てる XRMEM Copyright © 2024, Oracle and/or its affiliates 214
  151. リソースを適切に配分し、重要度の高い処理を優先 データベースの初期化パラメータ • CDBごと、またはPDBごとに設定可能 • 適切なリソースをデータベースに分配 • データベース間のノイジー・ネイバー問題を防止 コンシューマ・グループ •

    処理要件に基づいてグループ化されたセッションの 集合 • ユーザーやジョブなどによる想定外のリソース消費を 防止 リソース管理の適用方法 Copyright © 2024, Oracle and/or its affiliates 215
  152. CDBおよびPDBごとのCPUリソースの上限を設定可能 パーティショニング • 各データベースのCPUリソースの上限の合計が、物理 CPUリソースを超えない範囲で設定 • 他のデータベースから影響を受けない オーバー・サブスクライブ • 各データベースのCPUリソースの上限の合計が、

    物理CPUリソースを超えて設定 • 他のデータベースからの影響を受ける可能性がある 複数データベースのCPUリソース割当 64 CPUs DB#1: cpu_count=16 DB#2: cpu_count=16 DB#3: cpu_count=16 DB#4: cpu_count=16 64 CPUs DB#3: cpu_count=16 DB#4: cpu_count=32 DB#1: cpu_count=16 DB#2: cpu_count=16 *CPU_COUNTで設定する値はCPUスレッド数 Copyright © 2024, Oracle and/or its affiliates 219
  153. CDBおよびPDBごとのCPUリソースの下限を設定可能 • CPU_MIN_COUNTパラメータでCPUリソースの下限 を割当 • 他のPDBとCPUは共有されない 複数データベースのCPUリソース割当 CDB 64 CPUs

    DB#3:cpu_count=16 cpu_min_count=8 DB#4:cpu_count=32 cpu_min_count=16 DB#1:cpu_count=16 cpu_min_count=8 DB#2:cpu_count=16 cpu_min_count=8 データベースのリソース割当 DB CPU_COUNT CPU_MIN_COUNT DB#1 16 8 DB#2 16 8 DB#3 16 8 DB#4 32 16 *CPU_MIN_COUNTで設定する値はCPUスレッド数 Copyright © 2024, Oracle and/or its affiliates 220
  154. SGA DB #1 SGA DB #2 SGA DB #3 PGA

    DB #2 PGA DB #3 OS 物理メモリーのサイズ内に収まらない場合、 スワップが発生してパフォーマンス問題の原因に PGA DB #1 CDBおよびPDBごとのメモリー管理でスワップの発生を防止 メモリーのリソース管理 メモリサイズ スワップ SGA DB #1 SGA DB #2 SGA DB #3 PGA DB #2 PGA DB #3 OS PGA DB #1 メモリサイズ スワップ スワップなし SGA_TARGETで SGAの上限を定義 PGA_AGGREGATE_LIMITで PGAのサイズ上限を定義、スワップ防止 Copyright © 2024, Oracle and/or its affiliates 222
  155. CDBおよびPDBごとのパラレル実行プロセスを管理し、過度なパラレル実行を防止 PARALLEL_MAX_SERVERS • 各データベースのパラレル実行プロセスの上限を定義 PARALLEL_SERVERS_TARGET • パラレル文を実行できるパラレル実行プロセスの数 • 指定した数のパラレル実行プロセスが確保できない場合、処理がキューイングされる パラレル処理のリソース管理

    SQLを発行 SQL文の解析 パラレル実行プロセスを 確保できると即時実行 必要なパラレル実行プロセス の数を獲得できたら、SQLを 実行 パラレル実行プロセスが確保できない 場合、SQLをキューに入れる Copyright © 2024, Oracle and/or its affiliates 226
  156. SQL実行リソースのしきい値 • 推定実行時間 • 経過時間 • CPU使用時間 • 発行されたI/Oの数 •

    読み込まれたI/Oのバイト数 • 論理I/Oの数 しきい値を超えた高負荷クエリの管理 • 異なるコンシューマ・グループに切り替え • SQLの取消 • セッションの終了 • SQL Monitorに記録 • SQL隔離 過剰なリソースを使用するSQLの実行制御 クエリ1 クエリ3 クエリ2 クエリ4 SQL実行リソース Copyright © 2024, Oracle and/or its affiliates 227
  157. データベース内プラン IORMプラン Database Flash Cache Min Flash Cache Limit Flash

    Cache Size PDB1 100GB PDB2 2TB CDB 10TB データベースごとにFlash Cache、XRMEMの最小サイズ、最大サイズを設定 Flash Cache Min • Flash Cacheに最低限割当するサイズ Flash Cache Limit • Flash Cacheの上限サイズ、空きがあれば設定したサイズ以上に使用できる Flash Cache Size • Flash Cacheの最大割当サイズ ExadataのSmart Flash Cache Space Resource Management XRMEM用のxrmemCacheMin、 xrmemCacheLimit、 xrmemCacheSizeも設定可 Copyright © 2024, Oracle and/or its affiliates 232
  158. 概要 • サマリーとして集計結果を格納しておくスキーマ・オブジェクト • 事前に集計処理した結果セットを保持しておくことで 検索処理時間の短縮を図る • 特徴 • 参照先をマテリアライズド・ビューに透過的に変換する

    クエリー・リライト • 最新データを迅速に反映する高速リフレッシュ マテリアライズド・ビュー(Materialized View: MVIEW) 事前集計済みのデータをSELECT 都度SELECT 遅い 高速!! SELECT結果を事前に格納 売上集計 (マテリアライズド・ビュー) 都道府県 支店 製品 日時 売上明細 CREATE MATERIALIZED VIEW 売上集計 AS SELECT … FROM 売上, 製品, 支店, 日時 WHERE … Copyright © 2024, Oracle and/or its affiliates 234
  159. 売上集計 (マテリアライズド・ビュー) 都道府県 支店 製品 日時 売上明細 • 発行されたSELECT文がマテリアライズド・ビューの定義と同義である場合に、 該当するマテリアライズド・ビューを参照させる機能

    • アプリケーションの書き換えなしに検索処理を高速化 クエリー・リライト機能 オプティマイザ クエリー・リライト SELECT … FROM 売上、製品、支店、日時 WHERE … SELECT … FROM 売上集計 WHERE … マテリアライズド・ビューを 参照するよう自動変換 (クエリー・リライト) Copyright © 2024, Oracle and/or its affiliates 235
  160. 更新差分のみを適用することで迅速なリフレッシュが可能 • マテリアライズド・ビューをリフレッシュ(データ更新)することで、 元表の変更(データロード、挿入、更新、削除)を反映 • リフレッシュ・オプション • リフレッシュのタイミング • 元表に対するCOMMIT発行時

    • 元表に対するDML実行時 • 手動実行(DBMS_MVIEWパッケージを利用) • リフレッシュ方法 • 完全リフレッシュ(データを再集計) • 高速リフレッシュ(差分更新、右図) 高速リフレッシュ 売上集計 (マテリアライズド・ビュー) 売上明細 高速リフレッシュ 挿入 更新 マテリアライズド・ビュー・ログ 変更 差分 Copyright © 2024, Oracle and/or its affiliates 236
  161. 自動で絶え間なく索引チューニングを実行 手間のかかる索引チューニングをDBA不在でも実現 アプリケーション・ワークロードを監視して、自動的に索引 の作成や削除などを管理する 候補索引の識別、利用前の検証する • 全プロセスが完全自動 • アプリケーション、DB設計を変更する必要なし •

    全てのチューニング・アクティビティがリポートより 監査可能 15分おきに左図のオペレーションが自動で実行され、 アプリケーション・ワークロードの性能向上に役立つ索引を 作成・検証・有効化・監視する この機能により、単一索引、結合索引、ファンクション索 引、圧縮索引を作成する Automatic Indexing Capture Identify Verify Decide Online Validation Monitor Copyright © 2024, Oracle and/or its affiliates 239
  162. Capture, Identify Candidates, Verify 1. Capture (取得) • 定期的にアプリケーションのSQL履歴をSQLリポジトリに取得する (SQL、実行計画、バインド変数、実行統計など)

    2. Identify Candidates (候補索引の特定) • アプリケーション・ワークロードに役立つ(性能向上する)候補索引を特定する • 候補索引をunusableおよびinvisible状態にて作成(メタデータの変更のみ) • 新たに作成された索引により不必要となった索引を削除(論理統合) 3. Verify (検証) • オプティマイザに新たに作成した候補索引を使用するか確認 • 索引を作成し、SQLを実際に実行、新しい索引により性能向上がみられるか検証する • 全ての検証はアプリケーション・ワークロードの外で行われる Automatic Indexingの動作 Capture Identify Verify Decide Online Validation Monitor Copyright © 2024, Oracle and/or its affiliates 240
  163. Decide, Online Validation, Monitor 4. Decide (索引の決定) • 全てのSQLの性能が向上した場合、索引はvisibleとなる •

    全てのSQLの性能が低下した場合、索引はunusableになり、後に自動で削除される • 一部のSQLの性能が低下するが、全体的に性能が向上する場合、索引はvisibleとなる 5. Online Validation (オンライン検証) • 他のSQLに対する新たな索引の有効性検証はオンラインで継続 • 1セッションだけが新たな索引を利用することが許される 6. Monitor (監視) • 索引の利用状況は継続的に監視 • 自動的に作成された索引は長期間利用されないと削除される Automatic Indexingの動作 Capture Identify Verify Decide Online Validation Monitor Copyright © 2024, Oracle and/or its affiliates 241
  164. オプティマイザ統計の種類 種類 主な構成内容 オプティマイザによる利用のされかた 表統計 行数、平均行長、データ・ブロック数 表スキャンおよび表結合のコストを判断する 列統計 個別値の数、NULLの数、最小値/最大値、 ヒストグラム関連情報、拡張統計

    正確なカーディナリティの見積もりを生成し、索引の使用、 結合順序、結合方法などについて決定する 索引統計 索引内の個別値数、リーフ・ブロックの平均数、 データ・ブロックの平均数、階層数 索引スキャンのコストを判断する システム統計 CPUパフォーマンスと使用率、I/Oパフォーマンスと使用率 実行計画を選択する際に、 I/OおよびCPUコストをより正確に見積る Copyright © 2024, Oracle and/or its affiliates 246
  165. オプティマイザ統計の収集方法 収集方法 概要 自動オプティマイザ統計収集 実データの変動をOracle Databaseが適切に認識するために、 定期的にオプティマイザ統計を新しい情報に自動更新する収集方法 高頻度自動オプティマイザ統計収集 デフォルトで15分ごとにオプティマイザ統計を収集することで、 自動オプティマイザ統計収集を補完するExadata専用機能

    データが頻繁に更新されるデータベースでも適切な統計を収集可能 オンライン統計収集 DDLおよびDML操作によって自動的にトリガーされる統計収集方法 処理をきっかけとして統計収集を行うため、データが頻繁に更新されるデータベースでも適切な統計を収集可能 オプティマイザ統計の手動収集 DBMS_STATSパッケージを使用することで、自動統計収集の代替または補足として、オブジェクト、スキーマ、 データベースなどの様々なレベルに細分化してオプティマイザ統計を手動収集可能 Copyright © 2024, Oracle and/or its affiliates 247
  166. • オプティマイザ統計を高頻度に収集(デフォルトで15分毎)するExadata専用機能 • 古い統計(10%を超える変更)のみを収集する軽量タスク • データが頻繁に更新されるデータベースでも適切な統計を収集可能 • 制御可能な範囲は以下の通り • 有効、無効の設定(デフォルトは無効)

    • 最大実行時間 • 実行間隔 高頻度自動オプティマイザ統計収集 22:00 02:00 :自動統計オプティマイザ統計収集の実行時間 :高頻度オプティマイザ統計収集の実行時間 実行イメージ Copyright © 2024, Oracle and/or its affiliates 249
  167. DBMS_STATSパッケージを使用することで、自動統計収集の代替または補足として、オブジェクト、スキーマ、 データベースなどの様々なレベルに細分化してオプティマイザ統計を手動収集可能 手動で統計を収集する必要がある例 • 自動メンテナンスタスクの実行まで待機できない場合に、任意のタイミングで統計を収集したい • CPUの高速化、メモリーの増設、ディスク記憶域の交換など、 環境に物理的な変化が生じたときにシステム統計を収集したい オプティマイザ統計の手動収集 プロシージャ

    収集対象 GATHER_INDEX_STATS 索引統計 GATHER_TABLE_STATS 表、列および索引の各統計 GATHER_SCHEMA_STATS スキーマのすべてのオブジェクトの統計 GATHER_DICTIONARY_STATS SYSやSYSTEMなどのすべてのシステム・スキーマおよびCTXSYSやDRSYSなどの オプション・スキーマの統計 GATHER_DATABASE_STATS データベース内ですべてのオブジェクトの統計 GATHER_SYSTEM_STATS システム統計 Copyright © 2024, Oracle and/or its affiliates 251
  168. Oracle Databaseインスタンス 繰り返し実行される問合せのレスポンスを向上 SQL問合せ結果キャッシュ • SQL問合せの結果セットを共有プールに格納 • ブロックの再読取りおよび結果の再計算という多くのリソースを消費する操作する必要がなくなる • 結果の構成に使用されているデータの更新が行われた場合、そのキャッシュは自動的に無効化される

    PL/SQLファンクション結果キャッシュ • ファンクションの結果セットを共有プールに格納 サーバー結果キャッシュ ORDERS ORDER_ITEMS PRODUCT_INFORMATION CUSTOMERS SQL問合せ結果キャッシュ キャッシュ済みの結果が 返され、高速レスポンス 1. SELECT 2. SELECT 初回アクセス時に SQL問合せの結果 セットをキャッシュ Copyright © 2024, Oracle and/or its affiliates 253
  169. 高頻度な単一行挿入処理を最適化 例: 測定温度の書込み 遅延挿入による高速収集 • ラージ・プールに一時的にバッファリング • 非同期のストレージ書き込み • ストレージに書き込むときに変更を自動的にコミット

    使用方法 • 表に対してMEMOPTIMIZE FOR WRITEを宣言し、 INSERT文でMEMOPTIMIZE_WRITEヒントを指定 • 特殊な列や索引などがある表では使用できない • 圧縮、列デフォルト値、列暗号化、ファンクション索引、 ビットマップ索引、未使用列、仮想列、LOB、トリガー、外 部キー、ネストした表、索引構成表、外部表など Memoptimized Rowstore – 高速収集 ラージ・プール IoT Client 非同期の ストレージ 書き込み バッファに 書き込み 収集バッファ 時刻 温度 05:50 52o 05:55 54o 06:00 54o 06:05 55o INSERT into temp VALUES(‘6:05’, 55) Copyright © 2024, Oracle and/or its affiliates 256
  170. 高頻度な問合せのパフォーマンスを高速化 例: Joeの残高照会 ハッシュ索引による高速な主キー参照 • Memoptimizeプールにデータとハッシュ索引を格納 使用方法 • Memoptimizeプールを有効化し、表に対して MEMOPTIMIZE

    FOR READを宣言 • 制限事項 • 表は圧縮できない • 主キー制約を有効にする必要がある Memoptimized Rowstore – 高速参照 Memoptimizeプール 50 Hash Index Buffers CUST ID NAME BAL 5 Jack 12 1 Ying 76 31 Joe 32 12 Maria 31 SELECT bal FROM balance WHERE cust_id = 31 Client Copyright © 2024, Oracle and/or its affiliates 257
  171. 過去のデータにアクセスする機能 Flashback Database Flashback Logを利用し、データベースをリストアポイントや時間 /SCN指定で巻き戻す機能 物理的なリストア、リカバリ操作無しにデータベースを過去の状態 に戻す事が可能 • 通常のリストアポイントの利用

    • 保証付きリストアポイントの利用 Logical Flashback 表・トランザクションなどを対象に過去データの参照だけでなく、ト ランザクションの巻き戻しなども可能な機能 Flashback Technology 機能名 解説 Flashback Query 過去データの検索が可能 Flashback Version Query 過去データの各バージョン(データ)を取得可能 Flashback Transaction Query トランザクションおよびメタデータ・履歴データを取得可能 Flashback Transaction オンラインでのトランザクションロールバックが可能 Flashback Data Archive 表に対する全トランザクションを追跡および格納可能 Tx Copyright © 2024, Oracle and/or its affiliates 259
  172. 概要の理解 Flashback Database ミス! 30分前に戻りたい … Flashback Database TO TIME

    “戻したい時間” ✓ リストアポイント (戻したい地点の設定) ✓ SCN (戻したい変更点へ) ✓ 時間 (戻したい時間へ) たとえば30分前に巻き戻し (Flashback Logの適用) Flashback Flashback 未設定の場合は、 従来のリストア、リカバリを実施する Flashback Logの 取得 Copyright © 2024, Oracle and/or its affiliates 260
  173. リストアポイントについて Flashback Database 種類 解説 リストアポイント無し Flashback Database Windowと呼ばれる巻き戻し可能範囲内で戻る 通常のリストアポイント

    制御ファイル内に記録された巻き戻す時点(SCN)情報(自動的にエージアウトされる) 保証付きリストアポイント 制御ファイル内に記録されたエージアウトされない巻き戻す場所(SCN)情報 これ以降であれば任意の時点へFlashbackが可能 ただし、高速リカバリ領域が枯渇すると、エラーとなるので注意(ORA-19809、ORA-19804) Flashback Log 変更される前の状態を保持 (高速リカバリエリア内) Flashback Database Window リストアポイントまたは 保証付きリストアポイント Copyright © 2024, Oracle and/or its affiliates 261
  174. Flashback Databaseの使用について • Flashback Databaseの有効化 • 高速リカバリ領域の設定とFlashback Databaseの有効化が必要 Flashback Database

    高速リカバリ領域関連パラメータ 初期化パラメータ 必須 説明 DB_RECOVERY_FILE_DEST_SIZE Yes ディスク割当て制限を指定します。ディスク割当て制限は、この データベースのリカバリ領域で使用されるデータの最大格納量を バイト単位で示したもの DB_RECOVERY_FILE_DEST Yes リカバリ領域の場所を指定します。ファイル・システム上のディレク トリまたはASMディスク・グループを指定 DB_FLASHBACK_RETENTION_TARGET No データベースをFlashbackできる時点の上限(分)を指定します。 このパラメータは、Flashback Databaseでのみ必要 SQL>ALTER DATABASE FLASHBACK ON; ALTER DATABASE FLASHBACK OFF; Copyright © 2024, Oracle and/or its affiliates 262
  175. Flashback Databaseと性能について • 最適なFlashback Databaseのパフォーマンスのための環境の構成 • 高速リカバリ領域のI/O性能に大きく影響されるので、可能なかぎり高性能な環境を準備する • 十分なディスク・スピンドルを準備する、または非揮発性RAMなどを採用するなど •

    Flashback Databaseのパフォーマンスに対する影響の監視 • AWRレポート/スナップショットの情報 (flashback buf free by RVWR)のチェック • V$FLASHBACK_DATABASE_STATビュー • V$SYSSTATビュー Flashback Database 列名 列の意味 physical write I/O request データ・ブロックの書込みのために発行された書込み操作の数 Physical read I/O request データ・ブロックの読取りのために発行された読取り操作の数 Redo writes REDOログへの書込みのために発行された書込み操作の数 Flashback log writes Flashback Logへの書込みのために発行された書込み操作の数 Flashback log write bytes このインスタンスから書き込まれたFlashback Databaseデータの合計バイト・サイズ Copyright © 2024, Oracle and/or its affiliates 263
  176. 制約および留意点 • メディア障害の修復またはデータファイルの誤った削除からのリカバリには使用できません • データファイルの縮小操作を元に戻すことはできません • Flashback Databaseのみを使用して、削除されたデータファイルの回復はできません • 制御ファイルがバックアップからリストアされるか、または再作成されると、すべての累積Flashback

    Log情報が破棄されます • Flashback Databaseを使用して、制御ファイルのリストアまたは再作成が行われたときより前に戻すことはできません • NOLOGGING操作が行われていたターゲット時刻を指定してFlashback Databaseを使用すると、NOLOGGING操作の影響 を受けたデータベース・オブジェクトとデータファイルのブロックが破損している可能性があります • NOLOGGING操作と同時の目標時点またはSCNでFlashback Databaseを使用することを避けてください Flashback Database https://docs.oracle.com/cd/F19136_01/bradv/using-flasback-database-restore-points.html#GUID-28EB12CA-6E98-4ED4-A798- 1326E4A938AB Copyright © 2024, Oracle and/or its affiliates 264
  177. Multitenant ArchitectureとFlashback Database CDB単位でのFlashback Database PDB単位でのFlashback Database Flashback Database CDB

    全体をFlashback プラグされているPDBもFlashbackされる (CDB ROOTでリカバリポイントを持つ) 特定のPDBのみをFlashback (PDBごとにリストアポイントを持つ) Copyright © 2024, Oracle and/or its affiliates 265
  178. 自動UNDO管理について Database Configuration Assistant(DBCA)を使用してデータベースを作成すると、 自動拡張可能なUNDO表領域が自動的に作成される • UNDO管理用の初期化パラメータの概要 • 動的パフォーマンス・ビュー: V$UNDOSTAT

    Flashback機能 初期化パラメータ UNDO_MANAGEMENT AUTOまたはNULLの場合は、自動UNDO管理が使用可能 MANUALの場合は、手動UNDO管理モードとなる (デフォルトはAUTO) UNDO_TABLESPACE 自動UNDO管理モードの場合のみ有効(オプション)でUNDO表領域の名前を指定する データベースに複数のUNDO表領域があり、データベース・インスタンスで特定のUNDO表領域を 使用するように指定する場合にのみ使用 UNDO_RETENTION 最小UNDO保存期間(秒単位)を指定 現行のUNDO表領域に十分な領域がある場合にのみ有効 Copyright © 2024, Oracle and/or its affiliates 267
  179. Flashback機能(アプリケーション開発機能あるいは管理者向け機能) Flashback機能 機能名 解説 特記事項 Flashback Query 過去のある時点で存在していたデータを取得可能 本資料内で解説 Flashback

    Version Query 特定の時間間隔に存在した、特定の行の各バージョン(データ)を取得可能 Flashback Transaction Query 特定の時間間隔内における特定のトランザクションまたはすべてのトランザク ションのメタデータおよび履歴データを取得可能 Flashback Transaction データベースがオンラインである間にトランザクションおよびその依存トランザク ションをロールバック可能 DDL操作、LOBデータなど一部で 制約あり Flashback Data Archive 存続期間中、表に対する全トランザクションの変更を追跡および格納可能 本資料内で解説 一部の表構成で制約あり Copyright © 2024, Oracle and/or its affiliates 268
  180. Flashback Data Archiveとは Flashback Data Archiver プロセス(FBDA)は、存続期間にわたって表に 対するトランザクションの変更を追跡し、格納できる機能を提供する これにより、表をいつでもFlashbackして、元の状態にリストア可能 オブジェクトと維持条件を指定し有効化する事で、意識的に過去データを

    利活用できる 使用例: デフォルトのFlashback Data Archive fla1を作成 (最大10GBの表領域tbs1を使用し、データは5年間保持) CREATE FLASHBACK ARCHIVE DEFAULT fla1 TABLESPACE tbs1 QUOTA 10G RETENTION 5 YEAR; 表inventoryおよびstock_dataのFlashback Data Archiveを有効にし て、デフォルトのFlashback Data Archiveに履歴データを格納 ALTER TABLE inventory FLASHBACK ARCHIVE; ALTER TABLE stock_data FLASHBACK ARCHIVE; 2007年の年初にすべての品目の在庫を取得する問合せ SELECT product_number, product_name, count FROM inventory AS OF TIMESTAMP TO_TIMESTAMP ('2007-01-01 00:00:00', 'YYYY-MM-DD HH24:MI:SS'); Flashback機能 Copyright © 2024, Oracle and/or its affiliates 270
  181. Flashback機能(データベース管理機能) Flashback機能 機能名 解説 特記事項 Flashback Table 表を以前の状態にリストアできる TO SCN句、TO

    TIMESTAMP句、TO RESTORE POINT句などが利用可 能だが、システム内のUNDOデータ量に依存する DDL操作済みのものは対応不可 Flashback Table処理はロール バックできない Flashback Drop Flashback TableにTO BEFORE DROP句を使用し、Drop Table文を無 効化できる Flashback Database 前述のとおり Copyright © 2024, Oracle and/or its affiliates 271