1、修改/etc/oratab(oracle用户操作)
vi /etc/oratab
testdb:/u01/app/oracle/product/11.2.0/db_1:N
改为
testdb:/u01/app/oracle/product/11.2.0/db_1:Y
###注意替换对应 ORACLE_SID 和 ORACLE_HOME
2、修改$ORACLE_HOME/bin/dbstart(oracle用户操作)
echo $ORACLE_HOME
vi $ORACLE_HOME/bin/dbstart
找到ORACLE_HOME_LISTNER=$1,修改为
ORACLE_HOME_LISTNER=/u01/app/oracle/product/11.2.0/db_1
###注意调整上面的ORACLE_HOME_LISTNER 后面 ORACLE_HOME路径,确认命令如下:
echo $ORACLE_HOME && cat $ORACLE_HOME/bin/dbstart | grep "ORACLE_HOME_LISTNER=" | awk -F "=" '{print $2}'
3、编写服务脚本(root用户操作)
vi /etc/systemd/system/oracle.service
[Unit]
Description=Oracle Server
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
Type=forking
User=oracle
Environment="ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1"
ExecStart=/u01/app/oracle/product/11.2.0/db_1/bin/dbstart $ORACLE_HOME
### 注意调整上面Environment 和 ExecStart 后面对应的ORACLE_HOME路径,使用下面命令对比一下
su - oracle -c "echo \$ORACLE_HOME" && cat /etc/systemd/system/oracle.service | grep "Environment" | awk -F "=" '{print $3}' | awk -F '"' '{print $1}' && cat /etc/systemd/system/oracle.service | grep "ExecStart" | awk -F " " '{print $1}' | awk -F "=" '{print $2}'
4、调整脚本权限属组(root用户操作)
chmod +x /etc/systemd/system/oracle.service
chown oracle:oinstall /etc/systemd/system/oracle.service
ls -l /etc/systemd/system/oracle.service
systemctl enable oracle.service