开源中文网

您的位置: 首页 > 数据库应用 > Oracle > 正文

linux怎么设置oracle自动启动?

来源: 网络整理  作者: 佚名

怎么设置oracle自动启动呢,下在我以linux系统为例吧,在linux中如果想让应用程序启动我们只要简单的在把启动代码简单的配置一下即可。
1.安装好Oracle数据库后: 执行 dbstart和dbshut会提示:


[oracle@oracle11g ~]$ dbstart
ORACLE_HOME_LISTNER is not SET, unable to auto-start Oracle Net Listener
Usage: /u01/app/oracle/oracle/product/10.2.0/db_1/bin/dbstart ORACLE_HOME
错误原因是:dbstart和dbshut脚本文件中ORACLE_HOME_LISTNER的设置有问题,分别打开两个文件找到:ORACLE_HOME_LISTNER=$1,修改为
ORACLE_HOME_LISTNER=$ORACLE_HOME,命令如下:

[oracle@oracle11g ~]$ vi $ORACLE_HOME/bin/dbstart
[oracle@oracle11g ~]$ vi $ORACLE_HOME/bin/dbshut

修改后保存退出,第一个问题已解决;

2.如何在Linux启动时自动启动Oracle监听和实例
首先要解决上面的问题,才能继续哟!

第一步:修改/etc/oratab文件,命令如下:
[oracle@oracle11g ~]$ vi /etc/oratab
找到:accp:/u01/oracle:N   修改为: accp:/u01/oracle:Y
第二步:把lsnrctl start和dbstart添加到rc.local文件中,命令如下:

[oracle@oracle11g ~]$ vi /etc/rc.d/rc.local
添加:
su oracle -lc "/u01/oracle/bin/lsnrctl start"
su oracle -lc  /u01/oracle/bin/dbstart
注意:第一个命令有空格,所以要用引号的

重启试试吧!
我曾经按按照网上的改法修改后,仍然不能解决此问题,最后只能参照网上的改法,以及 $ORACLE_HOME/network/admin/samples/listener.ora文件的语法规则进行更改后才得以解决此问题)

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
       (GLOBAL_DBNAME = orcl)
#       (SID_NAME = PLSExtProc)
       (ORACLE_HOME = /usr/oracle_db/product/10.2.0/)
       (SID_NAME = orcl)
#      (PROGRAM = extproc)
    )
)
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521))
    )
  )
3.建立一个启动的脚本

#!/bin/bash
#
###############Description##########
#
# AutoStart Oracle and listener
# AutoStop Oracle and listener
#
#####################################
#
#
#
. /etc/rc.status
case "$1" in
start)
echo "Starting Oracle Databases ... "
echo "[ $(date +%D-%T) ] Start Oracle Database" >> /var/log/oracle
su - oracle -c "dbstart" >> /var/log/oracle
rc_status -v
echo "Starting Oracle Listeners ... "
echo "[ $(date +%D-%T) ] Start Oracle Listener" >> /var/log/oracle
su - oracle -c "lsnrctl start" >> /var/log/oracle
rc_status -v
touch /var/lock/subsys/oracle
;;
stop)
echo "Stoping Oracle Listeners ... "
echo "[ $(date +%D-%T) ] Stop Oracle Listener" >> /var/log/oracle
su - oracle -c "lsnrctl stop" >> /var/log/oracle
rc_status -v
rm -f /var/lock/subsys/oracle
echo "Stoping Oracle Databases ... "
echo "[ $(date +%D-%T) ] Stop Oracle Database" >> /var/log/oracle
su - oracle -c "dbshut" >> /var/log/oracle
rc_status -v
;;
restart)
$0 stop
$0 start
;;
*)
echo "Usage: oracle {start|stop|restart}"
exit 1
esac
改变权限.放到/etc/init.d/oracle

chkconfig oracle on

Tags:
关于开源中文网 - 联系我们 - 广告服务 - 网站地图 - 版权声明