虚拟化容器,大数据,DBA,中间件,监控。

配置 Oracle 自动启动服务

05 09月
作者:admin|分类:DBA运维
配置 Oracle 自动启动服务

如果希望 Oracle 数据库在开机和关机的时候自动开启与关闭,

我们必须要手动配置一些内容,这比在 Windows 下要复杂多了。

这里建议直接使用 Oracle 已经为我们提供的数据库控制脚本,
而不要使用网上流传的一些控制脚本。

Oracle 为我们提供了 dbstart 和 dbshut 脚本,用来开启关闭数据库,
它们在$ORACLE_HOME/bin/目录下(就是你安装oracle的目录下)。

要使用这两个脚本,还需要修改/etc/oratab 文件,编辑最下面一行,
将 N 修改 Y(注意大小写),如:

yupan:/u01/app/oracle/product/10.2.0/db_1:Y

其格式也容易理解,实例 SID:$ORACLE_HOME:是否允许

安装oracle的目录下$ORACLE_HOME/bin/dbstart 脚本也需要稍作修改,
编辑第 78 行,
例:
ORACLE_HOME_LISTNER=/u01/app/oracle/product/10.2.0/db_1

这里直接写出$ORACLE_HOME变量中的路径值

现在,可以用 oracle 用户执行它们开启和关闭数据库,有一个小问题,
默认 dbstart 和 dbshut 只能实现数据库实例和 Listener 的开启与关闭,
EM 没有列入其中,

如果你希望 EM 随系统启动开启,
可以将 emctl start dbconsole 命令放到/etc/rc.d/rc.local 文件中,
但是关闭时不好处理了。
dbstart 和 dbshut 这两个脚本的执行安排也是同样的问题,

这里写一个系统服务脚本,系统帮我们自动处理开启和关闭数据库。

将脚本命名为 oracle,保存在/etc/rc.d/init.d下

#vi /etc/rc.d/init.d/oracle
加入以下内容:

#!/bin/sh
#chkconfig: 2345 99 01
#description: ORACLE10g Server
ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1
if [ ! -f $ORACLE_HOME/bin/dbstart ]
then
echo "ORACLE cannot start"
exit
fi
case "$1" in
'start')
echo "Starting Oracle Database.. . "
su - oracle -c "$ORACLE_HOME/bin/dbstart"
su - oracle -c "$ORACLE_HOME/bin/emctl start dbconsole"
;;
'stop')
echo "Stoping Oracle Database"
su - oracle -c "$ORACLE_HOME/bin/emctl stop dbconsole"
su - oracle -c "$ORACLE_HOME/bin/dbshut"
;;
esac


改变oracle脚本文件属性:
#chmod 755 oracle
#chown root.root oracle

系统启动时启动数据库,
chkconfig 命令设定此服务在 2345 运行级别中启动,

启动顺序是 99, 关闭顺序是 1,这样的话,
在 2345 这四个运行级别在启动时最后启动,
在退出 2345 运行级别的时候最先关闭此服务。
脚本中加上了 EM 的启动命令。

#cd /etc/rc.d/init.d
# chkconfig --add oracle
# chkconfig -level 2345 oracle on
#chkconfig --level 016 oracle off
# service oracle start  #开启数据库服务
# service oracle stop  #关闭数据库服务

如果执行命令不报错,那就成功了。


浏览2726 评论0
返回
目录
返回
首页
红旗6sp3 scim 输入法问题 Linux下路由器的配置IP带宽管理(QoS)