暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

通过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文件中。


「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

文章被以下合辑收录

评论