Oracle Database 21c以降、srvctlコマンドでPDBを直接制御可能になりました。従来はSQL文が主流でしたが、本記事では「Oracle srvctl pdb」の実機ログを基に、26ai(AI Database)でも定着した「Oracle PDB 起動 停止」コマンドの手順を解説。CRSリソース管理により、RAC環境の運用が劇的に進化します。
💰 【PR】Oracleエンジニアの市場価値、調べてみませんか?
Oracleのスキルは需要が高く、特定の資格や経験を持っていると年収が大幅にアップするケースがあります。まずはIT専門のエージェントで非公開求人をチェックしてみませんか?
結論:PDB管理の「最短手順チェックリスト」
強調スニペット対応の、実務で即座に使える操作リスト(やることリスト)です。
- 状態確認:
/u01/app/23.0.0/grid/bin/crsctl stat res ora.<db>.<pdb>.pdb -t - PDBの停止:
srvctl stop pdb -db <db> -pdb <pdb> - PDBの起動:
srvctl start pdb -db <db> -pdb <pdb> - 詳細確認: SQL*Plusで
show pdbsを実行し同期状態を確認
背景と基礎:なぜ21cから「srvctl」管理が標準なのか
「データベース・インスタンスおよびクラスタ・データベースの管理」において、21cを境にPDBはGrid Infrastructure(GI)が直接監視・制御する「独立したクラスタリソース」へと格上げされました。
| 項目 | 19c以前の標準 | 21c / 23ai / 26ai の標準 |
| 制御コマンド | SQL文 (ALTER PLUGGABLE...) | srvctl start/stop pdb |
| CRSリソース化 | なし(サービスのみ登録) | あり (ora.<db>.<pdb>.pdb) |
| 管理単位 | CDBまたはサービス単位 | PDB単位での直接制御 |
19cまではCDB起動時にPDBを自動オープンさせるために SAVE STATE 句を利用していましたが、21c以降はGIがリソース状態を維持するため、よりOS親和性の高い、堅牢な運用が可能です。
手順・実装:PDBの状態確認と制御フロー
最新の26ai環境(バージョン 23.26.1)での実機ログに基づき、一連の挙動を確認します。
1. 前提条件の確認
- 対象OS: Oracle Linux 8/9 (RAC構成)
- バージョン: Oracle AI Database 26ai (実機: 23.26.1.0.0)
- 権限:
oracleユーザー(GI/DB環境変数が設定済みであること) - 構成: CDB名
orcl/ PDB名pdb01
2. CRSリソースのステータス確認
21c以降、PDBを作成すると自動的にCRSリソースが作成されます。まずは現在の状態を確認します。
# グリッド・ホームのcrsctlを使用してPDBの状態を一括確認
/u01/app/23.0.0/grid/bin/crsctl stat res ora.orcl.pdb01.pdb -t
実行例:26ai実機での検証ログ(全行程)
状況A:初期状態(ONLINE)
PDBが全ノードで READ WRITE かつ ONLINE である状態です。ステータス詳細に STABLE と表示されます。
[oracle@rac-26ai1 ~]$ /u01/app/23.0.0/grid/bin/crsctl stat res ora.orcl.pdb01.pdb -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
--------------------------------------------------------------------------------
[oracle@rac-26ai1 ~]$ sqlplus / as sysdba
SQL*Plus: Release 23.26.1.0.0 - Production on Fri Feb 13 19:47:41 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
状況B:srvctlによるPDBの停止
srvctl stop pdb を発行します。SQL*Plus側で個別にコマンドを打つ必要はありません。
[oracle@rac-26ai1 ~]$ srvctl stop pdb -db orcl -pdb pdb01
[oracle@rac-26ai1 ~]$ /u01/app/23.0.0/grid/bin/crsctl stat res ora.orcl.pdb01.pdb -t
--------------------------------------------------------------------------------
Name Target State Server State details
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.orcl.pdb01.pdb
1 OFFLINE OFFLINE MOUNTED,STABLE
2 OFFLINE OFFLINE MOUNTED,STABLE
--------------------------------------------------------------------------------
SQL*Plusでの同期確認:
[oracle@rac-26ai1 ~]$ sqlplus / as sysdba
SQL*Plus: Release 23.26.1.0.0 - Production on Fri Feb 13 19:50: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 MOUNTED
💰 【PR】Oracleエンジニアの市場価値、調べてみませんか?
Oracleのスキルは需要が高く、特定の資格や経験を持っていると年収が大幅にアップするケースがあります。まずはIT専門のエージェントで非公開求人をチェックしてみませんか?
状況C:srvctlによるPDBの再起動
再び srvctl start pdb を実行して、クラスタ全体でオープンします。
[oracle@rac-26ai1 ~]$ srvctl start pdb -db orcl -pdb pdb01
[oracle@rac-26ai1 ~]$ /u01/app/23.0.0/grid/bin/crsctl stat res ora.orcl.pdb01.pdb -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
--------------------------------------------------------------------------------
[oracle@rac-26ai1 ~]$ sqlplus / as sysdba
SQL*Plus: Release 23.26.1.0.0 - Production on Fri Feb 13 19:52:28 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
トラブルシューティング:代表的なエラーと対処
| 状況 | 原因 | 対処方法 |
| PRCD-1131 / 1120 | 指定したPDBが存在しないかCDB停止 | srvctl status database でCDB稼働を確認 |
| CRS-2674 | リソースの停止に失敗 | セッション残留時は stop pdb -force を検討 |
| 不整合の発生 | 手動SQL操作による状態のズレ | srvctl stop してから再度 start して同期 |
運用・セキュリティ上の注意点
管理操作の統一(不整合の防止)
21c以降の環境では、管理操作を srvctl に統一してください。
- リスク: 手動のSQL文でPDBを閉じると、GIが「異常停止」と判断し、自動的に再起動(オープン)を試みることがあります。
- メリット: RACの全ノードで一斉にPDBをオープン・クローズできるため、パッチ適用やバッチ処理時のオペレーションミスを激減できます。
FAQ:よくある質問
Q1. 21c以前のマニュアルには載っていないのですが?
A1. はい。srvctl start/stop pdb は Oracle Database 21c から導入されたコマンドです。19c以前のsrvctlには pdb オブジェクトが存在しないため実行できません。
Q2. 特定のノードだけPDBをオープンできますか?
A2. はい。-node <node_name> オプションを付加することで、指定したノードのみでの起動・停止制御が可能です。
Q3. シングル構成(非RAC)でも利用可能ですか?
A3. はい。Oracle Restart(スタンドアロン・サーバー用GI)が構成されていれば、21c以降で同様の管理が可能です。
まとめ
- 21c以降 は
srvctl start/stop pdbでPDBを直接一括制御できる。 - CRSリソース化 により、PDB単位での死活監視・自動復旧が標準となった。
- 26ai / 23ai 環境では、SQL文よりも
srvctlによる管理がベストプラクティスである。
本記事は Oracle Database 21c / 23ai / 26ai を対象に解説します(19c以前の環境では動作しません)。
💰 【PR】Oracleエンジニアの市場価値、調べてみませんか?
Oracleのスキルは需要が高く、特定の資格や経験を持っていると年収が大幅にアップするケースがあります。まずはIT専門のエージェントで非公開求人をチェックしてみませんか?



コメント