通过systemctl来管理Oracle数据库服务的启动与停止

 

以下脚本可以通过systemctl命令控制oracle数据库服务的启动与停止,以下脚本不限oracle的版本,对所有oracle服务版本都通用
 
1、创建脚本目录:
mkdir -p /home/oracle/scripts


2、启动Oracle数据库实例的脚本文件为/home/oracle/scripts/dbstart,内容如下:
cat /home/oracle/scripts/dbstart
sqlplus / as sysdba <<EOF
startup;
EOF


使用如下修改脚本的权限为可执行
chmod +x /home/oracle/scripts/dbstart


3、  启动Oracle数据库实例的脚本文件为/home/oracle/scripts/dbrestart,内容如下:
cat /home/oracle/scripts/dbrestart
sqlplus / as sysdba <<EOF
shutdown immediate;
startup;
EOF


使用如下修改脚本的权限为可执行
chmod +x /home/oracle/scripts/dbrestart


4、关闭Oracle数据库实例的脚本文件为/home/oracle/scripts/dbshut,内容如下:
/home/oracle/scripts/dbshut
sqlplus / as sysdba <<EOF
shutdown immediate;
EOF
使用如下修改脚本的权限为可执行
chmod +x /home/oracle/scripts/dbshut


5、编写Oracle实例的系统服务配置文件
  首先:我们需要切换到超级用户root,使用如下命令输入密码即可切换root用户。


su -
如果把实例服务命名为oracle,则创建服务配置文件/usr/lib/systemd/system/oracle.service,内容如下:


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


[Service]
Type=simple
ExecStart=/usr/bin/su - oracle -c "/home/oracle/scripts/dbstart >> /tmp/oracle.log"
ExecReload=/usr/bin/su - oracle -c "/home/oracle/scripts/dbrestart >> /tmp/oracle.log"
ExecStop=/usr/bin/su - oracle -c "/home/oracle/scripts/dbshut >> /tmp/oracle.log"
RemainAfterExit=yes


[Install]
WantedBy=multi-user.target


6、编写Oracle监听的系统服务配置文件
  如果把监听服务命名为oracle,则创建服务配置文件/usr/lib/systemd/system/lsnrctl.service,内容如下:


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


[Service]
Type=simple
ExecStart=/usr/bin/su - oracle -c "/u01/app/oracle/product/12.2.0/dbhome_1/bin/lsnrctl start >> /tmp/lsnrctl.log"
ExecReload=/usr/bin/su - oracle -c "/u01/app/oracle/product/12.2.0/dbhome_1/bin/lsnrctl reload >> /tmp/lsnrctl.log"
ExecStop=/usr/bin/su - oracle -c "/u01/app/oracle/product/12.2.0/dbhome_1/bin/lsnrctl stop >> /tmp/lsnrctl.log"
RemainAfterExit=yes


[Install]
WantedBy=multi-user.target


7、重新加载服务配置文件
systemctl daemon-reload


每次修改了服务配置文件后,需要重新加载它。


8、测试启动/停止/重启oracle和lsnrctl服务 (注意:以下在是root用户下执行,不是oracle用户)
启动oracle服务:
systemctl start oracle


重启oracle服务:
systemctl restart oracle


关闭oracle服务:
systemctl stop oracle


启动lsnrctl服务:
systemctl start lsnrctl


重启lsnrctl服务:
systemctl restart lsnrctl


关闭lsnrctl服务:
systemctl stop lsnrctl


9、把oracle和lsnrctl服务设置为开机/关机自动启动/关闭
把Oracle实例服务设置为开机自启:
systemctl enable oracle


把Oracle监听服务设置为开机自启:
systemctl enable lsnrctl


10、Oracle服务启动日志查看
上面在配置系统服务文件的时候指定了日志文件。
监听的启动日志在/tmp/lsnrctl.log文件中。
实例的启动日志在/tmp/oracle.log文件中。 

分割线
感谢打赏
江西数库信息技术有限公司
YWSOS.COM 平台代运维解决方案
 评论
 发表评论
姓   名:

Powered by AKCMS