お久しぶりです!

久々の登場のプラチナホルダー浜辺です。

【マニア向け】すぐに使える!Oracle Database 12cR2の新機能!(前編)
【マニア向け】すぐに使える!Oracle Database 12cR2の新機能!(後編)
の記事の執筆をしたり

某所で技術講演しました!で講師をしたり

ゾンビインスタンス削除_後編(真犯人発見!相関図付)でゾンビインスタンスの削除を複雑化させた犯人として登場していた者です!

今回は、案件でマルチテナントを良く利用することになってきましたので、マルチテナントの概要および基本的な操作をご紹介したいと思います。
全部で10回程度の連載を想定しています。

これから宜しくお願い致します。

マルチテナントとは?

12cR1よりリリースされたマルチテナント・アーキテクチャは
「 複数のデータベースを1つのインスタンスに統合できる 」 といった機能となります。

もっと簡単に言うと、
「 データベースの中に、子となるデータベースを複数作成することができる 」 機能です。

この機能により、複数のデータベースでメモリ・CPUなどのリソースを共同で利用することが可能となり、
従来よりデータベース全体のリソース使用量の削減が期待できます!

メモリ必要量がリリース毎に増えているので嬉しいですね

ここまでの説明で 良くお客様から質問をいただくのが、
「 ん?従来のデータベースの統合とどう違うのですか? 」 です。

回答いたしましょう!

従来のデータベースの統合では、
統合対象のデータベース同士でスキーマが競合していると、 スキーマ名やオブジェクト名などの変更が余儀なくされました。
また、変更した場合に、正常にアプリケーションが動作するか といったことが懸念事項として大きく残る形となり、 データベースの統合は データベース利用者にとって踏み出しにくい作業でした。

なんとなく敷居が高そうでしょ?

一方、マルチテナントですと、 データベースの中にデータベースを配置する形ですので、 スキーマ競合といったことなく 基本的にこれまで通りにデータベースを利用できるため 安心してデータベース統合を行えます。

これは嬉しいですね!

ここが大きな違いだと思います。
その他で、マルチテナントのメリットとして良く紹介されるのが、 データベースの移行や複製の簡略化となります。
上記についてはまた別の回でご紹介したいと思います。

次に基本的なマルチテナントの用語をご紹介してきます。

まず、マルチテナント・アーキテクチャが生まれたことにより 3種類のデータベース構成を取る事ができる様になりました。

勿論、データベース作成の画面も変更されております。

CDBやPDBといった聞きなれない用語が出てきましたね…

ショッピングモールを例に説明すると分かりやすいかもしれません。

通常ショッピングモールには、複数のテナントが入っており、トイレは各テナント毎ではなく、モール内で共同利用となります。

共同で利用することで各テナントの費用負担が軽減されますよね。
モール内には、トイレ以外にもエレベータ、防災センターなど共同利用している設備はたくさんあります。

この共同利用しているのが、OracleでいうSGA、Processなどに該当し、テナントはPDBとなります。
さしづめ、CDB(root)はオーナといったところでしょうか。

ショッピングモールでは度々テナントの入れ替えがありますが、マルチテナントでもPDBの入れ替えが行えます。

Export/Importのように従来のOracle機能を利用した入れ替えも可能ですが、マルチテナント用に専用のコマンドが用意されており、
従来の方法と比べて、簡単な操作で入れ替えが行えます。

では、CDBやPDBが分かったところで、次はCDBを構成するものをご紹介していきます!
CDBは、コンテナ・データベースと呼ばれ、以下で構成されます。

ルート・コンテナ(ルート) Oracle提供のメタデータおよび共通ユーザーが格納されます。
⇒SYSTEM表領域、SYSAUX表領域、TEMP表領域UNDO表領域、USERS表領域
シードPDB(シード) PDBの作成にて使用する情報がテンプレートとして格納されます。
⇒SYSTEM表領域、SYSAUX表領域、TEMP表領域
PDB(プラガブルデータベース) ユーザー作成DB
⇒SYSTEM表領域、SYSAUX表領域、TEMP表領域、(UNDO表領域)、USERS表領域

ルートおよびシードは CDB 内に1つ存在し、PDBは最大で 4096 個まで作成可能です。

※12cR1でのPDB最大数は252個。
※12cR1ではUNDOは共通資産。12cR2よりPDB毎にUNDOを持つことも可能。

とここで、データベースの構成をお客様に決めていただくにあたり、Non-CDB構成ですか?シングルテナント構成ですか?それともマルチ…と言うのは長いと思いませんか??

上記を、単にCDBコンテナ)構成 / 非CDB(非コンテナ)構成 と呼んだりもします。

CDB構成 CDBとPDBにより構成させる新しいデータベースタイプ
⇒シングルテナント構成、マルチテナント構成
非CDB構成 従来リリースで使用されていたデータベース
⇒Non-CDB構成

※マルチテナントを利用する場合は、別途Enterprise Editionの追加ライセンス「Oracle Multitenant」が必要となります。
上記のライセンスなしでも、シングルテナント構成は利用可能です。

では、次回はマルチテナントの操作方法をご紹介していきます。

投稿者プロフィール

技術チーム
技術チーム
DBひとりでできるもんを盛り上げるべく、技術チームが立ち上がり早6年。ひとりでできるもんと言いつつ、技術者が読んでプッとなるような、極めてピンポイントでマニアックな技術ネタを執筆しています!