Oracle数据库开机自启动

如果服务器断电重启或计划内重启,在服务器的操作系统启动后,需要手工启动数据库实例和监听,本文介绍如何把Oracle数据库的启动和关闭配置成系统服务,在操作系统启动/关闭时,自动启动/关闭Oracle实例和监听。

假设ORACLE_HOME环境变量的值是/oracle/home。

1、启动数据库实例的shell脚本

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

sqlplus / as sysdba <<EOF
startup;
EOF

2、重启数据库实例的shell脚本

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

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

3、关闭数据库实例的shell脚本

启动Oracle数据库的脚本为/oracle/home/bin/dbshut,内容如下:

sqlplus / as sysdba <<EOF
shutdown immediate;
EOF

4、oracle实例的系统服务配置文件脚本

如果把系统服务命名为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

5、lsnrctl监听的系统服务配置文件脚本

如果把系统服务命名为lsnrctl,则创建服务配置文件/usr/lib/systemd/system/lsnrctl.service,内容如下:

[Unit]
Description=Oracle lsnrctl
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

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

systemctl daemon-reload

7、启动/停止/启重oracle和lsnrctl服务

systemctl start oracle # 启动oracle服务。
systemctl restart oracle # 重启oracle服务。
systemctl stop oracle # 关闭oracle服务。
systemctl start lsnrctl # 启动lsnrctl服务。
systemctl restart lsnrctl # 重启lsnrctl服务。。
systemctl stop lsnrctl # 关闭lsnrctl服务。

8、把oracle和lsnrctl服务设置为开机/关机自启动/停止

systemctl enable oracle # 把Oracle实例服务设置为开机自启动。
systemctl enable lsnrctl # 把Oracle监听服务设置为开机自启动。

9、查看Oracle实例和监听启动/停止的日志。

Oracle实例启动的日志在/tmp/oracle.log文件中。

监听的启动日成在/tmp/lsnrctl.log文件中。

注意,只有通过systemctl启动/关闭Oracle实例和监听才会写日志,手工执行脚本不写日志。

10、版权声明

C语言技术网原创文章,转载请说明文章的来源、作者和原文的链接。

来源:C语言技术网(www.freecplus.net)

作者:码农有道

参考资源链接:[Red Hat 7.6离线安装Oracle 11g详细教程:环境配置与自动化启动](https://wenku.csdn.net/doc/6412b538be7fbd1778d425fe?utm_source=wenku_answer2doc_content) 对于想要在Red Hat 7.6系统上离线安装Oracle 11g的用户来说,配置本地yum源和设置Oracle数据库开机自启动是两个重要的步骤。首先,配置本地yum源需要加载官方的ISO镜像文件,并创建本地软件仓库,步骤包括创建本地挂载点、挂载ISO文件、编辑yum源配置文件以及清理和更新本地缓存。具体操作如下: 1. 使用命令`mkdir /mnt/cdrom`创建挂载点。 2. 使用命令`mount /path/to/rhel-server-7.6-x86_64-dvd.iso /mnt/cdrom`挂载ISO镜像。 3. 复制`/mnt/cdrom/Packages/*`目录下的所有rpm包到本地目录,例如`/var/cache/yum/packages`。 4. 配置本地yum仓库,创建文件`/etc/yum.repos.d/redhat-local.repo`,内容包括: ``` [local-repo] name=Local Repository baseurl=*** *** *** ``` 5. 清除yum缓存并重新生成缓存:`yum clean all`和`yum makecache`。 而对于手动配置Oracle数据库开机自启动,可以通过编辑`/etc/rc.d/rc.local`文件(确保该文件有执行权限)或使用`systemctl`命令来管理服务。如果使用`systemctl`,首先需要创建一个服务单元文件,例如`/etc/systemd/system/oracle.service`,内容可能包括: ``` [Unit] Description=Oracle Database Service After=network.target [Service] Type=simple User=oracle ExecStart=/home/oracle/product/11.2.0/dbhome_1/bin/dbstart $ORACLE_HOME ExecStop=/home/oracle/product/11.2.0/dbhome_1/bin/dbshut $ORACLE_HOME [Install] WantedBy=multi-user.target ``` 然后启用服务:`systemctl enable oracle.service`。 为了确保Oracle数据库服务在`rc.local`中正确启动,确保脚本中包含类似于`su - oracle -c 参考资源链接:[Red Hat 7.6离线安装Oracle 11g详细教程:环境配置与自动化启动](https://wenku.csdn.net/doc/6412b538be7fbd1778d425fe?utm_source=wenku_answer2doc_content)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

C语言技术网-码农有道

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值