データベース

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

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

こんにちは!

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

 

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

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

 

このような疑問に答えます。


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

※保有資格:OracleMasterGold/JavaWebコンポーネントディベロッパ/応用情報技術者/簿記2級

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を作成する方法

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

マルチテナントDBではなく、11g以前と同じDBを作成したい場合は、「コンテナ・データベースとして作成」のチェックを外します。
このチェックを外すと、11g以前と同じDBが作成されます。

チェックを外さないと…
マルチテナント・アーキテクチャで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おっさん
ここまで読んでくれてありがとう!




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

コメントを残す

*