
Oracle Database 19cを、Oracle Linux7.7のOS起動時に自動起動するように設定した手順メモ
Oracle Linux7.7にOracle Database 19cをインストールした直後は、
自動起動する設定にはなっていないため、サーバー再起動後はOracleが停止状態です。
サーバーが起動すると同時に、Oracleも自動起動する設定にする方法を知りたいと考えていませんか?
あと、オラクルデータベースについてのおススメの勉強法があれば知りたい、と考えていませんか?
LinuxでOracleを自動起動する手順です。
Oracle Linux7.7での手順ですが、CentOS7.7でも同様にできると思います
本記事では、下記の内容を解説します。
この記事を書いている私は、某SIerに勤務しながら、入社当時から10年以上、オラクルデータベースを使ったシステムの開発に関わっていますので、記事の信頼性担保に繋がると思います。
- Oracle Database 19cを、Oracle Linux7.7のOS起動時に自動起動するように設定した手順メモ
- 実際にサーバーを一度、再起動してみてOracleが自動起動するか確認
- オラクルデータベースのおススメの勉強法の紹介
- Oracleのサービス化・自動起動の設定まとめ
手順① oratabファイルの設定変更
「/etc/oratab」ファイルの確認
cat /etc/oratab
[root@SV-PLUTO ~]# cat /etc/oratab # # This file is used by ORACLE utilities. It is created by root.sh # and updated by either Database Configuration Assistant while creating # a database or ASM Configuration Assistant while creating ASM instance. # A colon, ':', is used as the field terminator. A new line terminates # the entry. Lines beginning with a pound sign, '#', are comments. # # Entries are of the form: # $ORACLE_SID:$ORACLE_HOME:<N|Y>: # # The first and second fields are the system identifier and home # directory of the database respectively. The third field indicates # to the dbstart utility that the database should , "Y", or should not, # "N", be brought up at system boot time. # # Multiple entries with the same $ORACLE_SID are not allowed. # # ORCLCDB:/opt/oracle/product/19c/dbhome_1:N
「/etc/oratab」ファイルの修正
vi /etc/oratab
インスタンス「ORCLCDB」の末尾を「N」から「Y」に変更
ORCLCDB:/opt/oracle/product/19c/dbhome_1:Y
# # This file is used by ORACLE utilities. It is created by root.sh # and updated by either Database Configuration Assistant while creating # a database or ASM Configuration Assistant while creating ASM instance. # A colon, ':', is used as the field terminator. A new line terminates # the entry. Lines beginning with a pound sign, '#', are comments. # # Entries are of the form: # $ORACLE_SID:$ORACLE_HOME:<N|Y>: # # The first and second fields are the system identifier and home # directory of the database respectively. The third field indicates # to the dbstart utility that the database should , "Y", or should not, # "N", be brought up at system boot time. # # Multiple entries with the same $ORACLE_SID are not allowed. # # ORCLCDB:/opt/oracle/product/19c/dbhome_1:Y
手順② 環境変数を設定するファイルを作成
「/etc/sysconfig/env.oracledb」を作成して、下記を追記します。
vi /etc/sysconfig/env.oracledb
ORACLE_BASE=/opt/oracle ORACLE_HOME=$ORACLE_BASE/product/19c/dbhome_1 ORACLE_SID=ORCLCDB NLS_LANG=Japanese_Japan.AL32UTF8
手順③ Oracle Databaseのインスタンスを起動するためのsystemdユニットファイルを作成
「/etc/systemd/system/oracledb.service」を作成して、下記を追記します。
vi /etc/systemd/system/oracledb.service
[Unit] Description=Oracle Databaes Service After=network.target oraclelsnr.service [Service] Type=forking RemainAfterExit=yes TimeoutStopSec=5min EnvironmentFile=/etc/sysconfig/env.oracledb ExecStart=/opt/oracle/product/19c/dbhome_1/bin/dbstart /opt/oracle/product/19c/dbhome_1 ExecStop=/opt/oracle/product/19c/dbhome_1/bin/dbshut /opt/oracle/product/19c/dbhome_1 Restart=no User=oracle Group=oinstall KillMode=none [Install] WantedBy=multi-user.target
| 項目 | 値 | 説明 |
|---|---|---|
| Description | Oracle Databaes Service | ユニットの説明文 (Oracle Database のサービス名) |
| After | network.target | ユニット開始順序の定義 (ネットワークが開始された後に起動する) |
| Type | forking | ユニットプロセスの起動タイプ (forking だとユニットを起動するコマンドが終了しても子プロセスがメインプロセスになる) |
| RemainAfterExit | yes | yesに設定すると、全てのメインプロセスが終了してもサービスを active と見なす |
| TimeoutStopSec | 5min | サービス停止を待つ時間 (シャットダウン時のハングアップに備える) |
| EnvironmentFile | /etc/sysconfig/env.oracledb | 環境変数の設定ファイルを指定 ($ORACLE_BASE等の設定) |
| ExecStart | /opt/oracle/product/19c/dbhome_1/bin/dbstart /opt/oracle/product/19c/dbhome_1 | ユニットを起動するコマンド (引数の$ORACLE_HOMEを指定してListnerも起動させる) |
| ExecStop | /opt/oracle/product/19c/dbhome_1/bin/dbshut /opt/oracle/product/19c/dbhome_1 | ユニットを停止するコマンド (引数の$ORACLE_HOMEを指定してListnerも停止させる) |
| Restart | no | サービスプロセス停止時の再起動条件 (デフォルトはno) |
| User | oracle | コマンドを実行するユーザ (su - oracleとしてコマンド実行するため) |
| Group | oinstall | コマンドを実行するグループ (su - oracleとしてコマンド実行するため) |
| KollMode | none | noneにするとプロセス強制終了しない。ユニット停止時には停止コマンドのみ実行 |
| WantedBy | multi-user.target | 依存するユニットの一覧 (マルチユーザモードで使用するサービスとして定義) |
手順④ サービスの有効化
作成したユニットファイルの反映
systemctl daemon-reload
[root@SV-PLUTO ~]# systemctl daemon-reload
サービスの有効化
systemctl enable oracledb
[root@SV-PLUTO ~]# systemctl enable oracledb Created symlink from /etc/systemd/system/multi-user.target.wants/oracledb.service to /etc/systemd/system/oracledb.service.
「multi-user.target.wants」にシンボリックリンクが作成されたことを確認
/etc/systemd/system/multi-user.target.wants
手順⑤ プラガブル・データベース「ORCLPDB1」を自動起動するように設定
Oracle 12c以降では、プラガブル・データベース機能があるため、 Oracle起動直後は、CDBだけが起動していて、PDBはまだOPENしていません。
下記コマンドを実行して、プラガブル・データベースをOPEN状態にしておきます。
[root@SV-PLUTO ~]# su - oracle 最終ログイン: 2020/01/11 (土) 16:19:44 JST pc-ganymedeから開始日時 pts/0 [oracle@SV-PLUTO ~]$ sqlplus / as sysdba SQL*Plus: Release 19.0.0.0.0 - Production on 土 1月 11 17:54:55 2020 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 に接続されました。
alter pluggable database ORCLPDB1 open;
alter pluggable database ORCLPDB1 save state;
SQL> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 ORCLPDB1 MOUNTED
SQL> alter pluggable database ORCLPDB1 open;
プラガブル・データベースが変更されました。
SQL> alter pluggable database ORCLPDB1 save state;
プラガブル・データベースが変更されました。
SQL> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 ORCLPDB1 READ WRITE NO
SQL>
実際にサーバーを一度、再起動してみてOracleが自動起動するか確認
サーバー再起動
[root@SV-PLUTO ~]# reboot
再起動後のサービスのステータス確認
systemctl -l status oracledb
[root@SV-PLUTO ~]# systemctl -l status oracledb ● oracledb.service - Oracle Databaes Service Loaded: loaded (/etc/systemd/system/oracledb.service; enabled; vendor preset: disabled) Active: active (running) since 土 2020-01-11 18:48:32 JST; 28s ago Process: 1370 ExecStart=/opt/oracle/product/19c/dbhome_1/bin/dbstart /opt/oracle/product/19c/dbhome_1 (code=exited, status=0/SUCCESS) CGroup: /system.slice/oracledb.service tq1464 /opt/oracle/product/19c/dbhome_1/bin/tnslsnr LISTENER -inherit tq2055 ora_pmon_ORCLCDB tq2058 ora_clmn_ORCLCDB tq2060 ora_psp0_ORCLCDB tq2062 ora_vktm_ORCLCDB tq2066 ora_gen0_ORCLCDB tq2068 ora_mman_ORCLCDB tq2072 ora_gen1_ORCLCDB tq2075 ora_diag_ORCLCDB tq2077 ora_ofsd_ORCLCDB tq2080 ora_dbrm_ORCLCDB tq2082 ora_vkrm_ORCLCDB tq2084 ora_svcb_ORCLCDB tq2086 ora_pman_ORCLCDB tq2088 ora_dia0_ORCLCDB tq2090 ora_dbw0_ORCLCDB tq2092 ora_lgwr_ORCLCDB tq2094 ora_ckpt_ORCLCDB tq2096 ora_smon_ORCLCDB tq2098 ora_smco_ORCLCDB tq2100 ora_w000_ORCLCDB tq2102 ora_reco_ORCLCDB tq2104 ora_w001_ORCLCDB tq2106 ora_lreg_ORCLCDB tq2108 ora_pxmn_ORCLCDB tq2112 ora_mmon_ORCLCDB tq2114 ora_mmnl_ORCLCDB tq2116 ora_d000_ORCLCDB tq2118 ora_s000_ORCLCDB tq2120 ora_tmon_ORCLCDB tq2128 ora_m000_ORCLCDB tq2132 ora_tt00_ORCLCDB tq2134 ora_tt01_ORCLCDB tq2136 ora_tt02_ORCLCDB tq2139 ora_aqpc_ORCLCDB tq2141 ora_w002_ORCLCDB tq2146 ora_p000_ORCLCDB tq2148 ora_p001_ORCLCDB tq2294 ora_w003_ORCLCDB tq2296 ora_cjq0_ORCLCDB tq2370 ora_s001_ORCLCDB tq2383 ora_m001_ORCLCDB tq2385 ora_m002_ORCLCDB tq2406 ora_w004_ORCLCDB tq2412 ora_m003_ORCLCDB tq2419 ora_qm02_ORCLCDB tq2421 ora_q001_ORCLCDB tq2423 ora_qm03_ORCLCDB tq2425 ora_q003_ORCLCDB tq2427 ora_q004_ORCLCDB mq2429 ora_q005_ORCLCDB 1月 11 18:48:13 SV-PLUTO systemd[1]: Starting Oracle Databaes Service... 1月 11 18:48:13 SV-PLUTO dbstart[1370]: Processing Database instance "ORCLCDB": log file /opt/oracle/product/19c/dbhome_1/rdbms/log/startup.log 1月 11 18:48:32 SV-PLUTO systemd[1]: Started Oracle Databaes Service.
停止時のログ確認
/opt/oracle/product/19c/dbhome_1/rdbms/log/shutdown.log
[root@SV-PLUTO ~]# cat /opt/oracle/product/19c/dbhome_1/rdbms/log/shutdown.log SQL*Plus: Release 19.0.0.0.0 - Production on 土 1月 11 18:45:52 2020 Version 19.3.0.0.0 Copyright (c) 1982, 2019, Oracle. All rights reserved. SQL> 接続されました。 SQL> データベースがクローズされました。 データベースがディスマウントされました。 ORACLEインスタンスがシャットダウンされました。 SQL> Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production Version 19.3.0.0.0との接続が切断されました。 Database instance "ORCLCDB" shut down.
/opt/oracle/diag/tnslsnr/SV-PLUTO/listener/trace/listener.log
2020-01-11T18:45:52.522856+09:00 リスニングしていません: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=SV-PLUTO)(PORT=1521))) リスニングしていません: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521))) リスニングしていません: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=SV-PLUTO)(PORT=5500))(Security=(my_wallet_directory=/opt/oracle/admin/ORCLCDB/xdb_wallet))(Presentation=HTTP)(Session=RAW)) Listener completed notification to CRS on stop 11-1月 -2020 18:45:52 * (CONNECT_DATA=(CID=(PROGRAM=)(HOST=SV-PLUTO)(USER=oracle))(COMMAND=stop)(ARGUMENTS=64)(SERVICE=LISTENER)(VERSION=318767104)(CRS=ON)) * stop * 0
起動時のログ確認
/opt/oracle/product/19c/dbhome_1/rdbms/log/startup.log
[root@SV-PLUTO ~]# cat /opt/oracle/product/19c/dbhome_1/rdbms/log/startup.log /opt/oracle/product/19c/dbhome_1/bin/dbstart: Starting up database "ORCLCDB" 2020年 1月 11日 土曜日 18:48:13 JST SQL*Plus: Release 19.0.0.0.0 - Production on 土 1月 11 18:48:14 2020 Version 19.3.0.0.0 Copyright (c) 1982, 2019, Oracle. All rights reserved. SQL> アイドル・インスタンスに接続しました。 SQL> ORACLEインスタンスが起動しました。 Total System Global Area 1543500832 bytes Fixed Size 9135136 bytes Variable Size 973078528 bytes Database Buffers 553648128 bytes Redo Buffers 7639040 bytes データベースがマウントされました。 データベースがオープンされました。 SQL> Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production Version 19.3.0.0.0との接続が切断されました。 /opt/oracle/product/19c/dbhome_1/bin/dbstart: Database instance "ORCLCDB" warm started. [root@SV-PLUTO ~]#
/opt/oracle/diag/tnslsnr/SV-PLUTO/listener/trace/listener.log
2020-01-11T18:48:13.835651+09:00 LISTENER for Linux: Version 19.0.0.0.0 - Production Version 19.3.0.0.0 システム・パラメータ・ファイルは/opt/oracle/product/19c/dbhome_1/network/admin/listener.oraです。 ログ・メッセージを/opt/oracle/diag/tnslsnr/SV-PLUTO/listener/alert/log.xmlに書き込みました。 トレース情報を/opt/oracle/diag/tnslsnr/SV-PLUTO/listener/trace/ora_1464_140469423303744.trcに書き込みました。 トレース・レベルは現在0です。 pid=1464で起動しました リスニングしています: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=SV-PLUTO)(PORT=1521))) リスニングしています: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521))) Listener completed notification to CRS on start
参考にしたサイト
drinking-masa.cocolog-nifty.com
オラクルデータベースのおススメの勉強法の紹介
私は、某SIerに勤務しながら、入社以来10年以上、オラクルデータベースを使用したシステムに関わる仕事をしています。
オラクルデータベースについて、仕事場以外でも勉強をしたい、おススメの勉強法を知りたい、と考えている方のために、
①おすすめの書籍と、②おすすめのオンライン学習サイト、
を紹介します。
働きながら勉強するための、おススメの書籍とオンラインで学習できるサイトの紹介です
オラクルデータベースの勉強ができるおススメ書籍
朝の通勤時や帰宅時の電車の中や、社外打合せへの移動中などに勉強するなら、やはり書籍が一番だと思います。
Oracleの基本 ~データベース入門から設計/運用の初歩まで
技術エキスパートとして認定されたOracle ACEの渡部亮太さんの書かれた本です。
https://twitter.com/wrcsus4twitter.com
本書では、Oracle初心者/新人エンジニアが押さえておくべき知識とスキルを、現場で活躍するOracleエンジニアたちが、わかりやすく丁寧に解説。
Oracleの使い方はもちろん、データベースの基礎知識から、データ操作のためのSQL、テーブル設計、データベース運用/管理の基礎までしっかり押さえ、実務で使える入門スキルを身につけられます。
Oracleを学びたいすべての人に最適な入門書です。
![]() | Oracleの基本 ~データベース入門から設計/運用の初歩まで |
プロとしてのOracleアーキテクチャ入門【第2版】
もう1冊、こちらもOracle ACEの渡部亮太さんの書かれた本です。
本書は、Oracle Databaseのアーキテクチャ(内部構成)について解説した入門書です。 本書の内容を理解することで「Oracleの動作の仕組み」を本質的に理解することができます。 これからOracleを使用する初心者の方から、実際にシステムの開発や運用管理を行っている DBエンジニアやシステムエンジニアの方を対象としています。
![]() | プロとしてのOracleアーキテクチャ入門【第2版】(12c、11g、10g 対応) 図解と実例解説で学ぶ、データベースの仕組み (Oracle現場主義) |
オラクルデータベースの勉強ができるオンライン学習サイト
iStudy
オラクルのeラーニングサイトといえば、「iStudy」です。
オラクル関連のいろいろなコースが用意されています。
TOP | eラーニング、SLAP(オンデマンド学習)、LMS(学習管理システム)、高度IT人材、DX/UIUX推進ならKushim


Oracleのサービス化・自動起動の設定まとめ
- サービス化のためsystemdユニットファイルを作成
- サービスを有効化
以上、読んでいただきありがとうございました。

