Linux Oracle服务启动&停止脚本与开机自启动

小灰灰 2021-02-12 17:43 1009阅读 0赞

在CentOS 6.3下安装完Oracle 10g R2,重开机之后,你会发现Oracle没有自行启动,这是正常的,因为在Linux下安装Oracle的确不会自行启动,必须要自行设定相关参数,首先先介绍一般而言如何启动oracle。

一、在Linux下启动Oracle

登录到CentOS,切换到oracle用户权限

# su – oracle

接着输入:

$ sqlplus “/as sysdba”

原本的画面会变为
SQL>

接着请输入
SQL> startup

就可以正常的启动数据库了。

2012112316015357.jpg

另外停止数据库的指令如下:
SQL> shutdown immediate

简单些:

我用的是Redhat Linux,用下面的步骤来启动oracle数据库。
首先使用oracle用户登录Linux,然后在shell命令行中执行下面的命令:
第一步:打开Oracle监听
$ lsnrctl start
第二步:进入sqlplus
$ sqlplus /nolog
SQL>
第三步:使用sysdab角色登录sqlplus
SQL> conn /as sysdba
第四步:启动数据库
SQL> startup
经过上面的四个步骤,oracle数据库就可以启动了。

二、检查Oracle DB监听器是否正常

回到终端机模式,输入:

$ lsnrctl status

检查看看监听器是否有启动

2012112316023398.jpg

如果没有启动,可以输入:

$ lsnrctl start

启动监听器

2012112316025926.jpg

SQL> conn sys@orcl as sysdba

然后输入密码,sys以sysdba身份登入数据库。

2012112316034994.jpg

三、启动emctl

另外也可以发现http://localhost.localdomain:1158/em 目前是没有反应的,这边要另外启动,启动的指令如下:

$ emctl start dbconsole

这个指令运行时间较长,执行完的画面如下:

2012112316032450.jpg

手动启动Oracle数据库完毕,下面创建系统自行启动Oracle的脚本。

四、Oracle启动&停止脚本

  1. 修改Oracle系统配置文件:/etc/oratab,只有这样,Oracle 自带的dbstart和dbshut才能够发挥作用。

# vi /etc/oratab
orcl:/opt/oracle/102:Y

# Entries are of the form:
# $ORACLE_SID:$ORACLE_HOME::

  1. 在 /etc/init.d/ 下创建文件oracle,内容如下:
  1. #!/bin/sh
  2. # chkconfig: 35 80 10
  3. # description: Oracle auto start-stop script.
  4. #
  5. # Set ORA_HOME to be equivalent to the $ORACLE_HOME
  6. # from which you wish to execute dbstart and dbshut;
  7. #
  8. # Set ORA_OWNER to the user id of the owner of the
  9. # Oracle database in ORA_HOME.
  10. ORA_HOME=/opt/oracle/102
  11. ORA_OWNER=oracle
  12. if [ ! -f $ORA_HOME/bin/dbstart ]
  13. then
  14. echo "Oracle startup: cannot start"
  15. exit
  16. fi
  17. case "$1" in
  18. 'start')
  19. # Start the Oracle databases:
  20. echo "Starting Oracle Databases ... "
  21. echo "-------------------------------------------------" >> /var/log/oracle
  22. date +" %T %a %D : Starting Oracle Databases as part of system up." >> /var/log/oracle
  23. echo "-------------------------------------------------" >> /var/log/oracle
  24. su - $ORA_OWNER -c "$ORA_HOME/bin/dbstart" >>/var/log/oracle
  25. echo "Done"
  26. # Start the Listener:
  27. echo "Starting Oracle Listeners ... "
  28. echo "-------------------------------------------------" >> /var/log/oracle
  29. date +" %T %a %D : Starting Oracle Listeners as part of system up." >> /var/log/oracle
  30. echo "-------------------------------------------------" >> /var/log/oracle
  31. su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl start" >>/var/log/oracle
  32. echo "Done."
  33. echo "-------------------------------------------------" >> /var/log/oracle
  34. date +" %T %a %D : Finished." >> /var/log/oracle
  35. echo "-------------------------------------------------" >> /var/log/oracle
  36. touch /var/lock/subsys/oracle
  37. ;;
  38. 'stop')
  39. # Stop the Oracle Listener:
  40. echo "Stoping Oracle Listeners ... "
  41. echo "-------------------------------------------------" >> /var/log/oracle
  42. date +" %T %a %D : Stoping Oracle Listener as part of system down." >> /var/log/oracle
  43. echo "-------------------------------------------------" >> /var/log/oracle
  44. su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl stop" >>/var/log/oracle
  45. echo "Done."
  46. rm -f /var/lock/subsys/oracle
  47. # Stop the Oracle Database:
  48. echo "Stoping Oracle Databases ... "
  49. echo "-------------------------------------------------" >> /var/log/oracle
  50. date +" %T %a %D : Stoping Oracle Databases as part of system down." >> /var/log/oracle
  51. echo "-------------------------------------------------" >> /var/log/oracle
  52. su - $ORA_OWNER -c "$ORA_HOME/bin/dbshut" >>/var/log/oracle
  53. echo "Done."
  54. echo ""
  55. echo "-------------------------------------------------" >> /var/log/oracle
  56. date +" %T %a %D : Finished." >> /var/log/oracle
  57. echo "-------------------------------------------------" >> /var/log/oracle
  58. ;;
  59. 'restart')
  60. $0 stop
  61. $0 start
  62. ;;
  63. esac
  1. 改变文件权限
    # chmod 755 /etc/init.d/oracle

  2. 添加服务
    # chkconfig —level 35 oracle on

  3. 需要在关机或重启机器之前停止数据库,做一下操作
    # ln -s /etc/init.d/oracle /etc/rc0.d/K01oracle //关机
    # ln -s /etc/init.d/oracle /etc/rc6.d/K01oracle //重启

  4. 使用方法
    # service oracle start //启动oracle
    # service oracle stop //关闭oracle
    # service oracle restart //重启oracle

  5. 测试

