Oracle 26ai RAC環境でPDBを運用するには、SQL実行だけでなくsrvctlでのリソース登録が鍵です。本記事では実機ログを交え、Oracle 26ai PDB 作成からOracle PDB 削除 手順までを詳しく解説。GI連携により、RAC構成でのPDB管理を自動化・堅牢化する方法がわかります。
💰 【PR】Oracleエンジニアの市場価値、調べてみませんか?
Oracleのスキルは需要が高く、特定の資格や経験を持っていると年収が大幅にアップするケースがあります。まずはIT専門のエージェントで非公開求人をチェックしてみませんか?
結論:PDB作成・削除の最短手順(Doリスト)
RAC構成において、整合性を保ちながらPDBを管理するための「やることリスト」です。
PDB作成時のステップ
- SQL実行:
CREATE PLUGGABLE DATABASE ...でPDBを作成 - リソース登録:
srvctl add pdb -db <CDB名> -pdb <PDB名>でGIに登録 - 起動:
srvctl start pdb -db <CDB名> -pdb <PDB名>で全ノードオープン
PDB削除時のステップ
- 停止:
srvctl stop pdb -db <CDB名> -pdb <PDB名>でクローズ - リソース削除:
srvctl remove pdb -db <CDB名> -pdb <PDB名>でGIから解除 - SQL実行:
DROP PLUGGABLE DATABASE ... INCLUDING DATAFILESで物理削除
背景と基礎:なぜSQLだけでは不十分なのか
RAC環境において、PDBは単なるコンテナではなく「クラスタ・リソース」として扱われます。
SQL文でPDBを作成した直後は、データディクショナリ上には存在しますが、Grid Infrastructure(GI)はその存在を認識していません。そのため、crsctlでの一括監視や、srvctlでの複数ノード一斉起動・停止を行うためには、明示的にリソースとして登録(srvctl add)する必要があります。21c/23ai/26aiでは、この連携が運用管理の標準(ベストプラクティス)となっています。
手順・実装:26ai RACでのPDB作成と登録
最新の26ai環境(23.26.1)での実機ログを追いながら、具体的な手順を確認します。
1. PDBの作成(クローン作成)
まず、既存のPDB(pdb01)をソースとして、SQL*Plusから新しいPDB(pdb02)を作成します。
[oracle@rac-26ai1 ~]$ sqlplus / as sysdba
SQL*Plus: Release 23.26.1.0.0 - Production on Fri Feb 13 20:57:52 2026
Version 23.26.1.0.0
Copyright (c) 1982, 2025, Oracle. All rights reserved.
Connected to:
Oracle AI Database 26ai Enterprise Edition Release 23.26.1.0.0 - Production
Version 23.26.1.0.0
SQL> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 PDB01 READ WRITE NO
SQL> create pluggable database pdb02 from pdb01; ★
Pluggable database created.
SQL> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 PDB01 READ WRITE NO
6 PDB02 MOUNTED
SQL> exit
Disconnected from Oracle AI Database 26ai Enterprise Edition Release 23.26.1.0.0 - Production
Version 23.26.1.0.0
[oracle@rac-26ai1 ~]$ /u01/app/23.0.0/grid/bin/crsctl stat res -w "TYPE = ora.pdb.type" -t
--------------------------------------------------------------------------------
Name Target State Server State details
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.orcl.pdb01.pdb
1 ONLINE ONLINE rac-26ai1 READ WRITE,STABLE
2 ONLINE ONLINE rac-26ai2 READ WRITE,STABLE
--------------------------------------------------------------------------------
※作成直後の pdb02 は MOUNTED 状態であり、この時点ではまだ crsctl の管理対象(リソース)には現れません。
2. srvctlによるリソース登録
次に、作成したPDBをクラスタウェア(GI)に認識させます。
[oracle@rac-26ai1 ~]$ srvctl add pdb -db orcl -pdb pdb02 ★
[oracle@rac-26ai1 ~]$ /u01/app/23.0.0/grid/bin/crsctl stat res -w "TYPE = ora.pdb.type" -t
--------------------------------------------------------------------------------
Name Target State Server State details
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.orcl.pdb01.pdb
1 ONLINE ONLINE rac-26ai1 READ WRITE,STABLE
2 ONLINE ONLINE rac-26ai2 READ WRITE,STABLE
ora.orcl.pdb02.pdb ★
1 OFFLINE OFFLINE STABLE
2 OFFLINE OFFLINE STABLE
--------------------------------------------------------------------------------
[oracle@rac-26ai1 ~]$ srvctl start pdb -db orcl -pdb pdb02
[oracle@rac-26ai1 ~]$ /u01/app/23.0.0/grid/bin/crsctl stat res -w "TYPE = ora.pdb.type" -t
--------------------------------------------------------------------------------
Name Target State Server State details
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.orcl.pdb01.pdb
1 ONLINE ONLINE rac-26ai1 READ WRITE,STABLE
2 ONLINE ONLINE rac-26ai2 READ WRITE,STABLE
ora.orcl.pdb02.pdb
1 ONLINE ONLINE rac-26ai1 READ WRITE,STABLE
2 ONLINE ONLINE rac-26ai2 READ WRITE,STABLE
--------------------------------------------------------------------------------
この操作により、ora.orcl.pdb02.pdb というリソースが生成され、crsctl でステータスが確認可能になります。
💰 【PR】Oracleエンジニアの市場価値、調べてみませんか?
Oracleのスキルは需要が高く、特定の資格や経験を持っていると年収が大幅にアップするケースがあります。まずはIT専門のエージェントで非公開求人をチェックしてみませんか?
実行例:26ai実機での削除とクリーンアップ
削除時は、GIリソースを先に削除してからSQLを実行するのが、不整合を防ぐための正しい「Oracle PDB 削除 手順」です。
1. リソースの停止と削除
GI管理から外すために、リソースを停止し、削除(解除)します。
[oracle@rac-26ai1 ~]$ srvctl stop pdb -db orcl -pdb pdb02
[oracle@rac-26ai1 ~]$ srvctl remove pdb -db orcl -pdb pdb02
Remove the PDB pdb02? (y/[n]) y
[oracle@rac-26ai1 ~]$ /u01/app/23.0.0/grid/bin/crsctl stat res -w "TYPE = ora.pdb.type" -t
--------------------------------------------------------------------------------
Name Target State Server State details
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.orcl.pdb01.pdb
1 ONLINE ONLINE rac-26ai1 READ WRITE,STABLE
2 ONLINE ONLINE rac-26ai2 READ WRITE,STABLE
--------------------------------------------------------------------------------
2. PDBの物理削除
最後に、SQL*Plusからデータベース本体とデータファイルを削除します。
[oracle@rac-26ai1 ~]$ sqlplus / as sysdba
SQL*Plus: Release 23.26.1.0.0 - Production on Fri Feb 13 21:09:07 2026
Version 23.26.1.0.0
Copyright (c) 1982, 2025, Oracle. All rights reserved.
Connected to:
Oracle AI Database 26ai Enterprise Edition Release 23.26.1.0.0 - Production
Version 23.26.1.0.0
SQL> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 PDB01 READ WRITE NO
6 PDB02 MOUNTED
SQL> drop pluggable database pdb02 including datafiles; ★
Pluggable database dropped.
SQL> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 PDB01 READ WRITE NO
トラブルシューティング:よくあるエラーと対処
| 状況 | 原因 | 対処方法 |
| PRCD-1120 / PRCD-1131 | 指定したPDB名がCDB内に存在しない | show pdbs で名前とスペルを再確認 |
CRS-4037 (*エラー) | crsctl でワイルドカードを使用 | -w "TYPE = ora.pdb.type" を使用して抽出 |
| リソースが登録できない | 既に同名のPDBリソースが存在する | srvctl config pdb で登録済みか確認 |
運用・セキュリティ上の注意点
管理の不整合リスク
SQLで作成した後に srvctl add pdb を忘れると、CDBを再起動した際にそのPDBが自動でオープンされません。RAC環境では「PDB作成とリソース登録はセット」という運用ルールを徹底してください。
影響範囲と戻し方
- 影響:
DROP...INCLUDING DATAFILESは取り消し不可です。必ず実行前にRMAN等で有効なバックアップがあることを確認してください。 - 戻し方: GIリソース(
srvctl remove)を誤って削除した場合は、再度srvctl add pdbを実行すればメタデータが再構成されます(データ自体は消えません)。
FAQ:よくある質問
Q1. DBCA(GUI)を使わずSQLで作るメリットは?
A1. シェルスクリプトによる構築の自動化や、既存PDBの高速なクローン(Snapshot Copy等)を利用する場合に非常に有効です。
Q2. 作成したPDBが一部ノードでしか起動しません。
A2. srvctl start pdb を実行してください。SQL文の ALTER PLUGGABLE DATABASE OPEN は実行したインスタンスにしか影響しません。
Q3. srvctl add pdb の実行権限は?
A3. 通常、データベースの所有者(oracle ユーザー)で実行します。Grid Infrastructure側の TYPE 操作を伴うため、環境変数が正しくセットされている必要があります。
まとめ:Oracle 26ai PDB運用
- 作成手順: SQL実行 →
srvctl add→srvctl startの3ステップ。 - 削除手順:
srvctl stop→srvctl remove→ SQL実行(DROP)の3ステップ。 - 状態確認:
crsctl stat res -w "TYPE = ora.pdb.type" -tで一括監視が可能。
[参考]
データベース・インスタンスおよびクラスタ・データベースの管理
本記事は Oracle Database 26ai (23.26.1) を対象に解説します(19c等の他バージョンはリソースタイプ名が
ora.pluggable_database.typeとなる場合があります)。
💰 【PR】Oracleエンジニアの市場価値、調べてみませんか?
Oracleのスキルは需要が高く、特定の資格や経験を持っていると年収が大幅にアップするケースがあります。まずはIT専門のエージェントで非公開求人をチェックしてみませんか?



コメント