~PDBもリスナーもまとめて安全操作!~
💰 【PR】Oracleエンジニアの市場価値、調べてみませんか?
Oracleのスキルは需要が高く、特定の資格や経験を持っていると年収が大幅にアップするケースがあります。まずはIT専門のエージェントで非公開求人をチェックしてみませんか?
■ はじめに
Oracleの起動停止作業では、データベース本体の起動/停止だけでなく、リスナー(Listener)の操作も必要になります。特に以下のような環境では、スクリプトによる一括制御が作業のミス防止につながります。
- シングル構成の非CDB
- CDB構成(CDB$ROOT + 複数のPDB)
本記事では、それぞれの構成において、データベース本体とリスナーをまとめて起動・停止できるスクリプトを紹介します。
■ 想定構成
① シングル構成DB(非CDB)
└─ ORACLE_SID=v19
② マルチテナント構成(CDB)
└─ ORACLE_SID=V19M(CDB$ROOT)
├── PDB01
├── PDB02
└── PDB03
リスナー名:LISTENER
■ シングル構成用:起動スクリプト(DB+リスナー)
# ファイル名:start_single.sh
#!/bin/bash
export ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1
export PATH=$ORACLE_HOME/bin:$PATH
export ORACLE_SID=v19
# リスナー起動
lsnrctl start
# データベース起動
sqlplus / as sysdba <<EOF
STARTUP;
EXIT;
EOF
chmod +x start_single.sh
./start_single.sh
[oracle@v19single ~]$ vi start_single.sh ★スクリプト作成
[oracle@v19single ~]$ cat start_single.sh
#!/bin/bash
export ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1
export PATH=$ORACLE_HOME/bin:$PATH
export ORACLE_SID=v19
# リスナー起動
lsnrctl start
# データベース起動
sqlplus / as sysdba <<EOF
STARTUP;
EXIT;
EOF
[oracle@v19single ~]$ chmod +x start_single.sh ★実行権限付与
[oracle@v19single ~]$ ./start_single.sh
LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 07-6月 -2025 10:53:25
Copyright (c) 1991, 2023, Oracle. All rights reserved.
/u01/app/oracle/product/19.0.0/dbhome_1/bin/tnslsnrを起動しています。お待ちください...
TNSLSNR for Linux: Version 19.0.0.0.0 - Production
ログ・メッセージを/u01/app/oracle/diag/tnslsnr/v19single/listener/alert/log.xmlに書き込みました。
リスニングしています: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=v19single)(PORT=1521)))
(ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))に接続中
リスナーのステータス
------------------------
別名 LISTENER
バージョン TNSLSNR for Linux: Version 19.0.0.0.0 - Production
開始日 07-6月 -2025 10:53:25
稼働時間 0 日 0 時間 0 分 0 秒
トレース・レベル off
セキュリティ ON: Local OS Authentication
SNMP OFF
ログ・ファイル /u01/app/oracle/diag/tnslsnr/v19single/listener/alert/log.xml
リスニング・エンドポイントのサマリー...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=v19single)(PORT=1521)))
リスナーはサービスをサポートしていません。
コマンドは正常に終了しました。
SQL*Plus: Release 19.0.0.0.0 - Production on 土 6月 7 10:53:26 2025
Version 19.21.0.0.0
Copyright (c) 1982, 2022, Oracle. All rights reserved.
アイドル・インスタンスに接続しました。
SQL> ORACLEインスタンスが起動しました。
Total System Global Area 1543500120 bytes
Fixed Size 8925528 bytes
Variable Size 922746880 bytes
Database Buffers 603979776 bytes
Redo Buffers 7847936 bytes
データベースがマウントされました。
データベースがオープンされました。 ★起動した
SQL> Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.21.0.0.0との接続が切断されました。
[oracle@v19single ~]$
■ シングル構成用:停止スクリプト(DB+リスナー)
# ファイル名:stop_single.sh
#!/bin/bash
export ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1
export PATH=$ORACLE_HOME/bin:$PATH
export ORACLE_SID=v19
# データベース停止
sqlplus / as sysdba <<EOF
SHUTDOWN IMMEDIATE;
EXIT;
EOF
# リスナー停止
lsnrctl stop
chmod +x stop_single.sh
./stop_single.sh
[oracle@v19single ~]$ vi stop_single.sh ★スクリプト作成
[oracle@v19single ~]$ cat stop_single.sh
#!/bin/bash
export ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1
export PATH=$ORACLE_HOME/bin:$PATH
export ORACLE_SID=v19
# データベース停止
sqlplus / as sysdba <<EOF
SHUTDOWN IMMEDIATE;
EXIT;
EOF
# リスナー停止
lsnrctl stop
[oracle@v19single ~]$ chmod +x stop_single.sh ★実行権限付与
[oracle@v19single ~]$ ./stop_single.sh
SQL*Plus: Release 19.0.0.0.0 - Production on 土 6月 7 10:58:46 2025
Version 19.21.0.0.0
Copyright (c) 1982, 2022, Oracle. All rights reserved.
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.21.0.0.0
に接続されました。
SQL> データベースがクローズされました。
データベースがディスマウントされました。
ORACLEインスタンスがシャットダウンされました。
SQL> Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.21.0.0.0との接続が切断されました。
LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 07-6月 -2025 10:59:03
Copyright (c) 1991, 2023, Oracle. All rights reserved.
(ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))に接続中
コマンドは正常に終了しました。 ★停止した
[oracle@v19single ~]$
💰 【PR】Oracleエンジニアの市場価値、調べてみませんか?
Oracleのスキルは需要が高く、特定の資格や経験を持っていると年収が大幅にアップするケースがあります。まずはIT専門のエージェントで非公開求人をチェックしてみませんか?
■ CDB構成用:起動スクリプト(CDB+PDB+リスナー)
# ファイル名:start_cdb.sh
#!/bin/bash
export ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1
export PATH=$ORACLE_HOME/bin:$PATH
export ORACLE_SID=V19M
# リスナー起動
lsnrctl start
# CDB+PDB起動+PDB状態確認
sqlplus / as sysdba <<EOF
STARTUP;
ALTER PLUGGABLE DATABASE ALL OPEN;
SHOW PDBS;
EXIT;
EOF
chmod +x start_cdb.sh
./start_cdb.sh
[oracle@v19single ~]$ vi start_cdb.sh ★スクリプト作成
[oracle@v19single ~]$ cat start_cdb.sh
#!/bin/bash
export ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1
export PATH=$ORACLE_HOME/bin:$PATH
export ORACLE_SID=V19M
# リスナー起動
lsnrctl start
# CDB+PDB起動+PDB状態確認
sqlplus / as sysdba <<EOF
STARTUP;
ALTER PLUGGABLE DATABASE ALL OPEN;
SHOW PDBS;
EXIT;
EOF
[oracle@v19single ~]$ chmod +x start_cdb.sh ★実行権限付与
[oracle@v19single ~]$ ./start_cdb.sh
LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 07-6月 -2025 11:05:32
Copyright (c) 1991, 2023, Oracle. All rights reserved.
/u01/app/oracle/product/19.0.0/dbhome_1/bin/tnslsnrを起動しています。お待ちください...
TNSLSNR for Linux: Version 19.0.0.0.0 - Production
ログ・メッセージを/u01/app/oracle/diag/tnslsnr/v19single/listener/alert/log.xmlに書き込みました。
リスニングしています: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=v19single)(PORT=1521)))
(ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))に接続中
リスナーのステータス
------------------------
別名 LISTENER
バージョン TNSLSNR for Linux: Version 19.0.0.0.0 - Production
開始日 07-6月 -2025 11:05:32
稼働時間 0 日 0 時間 0 分 0 秒
トレース・レベル off
セキュリティ ON: Local OS Authentication
SNMP OFF
ログ・ファイル /u01/app/oracle/diag/tnslsnr/v19single/listener/alert/log.xml
リスニング・エンドポイントのサマリー...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=v19single)(PORT=1521)))
リスナーはサービスをサポートしていません。
コマンドは正常に終了しました。
SQL*Plus: Release 19.0.0.0.0 - Production on 土 6月 7 11:05:33 2025
Version 19.21.0.0.0
Copyright (c) 1982, 2022, Oracle. All rights reserved.
アイドル・インスタンスに接続しました。
SQL> ORACLEインスタンスが起動しました。
Total System Global Area 1610609864 bytes
Fixed Size 9163976 bytes
Variable Size 419430400 bytes
Database Buffers 1174405120 bytes
Redo Buffers 7610368 bytes
データベースがマウントされました。
データベースがオープンされました。
SQL>
プラガブル・データベースが変更されました。
SQL>
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 PDB01 READ WRITE NO
4 PDB02 READ WRITE NO
5 PDB03 READ WRITE NO ★起動した
SQL> Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.21.0.0.0との接続が切断されました。
[oracle@v19single ~]$
■ CDB構成用:停止スクリプト(CDB+PDB+リスナー)
# ファイル名:stop_cdb.sh
#!/bin/bash
export ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1
export PATH=$ORACLE_HOME/bin:$PATH
export ORACLE_SID=V19M
# CDB+PDB停止
sqlplus / as sysdba <<EOF
ALTER PLUGGABLE DATABASE ALL CLOSE IMMEDIATE;
SHUTDOWN IMMEDIATE;
EXIT;
EOF
# リスナー停止
lsnrctl stop
chmod +x stop_cdb.sh
./stop_cdb.sh
[oracle@v19single ~]$ vi stop_cdb.sh ★スクリプト作成
[oracle@v19single ~]$ cat stop_cdb.sh
#!/bin/bash
export ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1
export PATH=$ORACLE_HOME/bin:$PATH
export ORACLE_SID=V19M
# CDB+PDB停止
sqlplus / as sysdba <<EOF
ALTER PLUGGABLE DATABASE ALL CLOSE IMMEDIATE;
SHUTDOWN IMMEDIATE;
EXIT;
EOF
# リスナー停止
lsnrctl stop
[oracle@v19single ~]$ chmod +x stop_cdb.sh ★実行権限付与
[oracle@v19single ~]$ ./stop_cdb.sh
SQL*Plus: Release 19.0.0.0.0 - Production on 土 6月 7 11:09:52 2025
Version 19.21.0.0.0
Copyright (c) 1982, 2022, Oracle. All rights reserved.
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.21.0.0.0
に接続されました。
SQL>
プラガブル・データベースが変更されました。
SQL> データベースがクローズされました。
データベースがディスマウントされました。
ORACLEインスタンスがシャットダウンされました。
SQL> Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.21.0.0.0との接続が切断されました。
LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 07-6月 -2025 11:10:21
Copyright (c) 1991, 2023, Oracle. All rights reserved.
(ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))に接続中
コマンドは正常に終了しました。 ★停止した
[oracle@v19single ~]$
■ ポイント解説
| 操作 | シングル構成 | CDB構成(CDB+PDB) |
|---|---|---|
| 起動 | lsnrctl start → STARTUP | lsnrctl start → STARTUP → ALTER PLUGGABLE DATABASE ALL OPEN |
| 停止 | SHUTDOWN IMMEDIATE → lsnrctl stop | ALTER PLUGGABLE DATABASE ALL CLOSE → SHUTDOWN IMMEDIATE → lsnrctl stop |
- リスナーの起動はDBより先に、停止はDBの後に行うのが基本
- CDB構成では PDBのOPEN/CLOSEが必須
■ まとめ
| 構成 | 起動スクリプト | 停止スクリプト |
|---|---|---|
| 非CDB(v19) | start_single.sh | stop_single.sh |
| CDB+PDB(V19M) | start_cdb.sh | stop_cdb.sh |
これらのスクリプトを用いることで、リスナー含めた起動・停止をミスなく効率的に実施することが可能です。
[参考]
4 CDBの作成および構成




コメント