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

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

一、在Linux下启动Oracle

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

  # su C oracle

接着输入:

  $ sqlplus "/as sysdba"

原本的画面会变为
SQL>

接着请输入
SQL> startup

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

Linux中Oracle服务启动和停止脚本与开机自启动 Linux 第1张

另外停止数据库的指令如下:

  SQL> shutdown immediate

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

回到终端机模式,输入:

  $ lsnrctl status

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

Linux中Oracle服务启动和停止脚本与开机自启动 Linux 第2张

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

  $ lsnrctl start

启动监听器

Linux中Oracle服务启动和停止脚本与开机自启动 Linux 第3张

  SQL> conn sys@orcl as sysdba

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

Linux中Oracle服务启动和停止脚本与开机自启动 Linux 第4张

三、启动emctl

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

  $ emctl start dbconsole

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

Linux中Oracle服务启动和停止脚本与开机自启动 Linux 第5张

手动启动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:<N|Y>:  

2. 在 /etc/init.d/ 下创建文件oracle,内容如下:

  #!/bin/sh  # chkconfig: 35 80 10  # description: Oracle auto start-stop script.    #  # Set ORA_HOME to be equivalent to the $ORACLE_HOME  # from which you wish to execute dbstart and dbshut;  #  # Set ORA_OWNER to the user id of the owner of the  # Oracle database in ORA_HOME.  ORA_HOME=/opt/oracle/102  ORA_OWNER=oracle  if [ ! -f $ORA_HOME/bin/dbstart ]  then    echo "Oracle startup: cannot start"    exit  fi  case "$1" in  'start')  # Start the Oracle databases:  echo "Starting Oracle Databases ... "  echo "-------------------------------------------------" >> /var/log/oracle  date +" %T %a %D : Starting Oracle Databases as part of system up." >> /var/log/oracle  echo "-------------------------------------------------" >> /var/log/oracle  su - $ORA_OWNER -c "$ORA_HOME/bin/dbstart" >>/var/log/oracle  echo "Done"    # Start the Listener:  echo "Starting Oracle Listeners ... "  echo "-------------------------------------------------" >> /var/log/oracle  date +" %T %a %D : Starting Oracle Listeners as part of system up." >> /var/log/oracle  echo "-------------------------------------------------" >> /var/log/oracle  su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl start" >>/var/log/oracle  echo "Done."  echo "-------------------------------------------------" >> /var/log/oracle  date +" %T %a %D : Finished." >> /var/log/oracle  echo "-------------------------------------------------" >> /var/log/oracle  touch /var/lock/subsys/oracle  ;;    'stop')  # Stop the Oracle Listener:  echo "Stoping Oracle Listeners ... "  echo "-------------------------------------------------" >> /var/log/oracle  date +" %T %a %D : Stoping Oracle Listener as part of system down." >> /var/log/oracle  echo "-------------------------------------------------" >> /var/log/oracle  su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl stop" >>/var/log/oracle  echo "Done."  rm -f /var/lock/subsys/oracle    # Stop the Oracle Database:  echo "Stoping Oracle Databases ... "  echo "-------------------------------------------------" >> /var/log/oracle  date +" %T %a %D : Stoping Oracle Databases as part of system down." >> /var/log/oracle  echo "-------------------------------------------------" >> /var/log/oracle  su - $ORA_OWNER -c "$ORA_HOME/bin/dbshut" >>/var/log/oracle  echo "Done."  echo ""  echo "-------------------------------------------------" >> /var/log/oracle  date +" %T %a %D : Finished." >> /var/log/oracle  echo "-------------------------------------------------" >> /var/log/oracle  ;;    'restart')  $0 stop  $0 start  ;;  esac    

3. 改变文件权限

  # chmod 755 /etc/init.d/oracle

4. 添加服务

  # chkconfig --level 35 oracle on

5. 需要在关机或重启机器之前停止数据库,做一下操作

  # ln -s /etc/init.d/oracle /etc/rc0.d/K01oracle  //关机  # ln -s /etc/init.d/oracle /etc/rc6.d/K01oracle  //重启 

6. 使用方法

  # service oracle start    //启动oracle   # service oracle stop    //关闭oracle   # service oracle restart   //重启oracle

7. 测试

a. 开机自启动

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

Linux中Oracle服务启动和停止脚本与开机自启动 Linux 第6张

b. service oracle stop

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

Linux中Oracle服务启动和停止脚本与开机自启动 Linux 第7张

c. service oracle start

  SQL> Disconnected  [oracle@ORS ~]$ logout  [root@ORS ~]# service oracle start  Starting Oracle Databases ...   Done  Starting Oracle Listeners ...   Done.  [root@ORS ~]#  

Linux中Oracle服务启动和停止脚本与开机自启动 Linux 第8张

d. service oracle restart

  [root@ORS ~]# service oracle restart  Stoping Oracle Listeners ...   Done.  Stoping Oracle Databases ...   Done.    Starting Oracle Databases ...   Done  Starting Oracle Listeners ...   Done.  [root@ORS ~]#    

Linux中Oracle服务启动和停止脚本与开机自启动 Linux 第9张

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

参与评论