Database Support Blog

  • Oracle Database
2022.06.21

マルチテナントのPDB数はどう見積もる?最適なエディション選択と検討のヒント

マルチテナント、テナント構成、というキーワードがOracle Database に登場してから早数年が経ちました。21c 以降では従来構成は廃止されることも決定しています。19cが従来構成もテナント構成もどちらも選べる最後のバージョンです。19cへのバージョンアップを機に、従来構成を維持するか、テナント構成に変更するかを思案する方も多いのではないでしょうか。

今回はテナント構成においてユーザーデータが格納される領域である「PDBの数」に焦点を当ててバージョンアップ後の構成を考えてみましょう。

※以下、Enterprise Edition = EE、Standard Edition 2 = SE2 と略記します。

テナント構成とは

Oracle Database におけるテナント構成とは、PDBとCDBから成るデータベース構成のこと。PDB はプラガブル・データベース、CDBはコンテナ・データベースの略称です。

Oracle テナント構成

※詳細なアーキテクチャは下記のブログもご参考ください。
https://www.ashisuto.co.jp/tech-note/article/20210107_oracle.html


マルチテナントとシングルテナントの違い

テナント構成そのものをマルチテナント、と表現する文書もまれに見かけますが、正確には下記の違いがあります。1つのCDBに1つのPDBのみ作成している構成が「シングルテナント」、1つのCDBに複数のPDBを作成している構成が「マルチテナント」です。

マルチテナントとシングルテナントの違い

従来構成からテナント構成にリプレースするとき、どちらの構成にするかの検討は必要です。従来のシステムをシングルテナントとして移設するのか、複数のシステムを1つのCDBに集約するのかは社内のシステム事情や機器のスペックなどに応じて様々なパターンが考えられます。

マルチテナントの構成例


マルチテナント構成で作成できるPDB数の違い

マルチテナント構成を前提とする場合、「1つのCDBに対して作成できるPDBの数」に注意が必要です。

  • ~18c:SE2ならPDBは1つまで。EEならPDBは3つまで。
  • 19c~:SE2もEEもPDBは3つまで。
  • 19c からはSE2でもEEと同様にPDBを3つまで作成できるように機能制限が緩和されています。

また、1つのCDBに対して4つ以上のPDBを作成して構成したい場合、EEの有償オプションである Oracle Multitenant オプションが必要です。

上述の内容を含めて、以下に図解しています。

従来の型のDB構成

Oracle Multitenant オプションは1つのCDBあたりのPDB数の上限を増やしたいときに利用します。マルチテナント構成だからといって必ずしも必須のオプションではありません。オプションの要否は「その基盤上でいくつのPDBを稼働させる可能性があるか」を検討のうえ決定します。


複数PDBを作成したいときのエディション選定の考え方

マルチテナント構成にしたい場合、PDB数が3つまでであれば SE2 でも EEでも作れる数は同じです。ただし、SE2にはライセンス契約の制限上、利用可能なハードウェアに制限があります。

SE2のハードウェア制限とは下記の図のように「最大2ソケットまで搭載可能な機器で、かつ1つのデータベースシステムにつき同時実行可能なスレッド数は 16スレッドまで」という上限のことです(19c シングル構成の場合)。

サーバの搭載可能CPU数(ソケット数)と実装CPU数の制限

CPUスレッドの利用制限

上記要件を満たした環境で複数DBを稼働させたい場合、システムのパフォーマンス要件を満たせるのか?アプリケーションからの同時接続に耐えられるのか?というところまで考える必要があります。

(参考)
https://www.ashisuto.co.jp/db_blog/article/20160223_se2thread1.html

EEの場合、このスレッド数の制限を考慮する必要はありません。複数PDBが同居するマルチテナント構成にも耐えられるように潤沢なハードウェアリソースを搭載した構成も可能です。

そもそも複数のデータベースが同一筐体(サーバ)に同居するということは、同じハードウェア上のCPUやメモリリソースを消費する、ということです。テナント構成では「1つのCDBにつきPDBは3つまで作成可能」ですが、複数PDBを作成する場合には検討段階からパフォーマンスの観点も念頭に置いたエディション選定をお勧めします。


EE有償オプション「Oracle Multitenant」は本当に必要か

1つのCDBにつきPDBは3つまで作成可能ならば、EEの有償オプションである Oracle Multitenant の契約有無でテナント構成の選択肢は異なります。オプション未契約の場合は下図の例①、オプション契約がある環境であれば例①または例②のイメージで作成することができます。

Oracle Multitenant PDB構成例

