在实际生产过程中,会存在某种原因可能导致Oracle程序被杀掉,可以编写一个服务单元去判断,如果Oracle程序和监听程序关闭了,则等待五秒后重新拉起来。
具体如下
# 创建启动脚本
vim /home/oracle/start.sh
#!/bin/bash
# 启动Oracle监听器和数据库实例
lsnrctl start
sqlplus /nolog <<EOF
connect / as sysdba
startup
exit
EOF
exit
#赋权
chmod +x /home/oracle/start.sh
#创建Oracle用户引用脚本
vim /opt/bin/oracle_start.sh
#!/bin/bash
su - oracle -s /bin/bash /home/oracle_start.sh
#赋权
chmod +x /opt/bin/oracle_start.sh
#创建服务单元
vim /etc/systemd/system/oracle.service
[Unit]
Description=Oracle
After=network.target
[Service]
User=root
Group=root
ExecStart=/opt/bin/oracle_start.sh
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
#设置开机自启
systemctl enable oracle.service
systemctl start oracle.service