~複数DB・複数ORACLE_HOME・CDB+PDB構成の違いと選び方~
💰 【PR】Oracleエンジニアの市場価値、調べてみませんか?
Oracleのスキルは需要が高く、特定の資格や経験を持っていると年収が大幅にアップするケースがあります。まずはIT専門のエージェントで非公開求人をチェックしてみませんか?
■ はじめに
開発・検証・運用など、複数の独立したOracle環境を1台のサーバー上で使いたい場面は多々あります。Oracleでは、以下のように複数環境を作成できます:
- 複数データベース(複数SID)を同一ORACLE_HOMEで構成
- 複数のORACLE_HOMEに分けて独立構成
- CDB(コンテナ・データベース)に複数PDB(プラガブル・データベース)を格納する構成
本記事では、それぞれの構成方法の比較と、GUI(dbca)での作成手順、PDBへの接続方法を解説します。
■ 3つの構成方法と違い
| 構成 | 内容 | 特徴 |
|---|---|---|
| 同一ORACLE_HOMEに複数DB | 同一ソフトで複数DB(SID)を作成 | シンプル・省スペース |
| 複数ORACLE_HOMEに個別DB | DBごとにソフトを分離 | 障害・パッチの影響を最小化 |
| CDB+複数PDB | 1つのCDBに複数のPDBを格納 | 軽量・高速・柔軟性高い(Oracle推奨) |
■ パターン①:同一ORACLE_HOMEに複数のDBを作成(SID別)
● 構成イメージ
/u01/app/oracle/product/19.0.0/dbhome_1
├── orcl1(SID:orcl1)
└── orcl2(SID:orcl2)
● GUI手順(dbca)
$ dbca
- 「データベースの作成」→「新規データベース」→「SID名: orcl1」など指定
- 繰り返してorcl2等を作成
■ パターン②:別ORACLE_HOMEに分離して構成
● 構成イメージ
/u01/app/oracle/product/19.0.0/dbhome_1 → orcl1
/u01/app/oracle/product/19.0.0/dbhome_2 → orcl2
● 手順
- Oracleソフトを再インストール(パスを変えて)
- ORACLE_HOMEを切り替えてdbcaを起動
$ export ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_2
$ export PATH=$ORACLE_HOME/bin:$PATH
$ dbca
■ パターン③:CDB+複数PDBで構成(おすすめ)
● 構成イメージ(テキスト図)
CDB名:cdb1(SID:cdb1)
├── PDB1(開発用)
├── PDB2(検証用)
└── PDB3(本番用)
● 特徴
- 軽量・高速にPDBを作成/削除可能
- リソース共有による効率化
- Oracle 21c以降は非CDBが非推奨となっており、将来性あり
💰 【PR】Oracleエンジニアの市場価値、調べてみませんか?
Oracleのスキルは需要が高く、特定の資格や経験を持っていると年収が大幅にアップするケースがあります。まずはIT専門のエージェントで非公開求人をチェックしてみませんか?
● GUI手順(dbca)
$ dbca
- 「データベースの作成」→「コンテナ・データベース(CDB)として作成」
- 「作成するPDB数」を指定(例:1個)
- 後から追加PDBを作成する場合は
dbca → 「プラガブル・データベースの作成」を選択
■ PDBへの簡単な接続方法
● ローカル接続
$ export ORACLE_SID=cdb1
$ sqlplus sys/oracle@pdb1 as sysdba
※静的リスナーで構成していない場合、tnsnames.oraにPDB名を記載:
PDB1 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVICE_NAME = pdb1)
)
)
● コンテナ変更コマンド(sqlplus上)
-- CDBに接続した状態で
ALTER SESSION SET CONTAINER = pdb1;
■ 環境変数設定(ローカル接続用)
複数DBやCDB+PDBを切り替えて使用するには、次のようにORACLE_SIDやORACLE_HOMEを変更します。
# DB1を使う場合
export ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1
export ORACLE_SID=orcl1
export PATH=$ORACLE_HOME/bin:$PATH
# CDBを使う場合
export ORACLE_SID=cdb1
■ メリット・デメリット比較
| 構成 | メリット | デメリット |
|---|---|---|
| 同一ORACLE_HOMEに複数DB | シンプル、省メモリ、容易な構築 | パッチ・障害が他DBに波及 |
| 複数ORACLE_HOME | 高い独立性、異なるバージョン共存 | ディスク容量増、運用負荷増 |
| CDB+PDB構成 | 軽量・高速・柔軟・今後の主流 | 学習コストあり、初期設計重要 |
■ まとめ
| 環境構築目的 | 推奨構成 |
|---|---|
| 簡単に複数環境を持ちたい | CDB+PDB(Oracle推奨構成) |
| 各環境の完全な分離が必要 | 複数ORACLE_HOME+個別DB |
| 小規模検証/学習用途 | 同一ORACLE_HOME+複数DB |
■ 補足:GUIを使って複数PDBを追加する手順
dbca→ 「プラガブル・データベースの作成」- CDBを選択し、新しいPDB名(例:
pdb_dev,pdb_test)を指定 - 必要に応じてPDBユーザーを作成して完了
CDB+PDB構成は、これからのOracle運用において標準となるアプローチです。1台のサーバーで複数の用途に分けて運用したい場合は、ぜひPDBの活用を検討してみてください。
[参考]
Oracle Database 19c 単一インスタンス・データベース インストレーション・ガイド




コメント