在linux上oracle服务启动停止详细

时间:2022-12-20 20:58:01

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

一、在Linux下启动Oracle

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

​​# su – oracle​​


接着输入:

​​$ sqlplus ​​​​"/as sysdba"​​

原本的画面会变为
SQL>

接着请输入
SQL> startup

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

​​

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

​​SQL> shutdown immediate​​

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

回到终端机模式,输入:

​​$ lsnrctl status​​

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

​​

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

​​$ lsnrctl start​​

启动监听器

​​

​​SQL> conn sys@orcl ​​​​as​​​ ​​sysdba​​

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

三、启动emctl

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

​​$ emctl start dbconsole​​

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

手动启动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>​​

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>​​

​​

c. service oracle start

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

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 ~]#​​


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