linux下数据库实例监听开机自启动设置

2016/5/16 zhanky

脚本介绍

在开始之前,我们先介绍一下几个会用到的脚本。

oratab

oratab文件是在创建数据库实例时建立的,在安装时使用root用户执行root.sh脚本后得到。(如果忘记也可以直接手动创建。)

在$ORACLE_HOME/bin目录下的$ORACLE_HOME/bin/dbstart和$ORACLE_HOME/bin/dbshut需要调用/etc/oratab文件,如果不存在,dbstart和dbshut将失败,报错信息为/etc/oratab" is notaccessible。

oratab的格式为: ORACLE_SID:ORACLE_HOME:AUTO

如 果需要自动启动数据库,则将AUTO设为Y,在调用dbstart命令才生效。dbstart根据/etc/oratab中的配置来启动相应的数据库,选 项只是能不能用$ORACLE_HOME/bin/dbstart和$ORACLE_HOME/bin/dbshut来启动和关闭数据库的开关。

如果不用dbstart脚本启动数据库,而是用自己的脚本来启动,根本不需要oratab文件。

 

dbstart

dbstart是安装数据库时自带的启动数据库实例的脚本,默认存放在$oracle_home/bin下。在这里我们通过设置系统开机自动执行dbstart脚本文件来实现,开机自动启动数据实例。

 

lsnrctl

lsnrctl是安装数据库时自带的启动数据库监听的脚本,默认存放在$oracle_home/bin下。在这里我们通过设置系统开机自动执行lsnrctl脚本文件来实现,开机自动启动数据监听

 

rc.local

rc.local系统自带的是开机启动程序脚本,默认存放在/etc/rc.d下。我们通过在rc.local脚本中添加执行启动数据库和启动监听的脚本来实现开机自动开启数据库实例和监听。

 

测试介绍

系统版本:linuxredhat 5.4 x64

数据库版本:Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production

实例名:test

ORACLE_HOME:/u01/app/oracle/product/11.2.0/dbhome_1



测试步骤

1、修改/oratab

因为我这边环境中没有oratab所以手动创建

[oracle@zky /]$  vi /etc/oratab 

[oracle@zky /]$ cat /etc/oratab

test:/u01/app/oracle/product/11.2.0/dbhome_1:Y

 

2、编辑rc.local

标红地方为新加的内容。

第一条为:用oracle用户登录,运行lsnrctl start 脚本启用监听。

第二条为:用oracle用户登录,运行dbstart启动数据库

[root@zky /]$ vi /etc/rc.d/rc.local 

[root@zky /]$ cat /etc/rc.d/rc.local 

#!/bin/sh

#

# This script will be executed *after* all the other init scripts.

# You can put your own initialization stuff in here if you don't

# want to do the full Sys V style init stuff.

 

touch /var/lock/subsys/local

su - oracle -c "/u01/app/oracle/product/11.2.0/dbhome_1/bin/lsnrctl start"

su - oracle -c "/u01/app/oracle/product/11.2.0/dbhome_1/bin/dbstart startup"

[root@zky /]$


3、测试验证,重启数据库即可。

然后就完成了数据库实例和监听的开机自启动了。