方法一,安装oracle数据时配置自动启动
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 |
修改后保存退出,第一个问题已解决;
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
注意:第一个命令有空格,所以要用引号的
方法二,利用root用户+shell脚本配置
一、使用root用户修改/etc/oratab 文件:
$ vi /etc/oratab
orcl:/u01/oracle:N (ORACLE_SID:ORACLE_HOME:N)
改为:
orcl:/u01/oracle:Y 也就是将最后的N改为Y
二、使用Oracle用户修改$ORACLE_HOME/bin/dbstart和dbstop文件:
ORACLE_HOME_LISTNER=$1
改为:
ORACLE_HOME_LISTNER=$ORACLE_HOME
三、创建服务
代码如下 | 复制代码 |
$su – root # cd /etc/rc.d/init.d/ # vi oradb 在oradb中添加文本 #!/bin/bash # chkconfig: 345 99 10 # description: Startup Script for Oracle Databases export ORACLE_BASE=/u01 export ORACLE_HOME=/u01/oracle export ORACLE_SID=orcl export PATH=$PATH:$ORACLE_HOME/bin ORA_OWNR="oracle" # if the executables do not exist -- display error if [ ! -f $ORACLE_HOME/bin/dbstart -o ! -d $ORACLE_HOME ] then echo "Oracle startup: cannot start" exit 1 fi # depending on parameter -- startup, shutdown, restart # of the instance and listener or usage display case "$1" in start) # Oracle listener and instance startup and oem echo -n "Starting Oracle: " # 启动listener and instance su - $ORA_OWNR -c "$ORACLE_HOME/bin/dbstart" touch /var/lock/Oracle # 启动oem su - $ORA_OWNR -c "$ORACLE_HOME/bin/emctl start dbconsole" echo "OK" ;; stop) # Oracle listener and instance shutdown and oem echo -n "Shutdown Oracle: " # 关闭oem su - $ORA_OWNR -c "$ORACLE_HOME/bin/emctl stop dbconsole" # 关闭数据库和listener su - $ORA_OWNR -c "$ORACLE_HOME/bin/dbshut" rm -f /var/lock/Oracle echo "OK" ;; reload|restart) $0 stop $0 start ;; *) echo "Usage: `basename $0` start|stop|restart|reload" exit 1 esac exit 0 修改所属组和用户 #chown oracle.oinstall /etc/rc.d/init.d/oradb 修改访问权限 #chmod 775 /etc/rc.d/init.d/oradb 添加服务到自动启动中 #chkconfig –add oradb 查看数据库服务开机启动状态 #chkconfig –list oradb |
四、# chkconfig: 345 99 10说明
指出3,4,5级别启动这个服务,99是在相应的/etc/rc.d/rcN.d(N为前面指定的级别,这里是345)目录下生成的链接文件的序号(启动优先级别)S99oradbstart,10为在除前面指出的级别对应的/etc/rc.d/rcN.d(N为除345之外的级别)目录生成的链接文件的序号(服务停止的优先级别)