全体の総PDB数が同じであれば一見どちらでも同じように見えますが、実はCPUやメモリリソース消費の観点で集約率が異なります。マルチテナント構成の場合「複数のPDBが1つのCDB内でメモリやCPU、バックグラウンド・プロセスを効率良く共有する」という仕組みが備わっています。Oracle Multitenant を活用した例②の構成のように1つのCDBですべてのPDBを管理するほうが、ハードウェアリソースを有効活用でき、データベースの集約率は高くなります。

集約率に関する詳細は、下記の記事も併せてご参考ください。

(参考)ユーザーの意見をトコトン反映した12cR2のマルチテナント
https://www.ashisuto.co.jp/tech-note/article/20170118_oracle.html


まとめ

SE2、EE、どちらの場合でも1つのCDBに3つのPDBまで作成は可能です。ただし、SE2の場合はエディションの制約も考慮した上で選択する必要があります。下記の点にも注意してSE2で検討を進めるか、EEで複数DBを統合するかを検討するとよいでしょう。

  • システム自体に求められる処理性能
  • 各データベースへの同時接続数や利用ユーザー数、処理傾向(利用規模)
  • 同一筐体上に構築したいデータベース数  ... 等

このように19c へのバージョンアップ検討やリプレースを考える際、データベース構成の選択肢は多種多様です。また、複数DBの統合をする場合、EEならPDBの数の観点以外でも基本機能が充実しているためデータベースのパフォーマンス向上や運用負荷の低減等も見込めます。

(参考)DBエンジニア厳選!DB基盤に効果的なOracle EE基本機能5選
https://www.ashisuto.co.jp/db_blog/article/oracledatabase-ee-5-recommended-functions.html

(参考)【Oracle Database】ユーザーが使用可能なCPUリソースを制限する方法
https://www.ashisuto.co.jp/db_blog/article/201710-resource-manager.html

データベース基盤にお悩みの方はお気軽にアシストまでお問い合わせください。


【参考】ODAという選択肢

1つのCDBに4つ以上のPDBを作成するマルチテナント構成を実現するためだけにEEにするかどうか、悩む方もいらっしゃると思います。EEの場合、課金対象はプロセッサ数ではなく「搭載しているCPUのコア数」になるためです。

このコア数を有効化している数量だけを課金対象にできる基盤として「Oracle Database Appliance(略称:ODA)」があります。

少し前の記事ですが、ODAを採用するときにSE2からEEに変えたことで得られた体験談として事例公開を許諾いただいたブログがございます。エディションにお悩みの方にも参考になると思いますのでぜひご参考くださいませ。

ODA導入ユーザー様に聞く!データベース・インフラの選定ポイント
https://www.ashisuto.co.jp/db_blog/article/oda-customer-roundtable-2016.html


執筆者情報

あさの みさ プロフィール画像

2007年度アシストに入社後、Oracle Database のフィールドエンジニアと定期研修のセミナー講師を兼務。
2度の産休・育休を経て、現在はデータベースやクラウド関連のプリセールスエンジニアとして活動中。


■本記事の内容について
 本記事に示した定義及び条件は変更される場合があります。あらかじめご了承ください。

■商標に関して
 OracleとJavaは、Oracle Corporation 及びその子会社、関連会社の米国及びその他の国における登録商標です。
 文中の社名、商品名等は各社の商標または登録商標である場合があります。


Oracle Databaseライセンスのご相談ならアシスト

関連している記事

  • Oracle Database
  • Exadata
2022.06.28

こんなのあったんだ!Exadataの便利ツール ExaWatchar・Exachkをご紹介

Exadataは大規模なデータベースマシンのため、運用や監視に労力がかかります。EMCCを始め統合管理ツールも多く存在しますが、Exadataにデフォルトで実装されている便利なツールを用いることで、より効果的な運用につなげられます。便利なツールExaWatchar・Exachkを詳しくご紹介します。

  • Oracle Database
  • Oracle Cloud
  • PostgreSQL
  • AWS
  • Exadata
2022.05.24

入社2年目がレポート!Cloud Database Days 2022技術セッションの見どころ

2022年5月26日~6月3日に開催される「Cloud Database Days 2022」。その中でも10個に分かれた技術セッションについて、ポイントを押さえてそれぞれご紹介いたします!

  • Oracle Database
2022.05.20

Oracle Databaseライセンスの定義とルールを正しく理解する ~第3回:仮想化環境編~

今回はOracle Databaseライセンス「仮想化環境編」です。これまでエディション、ライセンスの種類、カウントの方法、という基本的な内容を説明してきましたが、より構成に踏み込み、「ハードウェア分割の基本的な考え方」や「仮想化環境の考慮点」=Soft Partitioning理解のポイントを説明しします。

ページの先頭へ戻る