先日、RHEL8にRPMパッケージからOracle Database 19cをインストールしました。
動作確認後にサーバを再起動するとリスナーが起動していませんでした。
環境
・Red Hat Enterprise Linux release 8.5 (Ootpa)
・Kernel 4.18.0-348.7.1.el8_5.x86_64
・oracle-database-preinstall-19c-1.0-3.el7.x86_64.rpm
・oracle-database-ee-19c-1.0-1.x86_64.rpm
・開発環境、GNOME環境、日本語入力インストール
・Subscription登録
- oracleユーザでログイン
- sqlplusで接続
- 手動起動
- sqlplusで接続
- PDBのオープン
- Databaseの手動停止
- /etc/init.d/oracledb_ORCLCDB-19cスクリプトで起動
- PDBをオープンしてセーブ
- 確認
- /etc/init.d/oracledb_ORCLCDB-19cの自動実行
1 |
[root@rhel8 ~]# su - oracle |
1 2 3 4 5 6 7 8 9 10 11 |
[oracle@rhel8 ~]$ sqlplus / as sysdba SQL*Plus: Release 19.0.0.0.0 - Production on 月 1月 15 5:01:08 2022 Version 19.3.0.0.0 Copyright (c) 1982, 2019, Oracle. All rights reserved. アイドル・インスタンスに接続しました。 SQL> quit 切断しました。 |
あれ!? リスナーが起動していませんでした。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
[oracle@rhel8 ~]$ lsnrctl status LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 15-1月 -2022 5:26:57 Copyright (c) 1991, 2019, Oracle. All rights reserved. (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=rhel8)(PORT=1521)))に接続中 TNS-12541: TNS: リスナーがありません。 TNS-12560: TNS: プロトコル・アダプタ・エラー TNS-00511: リスナーがありません。 Linux Error: 111: Connection refused (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))に接続中 TNS-12541: TNS: リスナーがありません。 TNS-12560: TNS: プロトコル・アダプタ・エラー TNS-00511: リスナーがありません。 Linux Error: 2: No such file or directory |
手動でDatabaseを起動してみます。
1 2 3 4 |
[oracle@rhel8 ~]$ dbstart Since ORACLE_HOME is not set, cannot auto-start Oracle Net Listener. Usage: /opt/oracle/product/19c/dbhome_1/bin/dbstart ORACLE_HOME Processing Database instance "ORCLCDB": log file /opt/oracle/product/19c/dbhome_1/rdbms/log/startup.log |
ORACLE_HOMEの指定が必要なのか。/etc/oratabで[Y]にしたけど関係ないのかな?
取り合えずORACLE_HOMEを指定して起動しました。
1 2 |
[oracle@rhel8 ~]$ dbstart $ORACLE_HOME Processing Database instance "ORCLCDB": log file /opt/oracle/product/19c/dbhome_1/rdbms/log/startup.log |
プラガブル・データベース(PDB)のORCLPDB1はマウントされただけでした。
1 2 3 4 5 6 7 8 9 10 11 |
[oracle@rhel8 ~]$ sqlplus / as sysdba Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production Version 19.3.0.0.0 に接続されました。 SQL> show pdbs CON_ID CON_NAME OPEN MODE RESTRICTED ---------- ------------------------------ ---------- ---------- 2 PDB$SEED READ ONLY NO 3 ORCLPDB1 MOUNTED SQL> |
セッションをORCLPDB1に切り替えます。
1 2 3 |
SQL> alter session set container=orclpdb1; セッションが変更されました。 |
ORCLPDB1をオープンします。
1 2 3 4 5 6 7 8 9 10 |
SQL> alter pluggable database orclpdb1 open; プラガブル・データベースが変更されました。 SQL> show pdbs CON_ID CON_NAME OPEN MODE RESTRICTED ---------- ------------------------------ ---------- ---------- 3 ORCLPDB1 READ WRITE NO SQL> |
dbshutコマンドで停止してみます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
[oracle@rhel8 ~]$ dbshut $ORACLE_HOME Processing Database instance "ORCLCDB": log file /opt/oracle/product/19c/dbhome_1/rdbms/log/shutdown.log [oracle@rhel8 ~]$ lsnrctl status (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=rhel8)(PORT=1521)))に接続中 TNS-12541: TNS: リスナーがありません。 TNS-12560: TNS: プロトコル・アダプタ・エラー TNS-00511: リスナーがありません。 Linux Error: 111: Connection refused (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))に接続中 TNS-12541: TNS: リスナーがありません。 TNS-12560: TNS: プロトコル・アダプタ・エラー TNS-00511: リスナーがありません。 Linux Error: 2: No such file or directory |
そもそも便利なスクリプトがあるのでこれを使えばいいのです。
このスクリプトはroot権限で実行します。root権限が無いとメッセージが表示されます。
1 2 |
[oracle@rhel8 ~]$ /etc/init.d/oracledb_ORCLCDB-19c You must be root user to run the configurations script. Login as root user and try again. |
取り合えずrootで。
1 2 3 4 5 6 7 8 |
[root@rhel8 ~]# /etc/init.d/oracledb_ORCLCDB-19c Usage: /etc/init.d/oracledb_ORCLCDB-19c {start|stop|restart|configure|delete} [root@rhel8 ~]# /etc/init.d/oracledb_ORCLCDB-19c start Starting Oracle Net Listener. Oracle Net Listener started. Starting Oracle Database instance ORCLCDB. Oracle Database instance ORCLCDB started. |
起動できたようです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
[oracle@rhel8 ~]$ lsnrctl status (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=rhel8)(PORT=1521)))に接続中 リスナーのステータス ------------------------ 別名 LISTENER バージョン TNSLSNR for Linux: Version 19.0.0.0.0 - Production 開始日 15-1月 -2022 5:49:34 稼働時間 0 日 0 時間 1 分 11 秒 トレース・レベル off セキュリティ ON: Local OS Authentication SNMP OFF パラメータ・ファイル /opt/oracle/product/19c/dbhome_1/network/admin/listener.ora ログ・ファイル /opt/oracle/diag/tnslsnr/rhel8/listener/alert/log.xml リスニング・エンドポイントのサマリー... (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=rhel8)(PORT=1521))) (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521))) (DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=rhel8)(PORT=5500))(Security=(my_wallet_directory=/opt/oracle/product/19c/dbhome_1/admin/ORCLCDB/xdb_wallet))(Presentation=HTTP)(Session=RAW)) サービスのサマリー... サービス"ORCLCDB"には、1件のインスタンスがあります。 インスタンス"ORCLCDB"、状態READYには、このサービスに対する1件のハンドラがあります... サービス"ORCLCDBXDB"には、1件のインスタンスがあります。 インスタンス"ORCLCDB"、状態READYには、このサービスに対する1件のハンドラがあります... サービス"d5c0ad0287ff1c8fe0531a0aa8c0dc0f"には、1件のインスタンスがあります。 インスタンス"ORCLCDB"、状態READYには、このサービスに対する1件のハンドラがあります... サービス"orclpdb1"には、1件のインスタンスがあります。 インスタンス"ORCLCDB"、状態READYには、このサービスに対する1件のハンドラがあります... コマンドは正常に終了しました。 [oracle@rhel8 ~]$ sqlplus / as sysdba Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production Version 19.3.0.0.0 に接続されました。 SQL> show pdbs CON_ID CON_NAME OPEN MODE RESTRICTED ---------- ------------------------------ ---------- ---------- 2 PDB$SEED READ ONLY NO 3 ORCLPDB1 MOUNTED SQL> |
自動起動するにはオープンした状態をセーブすればよさそうです。
Oracleプラガブル・データベースPDB【新規作成し接続するまでの手順】
https://souiunogaii.hatenablog.com/entry/Oracle-PDB
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
SQL> alter session set container=orclpdb1; セッションが変更されました。 SQL> alter pluggable database orclpdb1 open; プラガブル・データベースが変更されました。 SQL> show pdbs CON_ID CON_NAME OPEN MODE RESTRICTED ---------- ------------------------------ ---------- ---------- 3 ORCLPDB1 READ WRITE NO SQL> alter pluggable database orclpdb1 save state; プラガブル・データベースが変更されました。 |
再起動
1 2 3 4 5 6 7 8 9 10 11 |
[root@rhel8 ~]# /etc/init.d/oracledb_ORCLCDB-19c stop Shutting down Oracle Database instance ORCLCDB. Oracle Database instance ORCLCDB shut down. Stopping Oracle Net Listener. Oracle Net Listener stopped. [root@rhel8 ~]# /etc/init.d/oracledb_ORCLCDB-19c start Starting Oracle Net Listener. Oracle Net Listener started. Starting Oracle Database instance ORCLCDB. Oracle Database instance ORCLCDB started. |
オープンしていました。
1 2 3 4 5 6 7 8 9 10 11 |
[oracle@rhel8 ~]$ sqlplus / as sysdba Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production Version 19.3.0.0.0 に接続されました。 SQL> show pdbs CON_ID CON_NAME OPEN MODE RESTRICTED ---------- ------------------------------ ---------- ---------- 2 PDB$SEED READ ONLY NO 3 ORCLPDB1 READ WRITE NO SQL> |
oracledb_ORCLCDB-19cはinit.dにあるのでSysV起動スクリプトだろうから自動実行できるよね。
なるほど(^^;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
[root@rhel8 ~]# chkconfig --list 注記: この出力に含まれるのは SysV サービスのみです。ネイティブな systemd サービスは含まれません。SysV の設定データはネイティブな systemd 設定で上書きされる場合があります。 systemd サービスを一覧表示する場合は 'systemctl list-unit-files' を使用します。 特定のターゲットで有効になっているサービスを確認する場合は 'systemctl list-dependencies [target]'を使用します。 [root@rhel8 ~]# systemctl list-unit-files | grep oracle oracle-database-preinstall-19c-firstboot.service generated oracledb_ORCLCDB-19c.service generated [root@rhel8 ~]# systemctl enable oracledb_ORCLCDB-19c oracledb_ORCLCDB-19c.service is not a native service, redirecting to systemd-sysv-install. Executing: /usr/lib/systemd/systemd-sysv-install enable oracledb_ORCLCDB-19c [root@rhel8 ~]# /usr/lib/systemd/systemd-sysv-install enable oracledb_ORCLCDB-19c [root@rhel8 ~]# chkconfig --list 注記: この出力に含まれるのは SysV サービスのみです。ネイティブな systemd サービスは含まれません。SysV の設定データはネイティブな systemd 設定で上書きされる場合があります。 systemd サービスを一覧表示する場合は 'systemctl list-unit-files' を使用します。 特定のターゲットで有効になっているサービスを確認する場合は 'systemctl list-dependencies [target]'を使用します。 oracledb_ORCLCDB-19c 0:off 1:off 2:on 3:on 4:on 5:on 6:off |
REHL8再起動後に確認するとORCLPDB1がオープン状態でした。