在Linux下,Oracle启动脚本是通过init.d脚本实现的,通过配置开机自启动,可以在服务器启动时自动启动Oracle数据库。
编写Oracle启动脚本
-
在/etc/init.d/目录下创建名为oracle的脚本文件:
sudo vi /etc/init.d/oracle
-
在文件中输入以下脚本:
```
!/bin/bash
oracle: Start Oracle listener and instances
chkconfig: 345 99 10
description: This script starts the Oracle listener and instances.
Source function library.
. /etc/rc.d/init.d/functions
ORACLE_HOME=/u01/app/oracle/product/12.2.0/dbhome_1
PATH=$PATH:$ORACLE_HOME/bin
export ORACLE_HOME PATHcase "$1" in
start)
echo -n "Starting Oracle listener: "
lsnrctl start
echo "OK"
echo -n "Starting Oracle instances: "
# Start the Oracle database instances
dbstart $ORACLE_HOME
echo "OK"
;;
stop)
echo -n "Stopping Oracle instances: "
# Stop the Oracle database instances
dbshut $ORACLE_HOME
echo "OK"
echo -n "Stopping Oracle listener: "
lsnrctl stop
echo "OK"
;;
restart)
$0 stop
$0 start
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
;;
esacexit 0
```该脚本指定了Oracle_HOME路径,并定义了start、stop、restart三个命令,根据需要使用相应的命令即可启动、停止、重启Oracle服务。
配置开机自启动
-
将oracle脚本赋予可执行权限:
sudo chmod +x /etc/init.d/oracle
-
添加启动项,在/etc/rc.d/rc.local文档倒数第二行加上如下命令:
/etc/init.d/oracle start
以CentOS 7为例,使用systemctl实现Oracle自启动的命令如下:
sudo systemctl enable oracle
详细的实现方式:
-
在/etc/systemd/system目录下创建名称为oracle.service的文件:
sudo vi /etc/systemd/system/oracle.service
-
位于文件中输入以下值:
```
[Unit]
Description=Oracle Database[Service]
Type=forking
LimitMEMLOCK=infinity
LimitNOFILE=65535
User=oracle
Group=oinstallEnvironment=ORACLE_HOME=/u01/app/oracle/product/12.2.0/dbhome_1
Environment=PATH=$PATH:$ORACLE_HOME/bin
Environment=LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
Restart=alwaysExecStart=/etc/init.d/oracle start
ExecStop=/etc/init.d/oracle stop
ExecReload=/etc/init.d/oracle restart[Install]
WantedBy=multi-user.target
``` -
然后启用这个文件并重启服务:
sudo systemctl daemon-reload
sudo systemctl start oracle
sudo systemctl enable oracle
以上两种方法都可以完成Oracle的启动和开机自启动。
示例:
-
启动Oracle
/etc/init.d/oracle start
-
停止Oracle
/etc/init.d/oracle stop
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Linux下的Oracle启动脚本及其开机自启动 - Python技术站