データベース

Oracleマルチテナントとは?CDBとPDBの3つのメリット!

  • このエントリーをはてなブックマークに追加
  • LINEで送る

こんにちは!

Oracle12cから導入された「マルチテナント・アーキテクチャ」ってご存知しょうか?

 

『マルチテナント・アーキテクチャって何だろう?』

『メリットとデメリットは何だろう?』

 

こんな疑問に答えます。

SE歴25年のオッサンが解説するぞい!
SEおっさん
SEおっさん



スポンサーリンク

Oracleマルチテナント・アーキテクチャとはcdbとpdb

Oracle12cから「マルチテナント・アーキテクチャ」が導入されました。

アーキテクチャはわかるけど、
マルチテナントって何
たろちゃん
たろちゃん

マルチテナント・アーキテクチャとは
『データベースの中に複数のデータベースを作成できる』
という仕組みです。

マルチテナント・アーキテクチャに存在するデータベースは2種類あります。
『コンテナデータベース』と『プラガブルデータベース』です。

マルチテナントのDB
  1. コンテナデータベース

    基盤となるDBのコト
    略称:CDB

  2. プラガブルデータベース

    CDBの中に作成するDBのコト
    略称:PDB

コンテナは何となくわかるけど、
プラガブルってなーに
たろちゃん
たろちゃん
SEおっさん
SEおっさん
プラガブル(Pluggable)は、
プラグみたいに接続できるって意味や。

マルチテナント(PDB・CDB)方式にはメリットもありますが、同時にデメリットも存在します。



スポンサーリンク

マルチテナント(PDB・CDB)の3つのメリット

まず、マルチテナント・アーキテクチャ(PDB・CDB)の3つのメリットを紹介します。

3つのメリット
  1. 他のCDBへ移行が簡単にできる

    PDBをアンプラグ&プラグして他CDBへ移行できます

  2. メモリ管理が効率化できる

    一つのDBインスタンス上(=CDB)で複数のデータベース(=PDB)を稼働できます

  3. パッチ適用が簡略化できる

    CDBにパッチをあてるとPDBにも適用されます

仮想DBのような機能ってことかぁ。
仮想環境(VMマシン)と同じイメージやね。
たろちゃん
たろちゃん
SEおっさん
SEおっさん
そうじゃ。そうじゃ。

マルチテナント(PDB・CDB)のデメリットと制限事項

続いて、マルチテナント(PDB・CDB)のデメリットと制限事項を紹介します。
 
マルチテナント方式のDBは、これまでのOracleDB(11g以前)とアーキテクチャが異なりますので、Oracle11gの時と同じように接続すると…
 

『DB接続やユーザ作成でエラーが発生しまくる』

という事態に陥ります。

エラーの原因は、マルチテナント・アーキテクチャの制限事項に引っ掛かったからです。
制限事項によるエラー発生が、デメリットと言えるでしょう。

マルチテナントDBの制限事項でエラーとなるケースを3つ紹介します。

制限事項によるエラー
  1. CDBにユーザを作成できない

    create user エラー:ORA-65096が発生

  2. PDBをオープンしないとユーザ作成できない

    create user エラー:ORA-65096が発生

  3. PDBは独自のサービス名でTNS経由のみ接続できる

    tnsname.oraに記述したPDBサービス名を指定してDB接続しなければ DB接続エラー:ORA-01017が発生

制限事項によるエラー解消方法は下記にまとめました。

OracleのCDBで共通ユーザ作成!ORA-65096の解消法

OracleのPDB接続エラー!サービス名とtnsnamesを確認



スポンサーリンク

マルチテナント構成でないDBを作成する方法(

必ずしもマルチテナント・アーキテクチャは必須ではありません。

「コンテナ・データベースとプラガブル・データベースの構成じゃなくてOK」
って人は、今までと同じの構成(Oracle11g等)にすることもできます。

マルチテナント・アーキテクチャでないDBを作成する方法(19cまで)

 

インストールウィザードの途中に、データベースの識別子の指定する画面が表示されます。

マルチテナントDBではなく、11g以前と同じDBを作成したい場合は、「コンテナ・データベースとして作成」のチェックを外します。
このチェックを外すと、11g以前と同じDBが作成されます。
※※※ご注意あれ※※※
この手段が使えるのはOracle19cまでです。
21cからチェックが灰色(無効化)となり押せませーん。ぐぬぬぅ。
21cからは強制的にCDBとして作成することになります。
※※※ご注意あれ※※※

チェックを外さないと…
マルチテナント・アーキテクチャでDBが作成されます。
マルチテナントにしたくない場合は、注意が必要です。
Oracle社がマルチテナントを推奨してるから、デフォルトでチェックが入っているのかも。

SEおっさん
SEおっさん
マルチテナントにしたくない場合
チェックを外すのじゃ


スポンサーリンク

Oracleのマルチテナント・アーキテクチャ まとめ!

いかがでしたでしょうか?

Oracleマルチテナント・アーキテクチャの概要や制限事項。
そして、メリット・デメリットについてご紹介いたしました。

ポイントを振り返ってみましょう。

マルチテナントのDB
  1. コンテナデータベース

    基盤となるDBのコト
    略称:CDB

  2. プラガブルデータベース

    CDBの中に作成するDBのコト
    略称:PDB

3つのメリット
  1. 他のCDBへ移行が簡単にできる

    PDBをアンプラグ&プラグして他CDBへ移行できます

  2. メモリ管理が効率化できる

    一つのDBインスタンス上(=CDB)で複数のデータベース(=PDB)を稼働できます

  3. パッチ適用が簡略化できる

    CDBにパッチをあてるとPDBにも適用されます

制限事項によるエラー
  1. CDBにユーザを作成できない

    create user エラー:ORA-65096が発生

  2. PDBをオープンしないとユーザ作成できない

    create user エラー:ORA-65096が発生

  3. PDBは独自のサービス名でTNS経由のみ接続できる

    tnsname.oraに記述したPDBサービス名を指定してDB接続しなければ DB接続エラー:ORA-01017が発生

マルチテナント・アーキテクチャでないDBを作成する場合、DBを作成画面で「コンテナ・データベースとして作成」のチェックを外す。

SEおっさん
SEおっさん
ここまで読んでくれてありがとう!

「記事を読んでもわからないトコがある」「内容が変だよ」
という時は、お気軽にコメントください♪

「もっとSEおっさんに詳しく聞きたい。何かお願いしたい!」
という時は、ココナラまで。メッセージもお気軽に♪

LINEでのお問合わせも受付中!
LINE公式アカウント

メッセージをお待ちしています!

取得資格
  • 応用情報技術者
  • Oracle Master Gold
  • Java SE Gold
  • Java EE Webコンポーネントディベロッパ
  • Python エンジニア認定データ分析
  • 簿記2級


スポンサーリンク
  • このエントリーをはてなブックマークに追加
  • LINEで送る

コメントを残す

*