以下脚本可以通过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文件中。
2023-12-02
通过systemctl来管理Oracle数据库服务的启动与停止
评论
发表评论
姓 名: