on  it road.com

使脚本可执行并启用以在启动时运行

  1. 更改dbora文件的组,以匹配分配给Oracle软件的操作系统所有者(通常是oinstall或者dba)的组:
# chgrp dba /etc/init.d/dbora
  1. 将脚本权限设置为 755.
# chmod 750 /etc/init.d/dbora
  1. 运行以下 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 选项。

如何在 Linux 上自动启动/关闭 Oracle 数据库和侦听器

在许多环境中,希望在服务器重新启动时自动关闭和启动 Oracle 数据库和侦听器。
如果我们有此要求,请按照以下几个步骤自动关闭和启动数据库和侦听器:

配置自动启动/关闭的步骤

  1. 编辑 /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 目录中。

  1. 创建服务脚本 /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

测试脚本

  1. 要测试 dbora 脚本是否正常工作,请以 root 身份运行以下命令以停止数据库和侦听器:
# /etc/init.d/dbora stop
  1. 要测试数据库和侦听器的启动,请以 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