在Linux上自动启动和关闭Oracle数据库(9i/10g/11g)(1)

http://os.51cto.com  2008-06-30 15:48  黄永兵/译  人民邮电出版社  我要评论(0)
  • 摘要:在Oracle 1gR2或更高版本下使用RAC或ASM时,Oracle Clusterware会自动启动和停止Oracle数据库实例,因此下面的过程不是必需的,对于其他情况,你就可以使用下面描述的方法了。
  • 标签:Oracle  9i  10g  11g  Linux  启动  关闭  数据库

在Oracle 1gR2或更高版本下使用RAC或ASM时,Oracle Clusterware会自动启动和停止Oracle数据库实例,因此下面的过程不是必需的,对于其他情况,你就可以使用下面描述的方法了。

◆su命令

下面的描述是Oracle建议采用的自动启动和关闭Oracle 9i实例的方法。

一旦实例创建好后,标记/etc/oratab文件设置每个实例的重启标志为“Y”:

TSH1:/u01/app/oracle/product/9.2.0:Y

接下来,作为root用户登陆创建一个叫做/etc/init.d/dbora的文件,包括下面的内容:

#!/bin/sh
# chkconfig: 345 99 10
# description: Oracle auto start-stop script.
#
# Set ORA_HOME to be equivalent to the $ORACLE_HOME
# from which you wish to execute dbstart and dbshut;
#
# Set ORA_OWNER to the user id of the owner of the
# Oracle database in ORA_HOME.

ORA_HOME=/u01/app/oracle/product/9.2.0
ORA_OWNER=oracle

if [ ! -f $ORA_HOME/bin/dbstart ]
then
echo "Oracle startup: cannot start"
exit
fi

case "$1" in
'start')
# Start the Oracle databases:
# The following command assumes that the oracle login
# will not prompt the user for any values
su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl start"
su - $ORA_OWNER -c $ORA_HOME/bin/dbstart
;;
'stop')
# Stop the Oracle databases:
# The following command assumes that the oracle login
# will not prompt the user for any values
su - $ORA_OWNER -c $ORA_HOME/bin/dbshut
su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl stop"
;;
esac

使用chmod命令设置权限为750:

chmod 750 /etc/init.d/dbora

使用下面的命令配合适当的运行级别设置dbora服务自动启动:

chkconfig --level 345 dbora on

这样有关的实例就会随系统的启动而启动了。

这个方法仍然适用于Oracle10g和11g,使用正确的路径对ORA_HOME变量做一下改动,并将其添加到dbstart和dbshut末尾的行,在Oracle10gR2下可以移除启动和停止监听器的行了,因此dbstart命令包括启动监听器。

#!/bin/sh
# chkconfig: 345 99 10
# description: Oracle auto start-stop script.
#
# Set ORA_HOME to be equivalent to the $ORACLE_HOME
# from which you wish to execute dbstart and dbshut;
#
# Set ORA_OWNER to the user id of the owner of the
# Oracle database in ORA_HOME.

ORA_HOME=/u01/app/oracle/product/10.2.0/db_1
#ORA_HOME=/u01/app/oracle/product/11.1.0/db_1
ORA_OWNER=oracle

if [ ! -f $ORA_HOME/bin/dbstart ]
then
echo "Oracle startup: cannot start"
exit
fi

case "$1" in
'start')
# Start the Oracle databases:
# The following command assumes that the oracle login
# will not prompt the user for any values
su - $ORA_OWNER -c "$ORA_HOME/bin/dbstart $ORA_HOME"
;;
'stop')
# Stop the Oracle databases:
# The following command assumes that the oracle login
# will not prompt the user for any values
su - $ORA_OWNER -c "$ORA_HOME/bin/dbshut $ORA_HOME"
;;
esac


共2页: 1 [2] 下一页
【内容导航】
 第 1 页:su命令  第 2 页:rsh命令
Sun以10亿美元并购开源数据库厂商MySQL
Linux——从菜鸟到高手
甲骨文Oracle 11g正式发布
Oracle数据库开发之PL/SQL基础应用
Oracle较真SAP-商业管理软件之战一触即发
 
 验证码: (点击刷新验证码)   匿名发表
  • 野蛮生长

  • 作者:冯仑著
  • “地产界的思想家”冯仑纵横生意江湖20年来,第一次系统梳理出书。  三十年来中国民营企业从前公司时代发展到公司时代,21..
Copyright©2005-2008 51CTO.COM 版权所有