说明:如下操做环境在CentOS 6.4 + Oracle 11gR2(Oracle安装在ORACLE_BASE=/opt/oracle中,其ORACLE_HOME=/opt/oracle/11g)web
用OUI安装并配置Oracle数据库后,Oracle就开启了(包括:数据库实例、监听器、EM)。在重启操做系统以后,Oracle默认是没有启动的。使用以下命令查看Oracle相关服务是否已启动:sql
ps aux | grep ora_ #若无ora_**_**相关的进程,则oracle数据库实例未启动 netstat -tlnup | grep 1521 #若无任何显示,则监听器未启动 lsnrctl status #查看监听器状态 netstat -tlnup | grep 1158 #若无任何显示,则EM未启动 emctl status dbconsole #查看EM状态
手工启动Oracle实例,可用sqlplus创建一个idle instance,而后再用startup启动,以下:数据库
数据库实例启动以后,需启动监听器,才能让远程用户创建链接。可以使用以下命令启动监听器:浏览器
lsnrctl start
Oracle还提供网页版的管理器,要使用该管理器需启动相关服务,使用以下命令启动:oracle
emctl start dbconsole
至此,可在web浏览器中输入:https://{主机IP 或 主机名 或 本地localhost}:1158/em,打开管理器,使用相关账号登陆进行数据库查看和管理。操作系统
若是每次重启操做系统都要进行以上操做好麻烦,那么如何让Oracle做为系统服务在开机的时候自动启动呢?rest
Oracle在$ORACLE_HOME/bin下提供许多对数据库进行操做的脚本,其中dbstart和dbshut可分别用来启动和关闭数据库。注意,这两个脚本已包含监听器的启动或关闭,但并未对EM进行相关的操做。使用以下命令:进程
/opt/oracle/11g/bin/dbstart /opt/oracle/11g #启动数据库实例(包含监听器) /opt/oracle/11g/bin/dbshut /opt/oracle/11g #关闭数据库实例(包括监听器)
以上命令要成功启动数据库实例还得打开Oracle设置的一个关卡:vi /etc/oratab,修改行:ip
orcl:/opt/oracle/11g:Y #默认为orcl:/opt/oracle/11g:N
以root身份创建开机启动oracle服务的脚本:vi /etc/init.d/oracle,添加以下脚本:it
#!/bin/sh #chkconfig: 2345 20 80 #description: Oracle dbstart / dbshut #以上两行为chkconfig所需 ORA_HOME=/opt/oracle/11g ORA_OWNER=oracle LOGFILE=/var/log/oracle.log echo "#################################" >> ${LOGFILE} date +"### %T %a %D: Run Oracle" >> ${LOGFILE} if [ ! -f ${ORA_HOME}/bin/dbstart ] || [ ! -f ${ORA_HOME}/bin/dbshut ]; then echo "Error: Missing the script file ${ORA_HOME}/bin/dbstart or ${ORA_HOME}/bin/dbshut!" >> ${LOGFILE} echo "#################################" >> ${LOGFILE} exit fi start(){ echo "###Startup Database..." su - ${ORA_OWNER} -c "${ORA_HOME}/bin/dbstart ${ORA_HOME}" echo "###Done." echo "###Run database control..." su - ${ORA_OWNER} -c "${ORA_HOME}/bin/emctl start dbconsole" echo "###Done." } stop(){ echo "###Stop database control..." su - ${ORA_OWNER} -c "${ORA_HOME}/bin/emctl stop dbconsole" echo "###Done." echo "###Shutdown Database..." su - ${ORA_OWNER} -c "${ORA_HOME}/bin/dbshut ${ORA_HOME}" echo "###Done." } case "$1" in 'start') start >> ${LOGFILE} ;; 'stop') stop >> ${LOGFILE} ;; 'restart') stop >> ${LOGFILE} start >> ${LOGFILE} ;; esac date +"### %T %a %D: Finished." >> ${LOGFILE} echo "#################################" >> ${LOGFILE} echo ""
使用以下命令将 /etc/init.d/oracle 置为可执行文件:
chmod a+x /etc/init.d/oracle
至此,可以使用以下命令对oracle进行启动和关闭
/etc/init.d/oracle start #启动oracle(包括数据库实例、监听器、EM) /etc/init.d/oracle stop #关闭oracle /etc/init.d/oracle restart #重启oracle
将 oracle 添加到 chkconfig中:
chkconfig --add oracle
可以使用以下命令查看和设置oracle服务的开机启动级别:
chkconfig | grep oracle #查看oracle服务的开机启动级别 chkconfig --level 24 oracle off #修改oracle服务的开机启动级别 chkconfig --level 35 oracle on
至此可以使用以下命令对oracle的启动或关闭进行管理
service oracle start #启动 service oracle stop #关闭 service oracle restart #重启
创建链接:
ln -s /etc/init.d/oracle /etc/rc0.d/K01oracle #关机执行 ln -s /etc/init.d/oracle /etc/rc6.d/K01oracle #重启执行