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

Oracle Multitenant Architecture resource management

Oracle Multitenant Architecture resource management

oracle4engineer

February 05, 2021
Tweet

More Decks by oracle4engineer

Other Decks in Technology

Transcript

  1. Oracle Multitenant Architectureでのリソース制御
    プラガブル・データベースごとのリソース制御
    2021年3月10日
    日本オラクル株式会社
    日下部明

    View full-size slide

  2. Safe harbor statement
    以下の事項は、弊社の一般的な製品の方向性に関する概要を説明するものです。また、
    情報提供を唯一の目的とするものであり、いかなる契約にも組み込むことはできません。以
    下の事項は、マテリアルやコード、機能を提供することを確約するものではないため、購買
    決定を行う際の判断材料になさらないで下さい。
    オラクル製品に関して記載されている機能の開発、リリース、時期及び価格については、弊
    社の裁量により決定され、変更される可能性があります。
    Copyright © 2021, Oracle and/or its affiliates
    2

    View full-size slide

  3. 1. Oracle Multitenant Architecture概観
    • ファイル構成
    • アクセス可能範囲
    • クライアントからの接続
    • リソース制御
    2. Oracle Multitenant Architectureリソース制御の大規模運用事例
    • Oracle Cloud Infrastructure – Oracle Autonomous Database
    Oracle Multitenant Architectureのリソース制御
    Copyright © 2021, Oracle and/or its affiliates
    3

    View full-size slide

  4. Copyright © 2021, Oracle and/or its affiliates
    4
    Oracle Multitenant Architecture概観
    Non-CDB構成とCDB構成は何が同じで、何が異なるか

    View full-size slide

  5. 1つのOracleインスタンスが複数のテナント(=プラガブル・データベース)をホストする
    Oracle Database 11g Release 2までの構成
    1つのOracleインスタンスが1つのデータベースをホストする
    Oracle Database 12c Release 1で導入
    1つのOracleインスタンスが複数の(プラガブル)データベース
    をホストする
    Oracle Multitenant Architecture (MTA)
    Copyright © 2021, Oracle and/or its affiliates
    5
    Non-CDB構成 CDB(Container Database)構成
    Oracleインスタンス
    OS上のメモリとプロセス群
    データベース
    ストレージ上のファイル群
    Container Database (CDB)構成の対義語として
    Non-CDB構成という名前になった

    View full-size slide

  6. Copyright © 2021, Oracle and/or its affiliates
    6
    「データベース」はストレージ上のファイル群を指す言葉
    Non-CDB構成のファイル構造
    REDOログ・ファイル 制御ファイル データファイル
    (表領域)
    SYSTEM
    UNDO
    SYSAUX
    TEMP
    USERS
    データベース

    View full-size slide

  7. Copyright © 2021, Oracle and/or its affiliates
    7
    プラガブル・データベースはデータファイルの集合
    CDB構成のファイル構造
    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

    View full-size slide

  8. 管理階層が1つ増えるが、アプリケーションからみると個別PDBはNon-CDB構成と同じ
    管理階層が1つ増える
    • CDB全体(ルート・コンテナ)の特権ユーザー(Non-
    CDB構成のSYS)
    • PDBごとの特権ユーザー(SYS)
    • PDBごとのアプリケーション・ユーザー
    PDBにログインするとNon-CDB構成と同じに見える(1つの
    データベースにしか見えない)
    • 自PDBの情報にしかアクセスできない
    • PDB間アクセスにはDatabase Linkを作成する
    • 特権ユーザーが各(PDBごとの)ユーザーのスキーマの
    データにアクセスするのを阻止するにはDatabase
    Vaultを使用する
    Non-CDB構成とCDB構成が異なるところ
    Copyright © 2021, Oracle and/or its affiliates
    8
    PDB 2 PDB n
    PDB 1
    SYS
    SYS
    user
    ルート・コンテナから各PDBへのアクセスを
    禁止するにはDatabase Vaultを使用
    ログインしたPDBから別のPDBは見えない
    Database Vault

    View full-size slide

  9. データベースのワークロードを抽象化した概念
    各Oracleインスタンスはデータベースのワークロードを抽象
    化した「サービス」という属性を持っている。
    Oracleクライアントはサービスを指定して接続するデータ
    ベースを区別する。
    「サービス」で接続するデータベースを区別する
    Copyright © 2021, Oracle and/or its affiliates
    9
    tnslsnr
    Oracleクライアント
    データベース1
    Oracle
    インスタンス1
    データベース2
    Oracle
    インスタンス2
    service1 service2
    Oracleリスナー・
    プロセス
    host:port/service1 host:port/service2

    View full-size slide

  10. プラガブル・データベース(PDB)ごとに一意なサービス名を持っている
    コンテナ・データベース(CDB)構成は1つのOracleインスタン
    スが複数のプラガブル・データベース(PDB)を担当している。
    プラガブル・データベースごとに一意なサービス名を持ってい
    る。
    Oracleクライアントはサービスを指定して接続する(プラガ
    ブル)データベースを区別する。
    アプリケーションから見るとNon-CDB構成もCDB構成も
    違いはなく、まったく同じ接続方法になる。
    コンテナ・データベース(CDB)構成でのサービス
    Copyright © 2021, Oracle and/or its affiliates
    10
    tnslsnr
    Oracleクライアント
    service2
    Oracleリスナー・
    プロセス
    host:port/service1 host:port/service2
    servicen
    service1
    Oracleインスタンス
    PDB 1 PDB 2 PDB n

    View full-size slide

  11. 他のプラガブル・データベースへはアクセスできない
    プラガブル・データベースはデータファイルの集合で、プラガ
    ブル・データベース同士はデータファイルを共有していない。
    あるプラガブル・データベースにログインしたセッションからは
    他のプラガブル・データベースの情報にはアクセスできない。
    他のプラガブル・データベースが存在していることさえ認識
    できない。
    あるスキーマにログインしたデータベース・ユーザーが他のス
    キーマの情報にアクセスできないのと同じ。
    プラガブル・データベースへのログイン
    Copyright © 2021, Oracle and/or its affiliates
    11
    Oracleクライアント
    service2
    host:port/service1
    servicen
    service1
    PDB 2 PDB n
    oracle
    Oracleインスタンス
    PDB 1
    Oracleサーバー・プロセス

    View full-size slide

  12. リソース・マネージャ(主に1PDB内の制御)
    • サービスごとにリソースを設定可能
    • 1つのPDBに複数のサービスを定義できる
    • (PDB間のCPU割り当て制御)
    • 12c Release 2からPDBごとに初期化パラメータで
    設定できるようになったのでほぼ使用しない
    初期化パラメータ(CDB全体とPDB毎に設定可能)
    • CPU
    • メモリー(SGA, PGA)
    • I/O
    プラガブル・データベースごとのリソース制御
    Copyright © 2021, Oracle and/or its affiliates
    12
    Oracleクライアント
    host:port/service1
    PDB 2 PDB n
    oracle
    System Global Area (SGA)
    PDB 1
    Oracleサーバー・プロセス
    oracle oracle
    CPU
    メモリー
    service1
    PDB内
    CDB全体

    View full-size slide

  13. プラガブル・データベースごとに初期化パラメータで制御可能
    1つのCDB上の各プラガブル・データベースは1つのSystem
    Global Area (SGA)を共有している。
    各プラガブル・データベース(に接続しているOracleサー
    バー・プロセス)ごとに使用可能なリソースを初期化パラ
    メータでCDB全体と同様に制御できる。
    CPU
    • CPU時間 (CPU_COUNT)
    • SQL並列度 (PARALLEL_*)
    メモリー
    • SGA (DB_CACHE_SIZE, ...)
    • PGA (PGA_AGGREGATE_TARGET, ...)
    I/O
    プラガブル・データベースごとのリソース制御
    Copyright © 2021, Oracle and/or its affiliates
    13
    Oracleクライアント
    host:port/service1
    PDB 2 PDB n
    oracle
    System Global Area (SGA)
    PDB 1
    Oracleサーバー・プロセス
    oracle oracle
    CPU
    メモリー
    PDB毎
    CDB全体

    View full-size slide

  14. CPU時間
    cpu_count
    cpu_min_count
    SQL並列度
    parallel_degree_limit
    parallel_degree_policy
    parallel_force_local
    parallel_max_servers
    parallel_min_degree
    parallel_min_time_threshold
    parallel_servers_target
    containers_parallel_degree
    SGA
    sga_min_size
    sga_target
    db_cache_size
    shared_pool_size
    inmemory_size
    PGA
    pga_aggregate_limit
    pga_aggregate_target
    I/O
    max_iops
    max_mbps
    プラガブル・データベースごとに設定可能なリソース制御関連の主な初期化パラメータ
    (19c)
    Copyright © 2021, Oracle and/or its affiliates
    14
    「データベース・リファレンス」のマニュアルの初期化パラメータの説明にPDBごとに
    変更可能かが記載されている

    View full-size slide

  15. プラガブル・データベースごとに設定可能な初期化パラメー
    タはプラガブル・データベースの特権ユーザー(SYS)によって
    設定可能。
    ただし、プラガブル・データベースのユーザーに設定を変更
    させたくない場合は、ルート・コンテナ側でどの操作を禁止
    するかを指定できる(ロックダウン・プロファイル)。
    プラガブル・データベースごとのリソース制御を制限する
    Copyright © 2021, Oracle and/or its affiliates
    15
    PDB 2 PDB n
    PDB 1
    ALTER SYSTEM SET CPU_COUNT=8
    ルート・コンテナ
    各プラガブル・データベースでの操作を制限
    SYS
    SYS
    ロックダウン・プロファイル
    (禁止操作リスト)

    View full-size slide

  16. Copyright © 2021, Oracle and/or its affiliates
    16
    Oracle Multitenant Architectureの
    リソース制御大規模運用事例
    Oracle Cloud Infrastructure – Oracle Autonomous Database

    View full-size slide

  17. 1つのADBインスタンスの実体はExadata上の1つのプラガブル・データベース
    Autonomous Databaseのインスタンスを作成すると
    Exadata上に1つのプラガブル・データベースが割り当てら
    れる。
    1つのプラガブル・データベースごとにリソース割り当てが行わ
    れる。
    Oracleマルチテナント・アーキテクチャにおいてはルート・コ
    ンテナ以外のプラガブル・データベースからは別のプラガブ
    ル・データベースは存在していることすら認識できない。
    Oracle Cloud Infrastructure – Autonomous Database
    Copyright © 2021, Oracle and/or its affiliates
    17
    Create Autonomous Database

    View full-size slide

  18. Copyright © 2021, Oracle and/or its affiliates
    18
    プラガブル・データベース単位のリソース割り当て
    Oracle Cloud Infrastructure - Autonomous Database
    1つのADBインスタンスの実体はExadata上の
    1つのプラガブル・データベース。
    ADBインスタンスのOCPU※の割り当てはプラ
    ガブル・データベースへのCPUの割り当てであ
    り動的に数秒から数十秒で変更可能。
    (※Oracle Computing Unit: 1 OCPUはCPU 1コアに相当)
    OCPU数に比例したメモリー(SGA, PGA)およ
    びI/O性能が割り当てられる。
    n OCPU

    View full-size slide

  19. 1つのPDB上にリソース割り当てされたサービスをあらかじめ複数用意している
    1つのADBインスタンスの実体はExadata上の1つのプラガ
    ブル・データベース。
    ADBではリソース割り当てのパターンをあらかじめ複数用
    意しており、接続するサービス名で切り替える。
    host:port/service_name
    Oracle Cloud Infrastructure - Autonomous Database
    Copyright © 2021, Oracle and/or its affiliates
    19
    SERVICES NAME platform 概要 パラレル制御
    同時実行
    セッション数
    リソース割り当て
    (SHARES *2)
    TPURGENT ATP only 最も優先度の高い処理向け 手動設定 制限なし (*1) 12
    TP ATP only 汎用的な処理向け シリアル 制限なし (*1) 8
    HIGH ADW/ATP 大量データを扱う処理向け 自動 3 4
    MEDIUM ADW/ATP
    大量データを扱いつつも、
    同時実行数も多い処理向け
    自動 OCPUに比例した値 2
    LOW ADW/ATP 優先度が低い処理向け シリアル 制限なし (*1) 1
    *1 :同時に接続できるセッション数はOCPUに比例し、OCPU辺り100セッションに制限される。
    *2 : 各サービスでのCPU使用率の配分を示す。デフォルト値からの変更は可能。
    HIGH
    MEDIUM
    LOW

    View full-size slide