RHEL 8にRPM Packageを使用してOracle Database 19cをインストールしました。
今回は便利そうなスクリプトを使って新規にCDB,PDBを作成してみたいと思います。
それは最初にCDB(ORCLCDB),PDB(ORCLPDB1)を作成した/etc/init.d/oracledb_ORCLCDB-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登録
試しに作成するのはCDB(ROOTCDB),PDB(ROOTPDB1)とします。
- oracledb_ORCLCDB-19cをコピー
- 編集
- パラメータファイルを作成
- スクリプトの実行
- DB再起動
- リスナーの確認
- ORCLCDBに接続
- ROOTCDBに接続
- 自動起動の設定
- 関連ファイル
ファイル名はoracledb_ROOTCDB-19cとします。
1 2 |
[root@rhel8 ~]# cd /etc/init.d/ [root@rhel8 init.d]# cp oracledb_ORCLCDB-19c oracledb_ROOTCDB-19c |
oracledb_ROOTCDB-19cを編集します。
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 40 41 42 43 44 45 46 47 48 |
[root@rhel8 init.d]# vi oracledb_ROOTCDB-19c [root@rhel8 init.d]# diff -c oracledb_ORCLCDB-19c oracledb_ROOTCDB-19c *** oracledb_ORCLCDB-19c 2019-04-18 16:22:24.000000000 +0900 --- oracledb_ROOTCDB-19c 2022-01-17 21:06:27.593845867 +0900 *************** *** 3,10 **** # chkconfig: 2345 80 05 # Description: This script is responsible for taking care of configuring the Oracle Database and its associated services. # ! # processname: oracledb_ORCLCDB-19c ! # Red Hat or SuSE config: /etc/sysconfig/oracledb_ORCLCDB-19c # # Set path if path not set --- 3,10 ---- # chkconfig: 2345 80 05 # Description: This script is responsible for taking care of configuring the Oracle Database and its associated services. # ! # processname: oracledb_ROOTCDB-19c ! # Red Hat or SuSE config: /etc/sysconfig/oracledb_ROOTCDB-19c # # Set path if path not set *************** *** 24,34 **** export ORACLE_HOME=/opt/oracle/product/19c/dbhome_1 export ORACLE_VERSION=19c ! export ORACLE_SID=ORCLCDB export TEMPLATE_NAME=General_Purpose.dbc export CHARSET=AL32UTF8 ! export PDB_NAME=ORCLPDB1 ! export LISTENER_NAME=LISTENER export NUMBER_OF_PDBS=1 export CREATE_AS_CDB=true --- 24,34 ---- export ORACLE_HOME=/opt/oracle/product/19c/dbhome_1 export ORACLE_VERSION=19c ! export ORACLE_SID=ROOTCDB export TEMPLATE_NAME=General_Purpose.dbc export CHARSET=AL32UTF8 ! export PDB_NAME=ROOTPDB1 ! export LISTENER_NAME=LISTENER1 export NUMBER_OF_PDBS=1 export CREATE_AS_CDB=true |
これもracledb_ORCLCDB-19c.confを流用します。ポートは1621,5600としました。
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 |
[root@rhel8 init.d]# cd /etc/sysconfig/ [root@rhel8 sysconfig]# cp oracledb_ORCLCDB-19c.conf oracledb_ROOTCDB-19c.conf [root@rhel8 sysconfig]# vi oracledb_ROOTCDB-19c.conf [root@rhel8 sysconfig]# diff -c oracledb_ORCLCDB-19c.conf oracledb_ROOTCDB-19c.conf *** oracledb_ORCLCDB-19c.conf 2019-04-18 16:22:24.000000000 +0900 --- oracledb_ROOTCDB-19c.conf 2022-01-17 21:04:59.916523163 +0900 *************** *** 4,13 **** #Oracle data location. # LISTENER_PORT: Database listener ! LISTENER_PORT=1521 # ORACLE_DATA_LOCATION: Database oradata location ORACLE_DATA_LOCATION=/opt/oracle/oradata # EM_EXPRESS_PORT: Oracle EM Express listener ! EM_EXPRESS_PORT=5500 --- 4,13 ---- #Oracle data location. # LISTENER_PORT: Database listener ! LISTENER_PORT=1621 # ORACLE_DATA_LOCATION: Database oradata location ORACLE_DATA_LOCATION=/opt/oracle/oradata # EM_EXPRESS_PORT: Oracle EM Express listener ! EM_EXPRESS_PORT=5600 |
oracledb_ROOTCDB-19cを実行してDBを作成します。エラーも無くて終了しました。
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 |
[root@rhel8 ~]# /etc/init.d/oracledb_ROOTCDB-19c configure Configuring Oracle Database ROOTCDB. DB操作の準備 8%完了 データベース・ファイルのコピー中 31%完了 Oracleインスタンスの作成および起動中 32%完了 36%完了 40%完了 43%完了 46%完了 データベース作成の完了 51%完了 54%完了 プラガブル・データベースの作成 58%完了 77%完了 構成後アクションの実行 100%完了 データベースの作成が完了しました。詳細は、次の場所にあるログ・ファイルを参照してください: /opt/oracle/cfgtoollogs/dbca/ROOTCDB。 データベース情報: グローバル・データベース名:ROOTCDB システム識別子(SID):ROOTCDB 詳細はログ・ファイル"/opt/oracle/cfgtoollogs/dbca/ROOTCDB/ROOTCDB.log"を参照してください。 Database configuration completed successfully. The passwords were auto generated, you must change them by connecting to the database using 'sqlplus / as sysdba' as the oracle user. |
念のために再起動してみました。大丈夫そうです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
[root@rhel8 ~]# /etc/init.d/oracledb_ROOTCDB-19c stop Shutting down Oracle Database instance ROOTCDB. Oracle Database instance ROOTCDB shut down. Stopping Oracle Net Listener. Oracle Net Listener stopped. [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. [root@rhel8 ~]# /etc/init.d/oracledb_ROOTCDB-19c start Starting Oracle Net Listener. Oracle Net Listener started. Starting Oracle Database instance ROOTCDB. Oracle Database instance ROOTCDB started. |
LISTENER、LISTENER1とも動作していました。
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 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
[oracle@rhel8 ~]$ lsnrctl status LISTENER (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=rhel8)(PORT=1521)))に接続中 リスナーのステータス ------------------------ 別名 LISTENER バージョン TNSLSNR for Linux: Version 19.0.0.0.0 - Production 開始日 17-1月 -2022 21:38:05 稼働時間 0 日 0 時間 0 分 22 秒 トレース・レベル 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 ~]$ lsnrctl status LISTENER1 LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 17-1月 -2022 21:39:01 Copyright (c) 1991, 2019, Oracle. All rights reserved. (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=rhel8)(PORT=1621)))に接続中 リスナーのステータス ------------------------ 別名 LISTENER1 バージョン TNSLSNR for Linux: Version 19.0.0.0.0 - Production 開始日 17-1月 -2022 21:38:43 稼働時間 0 日 0 時間 0 分 17 秒 トレース・レベル off セキュリティ ON: Local OS Authentication SNMP OFF パラメータ・ファイル /opt/oracle/product/19c/dbhome_1/network/admin/listener.ora ログ・ファイル /opt/oracle/diag/tnslsnr/rhel8/listener1/alert/log.xml リスニング・エンドポイントのサマリー... (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=rhel8)(PORT=1621))) (DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=rhel8)(PORT=5600))(Security=(my_wallet_directory=/opt/oracle/product/19c/dbhome_1/admin/ROOTCDB/xdb_wallet))(Presentation=HTTP)(Session=RAW)) サービスのサマリー... サービス"ROOTCDB"には、1件のインスタンスがあります。 インスタンス"ROOTCDB"、状態READYには、このサービスに対する1件のハンドラがあります... サービス"ROOTCDBXDB"には、1件のインスタンスがあります。 インスタンス"ROOTCDB"、状態READYには、このサービスに対する1件のハンドラがあります... サービス"d5c72d4261a5183ee0531a0aa8c0401c"には、1件のインスタンスがあります。 インスタンス"ROOTCDB"、状態READYには、このサービスに対する1件のハンドラがあります... サービス"rootpdb1"には、1件のインスタンスがあります。 インスタンス"ROOTCDB"、状態READYには、このサービスに対する1件のハンドラがあります... コマンドは正常に終了しました。 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
[oracle@rhel8 ~]$ sqlplus / as sysdba SQL*Plus: Release 19.0.0.0.0 - Production on 火 1月 13 11:07:11 2022 Version 19.3.0.0.0 Copyright (c) 1982, 2019, Oracle. All rights reserved. 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 |
ORACLE_SIDをROOTCDBに変更してから接続してみました。直接CDBを指定して接続する方法が分かりません(^^;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
[oracle@rhel8 ~]$ . oraenv ORACLE_SID = [ORCLCDB] ? ROOTCDB The Oracle base remains unchanged with value /opt/oracle [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 ROOTPDB1 MOUNTED |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
[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 [root@rhel8 ~]# chkconfig --add oracledb_ROOTCDB-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 oracledb_ROOTCDB-19c 0:off 1:off 2:on 3:on 4:on 5:on 6:off |
スクリプトが追加してくれています。
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 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
[oracle@rhel8 ~]$ cat /opt/oracle/product/19c/dbhome_1/network/admin/listener.ora # listener.ora Network Configuration File: /opt/oracle/product/19c/dbhome_1/network/admin/listener.ora # Generated by Oracle configuration tools. LISTENER1 = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = rhel8)(PORT = 1621)) ) ) LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = rhel8)(PORT = 1521)) (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) ) ) [oracle@rhel8 ~]$ cat /opt/oracle/product/19c/dbhome_1/network/admin/sqlnet.ora # sqlnet.ora Network Configuration File: /opt/oracle/product/19c/dbhome_1/network/admin/sqlnet.ora # Generated by Oracle configuration tools. NAMES.DIRECTORY_PATH= (TNSNAMES, ONAMES, HOSTNAME) [oracle@rhel8 ~]$ cat /opt/oracle/product/19c/dbhome_1/network/admin/tnsnames.ora # tnsnames.ora Network Configuration File: /opt/oracle/product/19c/dbhome_1/network/admin/tnsnames.ora # Generated by Oracle configuration tools. ORCLCDB = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = rhel8)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = ORCLCDB) ) ) LISTENER_ORCLCDB = (ADDRESS = (PROTOCOL = TCP)(HOST = rhel8)(PORT = 1521)) ROOTCDB = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = rhel8)(PORT = 1621)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = ROOTCDB) ) ) LISTENER_ROOTCDB = (ADDRESS = (PROTOCOL = TCP)(HOST = rhel8)(PORT = 1621)) |
サーバ再起動後に確認したところ、それぞれのCDBが起動していて接続できました。