a. 开机自启动

  1. Last login: Mon Nov 26 19:57:06 2012 from 10.0.0.145
  2. [root@ORS ~]# su - oracle
  3. [oracle@ORS ~]$ sqlplus "/as sysdba"
  4. SQL*Plus: Release 10.2.0.1.0 - Production on Mon Nov 26 20:07:33 2012
  5. Copyright (c) 1982, 2005, Oracle. All rights reserved.
  6. Connected to:
  7. Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
  8. With the Partitioning, OLAP and Data Mining options
  9. SQL> set linesize 300;
  10. SQL> set pagesize 30;
  11. SQL> select * from scott.emp;
  12. EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
  13. ---------- ---------- --------- ---------- --------- ---------- ---------- ----------
  14. 7369 SMITH CLERK 7902 17-DEC-80 800 20
  15. 7499 ALLEN SALESMAN 7698 20-FEB-81 1600 300 30
  16. 7521 WARD SALESMAN 7698 22-FEB-81 1250 500 30
  17. 7566 JONES MANAGER 7839 02-APR-81 2975 20
  18. 7654 MARTIN SALESMAN 7698 28-SEP-81 1250 1400 30
  19. 7698 BLAKE MANAGER 7839 01-MAY-81 2850 30
  20. 7782 CLARK MANAGER 7839 09-JUN-81 2450 10
  21. 7788 SCOTT ANALYST 7566 19-APR-87 3000 20
  22. 7839 KING PRESIDENT 17-NOV-81 5000 10
  23. 7844 TURNER SALESMAN 7698 08-SEP-81 1500 0 30
  24. 7876 ADAMS CLERK 7788 23-MAY-87 1100 20
  25. 7900 JAMES CLERK 7698 03-DEC-81 950 30
  26. 7902 FORD ANALYST 7566 03-DEC-81 3000 20
  27. 7934 MILLER CLERK 7782 23-JAN-82 1300 10
  28. 14 rows selected.
  29. SQL>

2012112714382845.jpg

b. service oracle stop

  1. SQL> Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
  2. With the Partitioning, OLAP and Data Mining options
  3. [oracle@ORS ~]$ logout
  4. [root@ORS ~]# service oracle stop
  5. Stoping Oracle Listeners ...
  6. Done.
  7. Stoping Oracle Databases ...
  8. Done.
  9. [root@ORS ~]# su - oracle
  10. [oracle@ORS ~]$ sqlplus "/as sysdba"
  11. SQL*Plus: Release 10.2.0.1.0 - Production on Mon Nov 26 20:17:20 2012
  12. Copyright (c) 1982, 2005, Oracle. All rights reserved.
  13. Connected to an idle instance.
  14. SQL> set linesize 300;
  15. SQL> set pagesize 30;
  16. SQL> select * from scott.emp;
  17. select * from scott.emp
  18. *
  19. ERROR at line 1:
  20. ORA-01034: ORACLE not available
  21. SQL>

2012112714442927.jpg

c. service oracle start

  1. SQL> Disconnected
  2. [oracle@ORS ~]$ logout
  3. [root@ORS ~]# service oracle start
  4. Starting Oracle Databases ...
  5. Done
  6. Starting Oracle Listeners ...
  7. Done.
  8. [root@ORS ~]#

2012112714524977.jpg

d. service oracle restart

  1. [root@ORS ~]# service oracle restart
  2. Stoping Oracle Listeners ...
  3. Done.
  4. Stoping Oracle Databases ...
  5. Done.
  6. Starting Oracle Databases ...
  7. Done
  8. Starting Oracle Listeners ...
  9. Done.
  10. [root@ORS ~]#

2012112715005379.jpg

至此,Oracle服务启动&停止脚本与开机自启动设置完毕。

发表评论

表情:
评论列表 (有 0 条评论,1009人围观)

还没有评论,来说两句吧...

相关阅读