on it road.com
使脚本可执行并启用以在启动时运行
- 更改dbora文件的组,以匹配分配给Oracle软件的操作系统所有者(通常是oinstall或者dba)的组:
# chgrp dba /etc/init.d/dbora
- 将脚本权限设置为 755.
# chmod 750 /etc/init.d/dbora
- 运行以下 chkconfig 命令:
# chkconfig --add dbora
此操作将服务注册到 Linux 服务机制。
这还会为 /etc/rc.d 目录下的文件创建适当的符号链接。
使用 -list 选项显示每个运行级别的服务是打开还是关闭:
# chkconfig --list | grep dbora dbora 0:off 1:off 2:off 3:on 4:off 5:on 6:off
此输出表明 dbora 服务在运行级别 3 和 5 中处于打开状态。
如果需要删除服务,请使用 chkconfig 的 -del 选项。
在许多环境中,希望在服务器重新启动时自动关闭和启动 Oracle 数据库和侦听器。
如果我们有此要求,请按照以下几个步骤自动关闭和启动数据库和侦听器:
配置自动启动/关闭的步骤
- 编辑 /etc/oratab 文件,并在系统重新启动时要自动重新启动的数据库条目的末尾放置一个 Y。
我们可能需要 root 权限来编辑文件:
# vi /etc/oratab [SID]:[ORACLE_HOME]:Y
字符串末尾的 Y 表示可以通过 ORACLE_HOME/bin/dbstart 和 ORACLE_HOME/bin/dbshut 脚本启动和停止数据库。
注意:对于某些 Unix 系统(例如 Solaris),oratab 文件通常位于 /var/opt/oracle 目录中。
- 创建服务脚本 /etc/init.d/dbora 。
脚本内容如下。
确保更改变量 ORA_HOME 和 ORA_OWNER 的值以匹配环境。
这是我们停止和启动数据库和侦听器所需的最低限度的基本脚本:
# vi /etc/init.d/dbora #!/bin/bash # chkconfig: 35 99 10 # description: Starts and stops Oracle processes ORA_HOME=/oracle/app/oracle/product/11.2.0/db_1 ORA_OWNER=oracle case "" in 'start') su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl start" su - $ORA_OWNER -c $ORA_HOME/bin/dbstart ;; 'stop') su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl stop" su - $ORA_OWNER -c $ORA_HOME/bin/dbshut ;; esac # End of script dbora
测试脚本
- 要测试 dbora 脚本是否正常工作,请以 root 身份运行以下命令以停止数据库和侦听器:
# /etc/init.d/dbora stop
- 要测试数据库和侦听器的启动,请以 root 身份发出以下命令:
# /etc/init.d/dbora start
理解脚本
# chkconfig: 35 99 10 # description: Starts and stops Oracle database
是强制性的,而不仅仅是注释,因为它们描述了服务的特征,其中:
- 35表示服务会在init级别3和5启动,在其他级别停止。
- 99 表示服务将在 init 级处理接近结束时启动
- 10 表示服务将在 init 级处理的接近开始处停止
脚本的其余部分很容易理解。
第一种情况启动侦听器/数据库,而第二种情况停止它。
按照以下步骤使脚本可执行并在系统启动时自动运行。
日期:2020-09-17 00:13:08 来源:oir作者:oir