Oracle 26ai RAC PDB作成・削除の手順完全解説

26ai

Oracle 26ai RAC環境でPDBを運用するには、SQL実行だけでなくsrvctlでのリソース登録が鍵です。本記事では実機ログを交え、Oracle 26ai PDB 作成からOracle PDB 削除 手順までを詳しく解説。GI連携により、RAC構成でのPDB管理を自動化・堅牢化する方法がわかります。

💰 【PR】Oracleエンジニアの市場価値、調べてみませんか?

Oracleのスキルは需要が高く、特定の資格や経験を持っていると年収が大幅にアップするケースがあります。まずはIT専門のエージェントで非公開求人をチェックしてみませんか?

結論:PDB作成・削除の最短手順(Doリスト)

RAC構成において、整合性を保ちながらPDBを管理するための「やることリスト」です。

PDB作成時のステップ

  1. SQL実行: CREATE PLUGGABLE DATABASE ... でPDBを作成
  2. リソース登録: srvctl add pdb -db <CDB名> -pdb <PDB名> でGIに登録
  3. 起動: srvctl start pdb -db <CDB名> -pdb <PDB名> で全ノードオープン

PDB削除時のステップ

  1. 停止: srvctl stop pdb -db <CDB名> -pdb <PDB名> でクローズ
  2. リソース削除: srvctl remove pdb -db <CDB名> -pdb <PDB名> でGIから解除
  3. 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
--------------------------------------------------------------------------------

※作成直後の pdb02MOUNTED 状態であり、この時点ではまだ 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 addsrvctl start の3ステップ。
  • 削除手順: srvctl stopsrvctl 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専門のエージェントで非公開求人をチェックしてみませんか?

コメント

タイトルとURLをコピーしました