[ 登录 ][ 注册 ] 天极传媒: 比特网 | 天极网 | IT专家网 | IT商网 | 52PK游戏网 | 手机天极 | IT分众 |
您现在的位置: IT专家网 > 数据库子站 > 数据库技巧

在Linux上自动启动和关闭Oracle数据库

作者: 黄永兵,  出处:人民邮电出版社, 责任编辑: 王晓晨, 
2008-07-22 08:02
  在Oracle 1gR2或更高版本下使用RAC或ASM时,Oracle Clusterware会自动启动和停止Oracle数据库实例,因此下面的过程不是必需的,对于其他情况,你就可以使用下面描述的方法了。

  在Oracle 1gR2或更高版本下使用RACASM时,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 :

网友评论

笔名 
请您注意:遵守国家有关法律、法规,尊重网上道德,承担一切因您的行为而直接或间接引起的法律责任。    IT专家网友拥有管理笔名和留言的一切权利。

邮件订阅