Welcome 微信登录

首页 / 数据库 / MySQL / Linux下Oracle 11gR2开机自启动操作

Linux下的Oracle在安装结束后是处于运行状态的。开机重启机器后,Oracle不会像在Windows下那样将Oracle添加到Windows服务,在linux下需要手动启动Orcle服务
  1. 以oracle用户下,执行下面的命令 
  2. 进入sqlplus 
  3. $ sqlplus /nolog 
  4. 以sysdba的身份连接到数据库,并启动Oracle数据库引擎 
  5. SQL> conn /as sysdba 
  6. SQL> startup 
  7. 退出sqlplus,运行Listener 
  8. SQL> exit 
  9. $ lsnrctl start 
这样就可以连接到Oracle数据库了。如果想用Oracle提供的EM来管理Oracle的话还需要启动EM控制台,运行如下命令:
  1. $ emctl start dbconsole 
这样就可以通过http://localhost:1158/em/来访问EM控制台了。使用dbstart和dbstop来启动Oracle服务安装过程中遇到的问题:1,安装过程中遇到乱码:这是因为oracle不支持中文造成的。你可以先使用命令 export LANG=en将环境临时换成英文,然后再安装。这个环境变量的修改只是临时的,重启后或者使用oracle用户登录时会自己换回来的2,如在安装过程中出现如下错误:[INS-32031]Invalid inventory location[INS-32033]Central Inventory location is not vritable解决办法:修改/home/oracle_11的权限chown -R oracle:oinstall /home/oracle_11就行 可能使用dbstart命令来启动数据库更方便一些,但初次安装完oracle之后使用dbstart命令会报这样的错误
  1. ORACLE_HOME_LISTNER is not SET, unable to auto-start Oracle Net Listener 
  2. Usage: /u01/app/oracle/product/11.2/db/bin/dbstart ORACLE_HOME 
出现这样错误的原因是由于没有设置ORACLE_HOME_LISTNER的原因,我们查看一下dbstart这个文件
  1. more  /home/oracle_11/app/oracle/product/11.2/db/bin/dbstart 
部分内容如下
  1. # First argument is used to bring up Oracle Net Listener 
  2. ORACLE_HOME_LISTNER=$1 
  3. if [ ! $ORACLE_HOME_LISTNER ] ; then 
  4.   echo "ORACLE_HOME_LISTNER is not SET, unable to auto-start Oracle Net Listener" 
  5.   echo "Usage: $0 ORACLE_HOME" 
  6. else 
  7.   LOG=$ORACLE_HOME_LISTNER/listener.log 
  8.   # Set the ORACLE_HOME for the Oracle Net Listener, it gets reset to 
  9.   # a different ORACLE_HOME for each entry in the oratab. 
  10.   export ORACLE_HOME=$ORACLE_HOME_LISTNER 
解决方案就算将$ORACLE_HOME赋值给$ORACLE_HOME_LINTNER,保存,退出再一次执行dbstart,但是没有反映,没有报错,如果我们需要使用dbstart,则需要在/etc/oratab这个文件中的实例最后的N改成Y,如下
  1. orcl:/home/oracle_11/app/oracle/product/11.2/db:Y 
OK,保存,再试一下dbstart命令,返回结果如下
  1. Processing Database instance "orcl": log file /home/oracle_11/app/oracle/product/11.2.0/db_1/startup.log 
dbshut进行同样的设置.这样,以后就可以在启动监听之后直接使用dbstart和dbshut命令来启动和关闭数据了将Oracle服务添加到Linux开机启动项,以root用户建立/etc/rc.d/init.d/oradb脚本文件,文件内容如下:
  1. #!/bin/bash 
  2. # chkconfig: 2345 90 10 
  3. export ORACLE_BASE=/home/oracle_11/app/ 
  4. export ORACLE_HOME=$ORACLE_BASE/oracle/product/11.2.0/db_1 
  5. export ORACLE_SID=orcl 
  6. export PATH=$PATH:$ORACLE_HOME/bin 
  7. ORCL_OWN="oracle" 
  8. # if the executables do not exist -- display error 
  9. if [ ! -f $ORACLE_HOME/bin/dbstart -o ! -d $ORACLE_HOME ] 
  10. then 
  11.    echo "Oracle startup: cannot start" 
  12.    exit 1 
  13. fi 
  14. # depending on parameter -- start, stop, restart 
  15. # of the instance and listener or usage display 
  16. case "$1" in 
  17. start) 
  18. # Oracle listener and instance startup 
  19. echo -n "Starting Oracle: " 
  20. su - $ORCL_OWN -c "$ORACLE_HOME/bin/dbstart" 
  21. touch /var/lock/subsys/oradb 
  22. su - $ORCL_OWN -c "$ORACLE_HOME/bin/emctl start dbconsole" 
  23. echo "OK" 
  24. ;; 
  25. stop) 
  26. # Oracle listener and instance shutdown 
  27. echo -n "Shutdown Oracle: " 
  28. su - $ORCL_OWN -c "$ORACLE_HOME/bin/emctl stop dbconsole" 
  29. su - $ORCL_OWN -c "$ORACLE_HOME/bin/dbshut" 
  30. rm -f /var/lock/subsys/oradb 
  31. echo "OK" 
  32. ;; 
  33. reload|restart) 
  34. $0 stop 
  35. $1 start 
  36. ;; 
  37. *) 
  38. echo "Usage: "basename $0" start|stop|restart|reload" 
  39. exit 1 
  40. esac 
  41. exit 0 
将该文件添加到开机启动 
  1. # chmod 755 /etc/rc.d/init.d/oradb 
  2. # chkconfig --add oradb 
重启服务 
  1. # service oradb stop 
  2. # service oradb start 
下次启动机器的时候,Oracle服务会随机器一起启动。Oracle数据库安装、配置完成。Tip:Oracle数据库的默认端口号:1521,Oracle提供的EM管理器默认端口号是1158。卸载:oracle在linux下安装时虽然很繁琐,但是卸载却异常简单,只要把相关文件删除即可!!!oracle11g自带一个卸载批处理home/oracle/product/11.2.0/dbhome_1/deinstall/deinstall运行该处理文件自动完成卸载oracle卸载工作,最后手动删除app文件夹在运行的过程中可能需要填写如下项:指定要取消配置的所有单实例监听程序[LISTENER]: LISTENER指定在此oracle主目录中配置的数据库名的列表[MYDATA,ORCL]:MYDATA,ORACL是否仍要修改MYDATA,ORACL数据库的详细资料?[n]:nCCR check is finished是否继续[y-是,n-否]?[n]:y更多Oracle相关信息见Oracle 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=12本文永久更新链接地址