以下の内容はhttps://souiunogaii.hatenablog.com/entry/Oracle19c-AutoStartより取得しました。


Oracle Database 19cをOS起動時に自動起動させる設定手順(Oracle Linux7.7)

※[PR]当ブログの記事の中にはプロモーションが含まれています。

Oracle Database 19cをOS起動時に自動起動させる設定手順

Oracle Database 19cを、Oracle Linux7.7のOS起動時に自動起動するように設定した手順メモ

Oracle Linux7.7にOracle Database 19cをインストールした直後は、
自動起動する設定にはなっていないため、サーバー再起動後はOracleが停止状態です。 サーバーが起動すると同時に、Oracle自動起動する設定にする方法を知りたいと考えていませんか?

あと、オラクルデータベースについてのおススメの勉強法があれば知りたい、と考えていませんか?

LinuxOracle自動起動する手順です。
Oracle Linux7.7での手順ですが、CentOS7.7でも同様にできると思います

本記事では、下記の内容を解説します。

  • Oracle Linux7,7(CentOS7,7)サーバーOS起動時にOracle 19cが自動起動するようにサービス化する手順
  • ラクルデータベースのおススメの勉強法の紹介

この記事を書いている私は、某SIerに勤務しながら、入社当時から10年以上、オラクルデータベースを使ったシステムの開発に関わっていますので、記事の信頼性担保に繋がると思います。

手順① 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 土 111 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

 111 18:48:13 SV-PLUTO systemd[1]: Starting Oracle Databaes Service...
 111 18:48:13 SV-PLUTO dbstart[1370]: Processing Database instance "ORCLCDB": log file /opt/oracle/product/19c/dbhome_1/rdbms/log/startup.log
 111 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 土 111 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"
2020111日 土曜日 18:48:13 JST


SQL*Plus: Release 19.0.0.0.0 - Production on 土 111 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

www.ydc.co.jp

enakai00.hatenablog.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

f:id:souiunogaii:20200118213515j:plain

f:id:souiunogaii:20200118213502j:plain

Oracleのサービス化・自動起動の設定まとめ

  1. サービス化のためsystemdユニットファイルを作成
  2. サービスを有効化

以上、読んでいただきありがとうございました。




以上の内容はhttps://souiunogaii.hatenablog.com/entry/Oracle19c-AutoStartより取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14