【Linux CentOS7 Oracle】如何配置开机自启

发布于:2023-01-04 ⋅ 阅读:(482) ⋅ 点赞:(0)

前言:如果服务器断电重启,或在计划内重启,在服务器的操作系统启动后,需要手工启动Oracle实例与监听,如果忘记启动,将导致某些程序无法正常运行。同时,如果我们在重启操作系统之前忘记关闭Oracle,极大概率会导致数据丢失。所以接下来的文章为大家讲解Oracle如何配置开机/关机自动启动/关闭的。

本文使用的操作系统是:CentOS7

1、首先需要知道自己Oracle的安装根目录

        如果不知道可以通过以下命令查看。

echo $ORACLE_HOME

        结果如下:

2、启动Oracle数据库实例的shell脚本配置(一般安装Oracle自带)

        启动Oracle数据库实例的脚本文件为/oracle/home/bin/dbstart,内容如下:

sqlplus / as sysdba <<EOF
startup;
EOF

        使用如下修改脚本的权限为可执行(Oracle如果自带该脚本,默认可执行)。

        chmod +x /oracle/home/bin/dbstart 

3、重启Oracle数据库实例的shell脚本配置(如果没有此文件,请自己手动配置)

        启动Oracle数据库实例的脚本文件为/oracle/home/bin/dbrestart,内容如下:

sqlplus / as sysdba <<EOF
shutdown immediate;
startup;
EOF

        使用如下修改脚本的权限为可执行(Oracle如果自带该脚本,默认可执行)。

        chmod +x /oracle/home/bin/dbrestart

4、关闭Oracle数据库实例的shell脚本配置(一般安装Oracle自带)

        关闭Oracle数据库实例的脚本文件为/oracle/home/bin/dbshut,内容如下:

sqlplus / as sysdba <<EOF
shutdown immediate;
EOF

        使用如下修改脚本的权限为可执行(Oracle如果自带该脚本,默认可执行)。

        chmod +x /oracle/home/bin/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 "/oracle/home/bin/dbstart >> /tmp/oracle.log"
ExecReload=/usr/bin/su - oracle -c "/oracle/home/bin/dbrestart >> /tmp/oracle.log"
ExecStop=/usr/bin/su - oracle -c "/oracle/home/bin/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 "/oracle/home/bin/lsnrctl start >> /tmp/lsnrctl.log"
ExecReload=/usr/bin/su - oracle -c "/oracle/home/bin/lsnrctl reload >> /tmp/lsnrctl.log"
ExecStop=/usr/bin/su - oracle -c "/oracle/home/bin/lsnrctl stop >> /tmp/lsnrctl.log"
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

7、重新加载服务配置文件

systemctl daemon-reload

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

8、测试启动/停止/重启oracle和lsnrctl服务

        启动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文件中。

        注意:只有使用systemctl启动/关闭Oracle的实例和监听才会写入日志,包括开机自启,如果你用oracle用户使用dbstart和lsnrctl start等命令启动,是不会被写入日志的。

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到