RHEL7 oracle自動起動設定めも

■/etc/sysconfig/oracledb.conf

ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1
ORACLE_SID=ORA11G

■/usr/lib/systemd/system/lsnrctl.service

[Unit]
Description=Oracle Listener
After=network.target

[Service]
Type=forking
EnvironmentFile=/etc/sysconfig/oracledb.conf
ExecStart=/u01/app/oracle/product/11.2.0/dbhome_1/bin/lsnrctl start
ExecStop=/u01/app/oracle/product/11.2.0/dbhome_1/bin/lsnrctl stop
User=oracle

[Install]
WantedBy=multi-user.target

■/usr/lib/systemd/system/oracledb.service

[Unit]
Description=Oracle Database service
After=network.target lsnrctl.service

[Service]
Type=forking
EnvironmentFile=/etc/sysconfig/oracledb.conf
ExecStart=/u01/app/oracle/product/11.2.0/dbhome_1/bin/dbstart $ORACLE_HOME
ExecStop=/u01/app/oracle/product/11.2.0/dbhome_1/bin/dbshut $ORACLE_HOME
User=oracle

[Install]
WantedBy=multi-user.target

■/etc/oratab

ORA11G:/u01/app/oracle/product/11.2.0/dbhome_1:Y

■設定

systemctl daemon-reload 
systemctl enable lsnrctl oracledb 

■DB起動が間に合わない場合 /etc/systemd/system.conf でタイムアウト変更。反映はOS reboot。

DefaultTimeoutStartSec=180s

■個々のserviceのみでタイムアウトを変更する場合は、以下の「TimeoutStartSec」で指定し、反映する

[root@o12r2 systemd]# cat /usr/lib/systemd/system/oracle.service
[Unit]
Description=Oracle Database service
After=network.target lsnrctl.service

[Service]
Type=forking
EnvironmentFile=/etc/sysconfig/oracle.conf
TimeoutStartSec=180
ExecStart=/home/oracle/app/oracle/product/12.2.0/dbhome_1/bin/dbstart $ORACLE_HOME
ExecStop=/home/oracle/app/oracle/product/12.2.0/dbhome_1/bin/dbshut $ORACLE_HOME
User=oracle

[Install]
WantedBy=multi-user.target
[root@o12r2 systemd]# systemctl daemon-reload
[root@o12r2 systemd]# systemctl show oracle -p TimeoutStartUSec
TimeoutStartUSec=3min
[root@o12r2 systemd]#

参考:タイムアウト制限変更例