こんにちは!
Oracle12cから導入された「マルチテナント・アーキテクチャ」ってご存知しょうか?
『マルチテナント・アーキテクチャって何だろう?』
『メリットとデメリットは何だろう?』
こんな疑問に答えます。
Oracleマルチテナント・アーキテクチャとはcdbとpdb
Oracle12cから「マルチテナント・アーキテクチャ」が導入されました。
マルチテナントって何
マルチテナント・アーキテクチャとは
『データベースの中に複数のデータベースを作成できる』
という仕組みです。
マルチテナント・アーキテクチャに存在するデータベースは2種類あります。
『コンテナデータベース』と『プラガブルデータベース』です。
- コンテナデータベース
基盤となるDBのコト
略称:CDB - プラガブルデータベース
CDBの中に作成するDBのコト
略称:PDB
プラガブルってなーに
プラグみたいに接続できるって意味や。
マルチテナント(PDB・CDB)方式にはメリットもありますが、同時にデメリットも存在します。
マルチテナント(PDB・CDB)の3つのメリット
まず、マルチテナント・アーキテクチャ(PDB・CDB)の3つのメリットを紹介します。
- 他のCDBへ移行が簡単にできる
PDBをアンプラグ&プラグして他CDBへ移行できます
- メモリ管理が効率化できる
一つのDBインスタンス上(=CDB)で複数のデータベース(=PDB)を稼働できます
- パッチ適用が簡略化できる
CDBにパッチをあてるとPDBにも適用されます
仮想環境(VMマシン)と同じイメージやね。
マルチテナント(PDB・CDB)のデメリットと制限事項
『DB接続やユーザ作成でエラーが発生しまくる』
という事態に陥ります。
エラーの原因は、マルチテナント・アーキテクチャの制限事項に引っ掛かったからです。
制限事項によるエラー発生が、デメリットと言えるでしょう。
マルチテナントDBの制限事項でエラーとなるケースを3つ紹介します。
- CDBにユーザを作成できない
create user エラー:ORA-65096が発生
- PDBをオープンしないとユーザ作成できない
create user エラー:ORA-65096が発生
- 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社がマルチテナントを推奨してるから、デフォルトでチェックが入っているのかも。
チェックを外すのじゃ
Oracleのマルチテナント・アーキテクチャ まとめ!
いかがでしたでしょうか?
Oracleマルチテナント・アーキテクチャの概要や制限事項。
そして、メリット・デメリットについてご紹介いたしました。
ポイントを振り返ってみましょう。
- コンテナデータベース
基盤となるDBのコト
略称:CDB - プラガブルデータベース
CDBの中に作成するDBのコト
略称:PDB
- 他のCDBへ移行が簡単にできる
PDBをアンプラグ&プラグして他CDBへ移行できます
- メモリ管理が効率化できる
一つのDBインスタンス上(=CDB)で複数のデータベース(=PDB)を稼働できます
- パッチ適用が簡略化できる
CDBにパッチをあてるとPDBにも適用されます
- CDBにユーザを作成できない
create user エラー:ORA-65096が発生
- PDBをオープンしないとユーザ作成できない
create user エラー:ORA-65096が発生
- PDBは独自のサービス名でTNS経由のみ接続できる
tnsname.oraに記述したPDBサービス名を指定してDB接続しなければ DB接続エラー:ORA-01017が発生
マルチテナント・アーキテクチャでないDBを作成する場合、DBを作成画面で「コンテナ・データベースとして作成」のチェックを外す。
「記事を読んでもわからないトコがある」「内容が変だよ」
という時は、お気軽にコメントください♪
「もっとSEおっさんに詳しく聞きたい。何かお願いしたい!」
という時は、ココナラまで。メッセージもお気軽に♪
LINEでのお問合わせも受付中!
LINE公式アカウント
メッセージをお待ちしています!
- 応用情報技術者
- Oracle Master Gold
- Java SE Gold
- Java EE Webコンポーネントディベロッパ
- Python エンジニア認定データ分析
- 簿記2級