1、Linux Oracle服务启动停止脚本与开机自启动在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二、检查Ora
2、cle DB监听器是否正常回到终端机模式,输入:$ lsnrctl status检查看看监听器是否有启动如果没有启动,可以输入:$ lsnrctl start启动监听器SQL conn sysorcl as sysdba然后输入密码,sys以sysdba身份登入数据库。三、启动emctl另外也可以发现http:/localhost.localdomain:1158/em 目前是没有反应的,这边要另外启动,启动的指令如下:$ emctl start dbconsole这个指令运行时间较长,执行完的画面如下:手动启动Oracle数据库完毕,下面创建系统自行启动Oracle的脚本。四、Oracle启
3、动&停止脚本1. 修改Oracle系统配置文件:/etc/oratab,只有这样,Oracle 自带的dbstart和dbshut才能够发挥作用。# vi /etc/orataborcl:/opt/oracle/102:Y# Entries are of the form:# $ORACLE_SID:$ORACLE_HOME:2. 在 /etc/init.d/ 下创建文件oracle,内容如下:#!/bin/sh# chkconfig: 35 80 10# description: Oracle auto start-stop script.# Set ORA_HOME to be equiv
4、alent 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/102ORA_OWNER=oracleif ! -f $ORA_HOME/bin/dbstart then echo Oracle startup: cannot start exitficase $1 instart)# Start the
5、Oracle databases:echo Starting Oracle Databases . echo - /var/log/oracledate + %T %a %D : Starting Oracle Databases as part of system up. /var/log/oracleecho - /var/log/oraclesu - $ORA_OWNER -c $ORA_HOME/bin/dbstart /var/log/oracleecho Done# Start the Listener:echo Starting Oracle Listeners . echo -
6、 /var/log/oracledate + %T %a %D : Starting Oracle Listeners as part of system up. /var/log/oracleecho - /var/log/oraclesu - $ORA_OWNER -c $ORA_HOME/bin/lsnrctl start /var/log/oracleecho Done.echo - /var/log/oracledate + %T %a %D : Finished. /var/log/oracleecho - /var/log/oracletouch /var/lock/subsys
7、/oracle;stop)# Stop the Oracle Listener:echo Stoping Oracle Listeners . echo - /var/log/oracledate + %T %a %D : Stoping Oracle Listener as part of system down. /var/log/oracleecho - /var/log/oraclesu - $ORA_OWNER -c $ORA_HOME/bin/lsnrctl stop /var/log/oracleecho Done.rm -f /var/lock/subsys/oracle# S
8、top the Oracle Database:echo Stoping Oracle Databases . echo - /var/log/oracledate + %T %a %D : Stoping Oracle Databases as part of system down. /var/log/oracleecho - /var/log/oraclesu - $ORA_OWNER -c $ORA_HOME/bin/dbshut /var/log/oracleecho Done.echo echo - /var/log/oracledate + %T %a %D : Finished
9、. /var/log/oracleecho - /var/log/oracle;restart)$0 stop$0 start;esac3. 改变文件权限# chmod 755 /etc/init.d/oracle4. 添加服务# chkconfig -level 35 oracle on5. 需要在关机或重启机器之前停止数据库,做一下操作# ln -s /etc/init.d/oracle /etc/rc0.d/K01oracle /关机# ln -s /etc/init.d/oracle /etc/rc6.d/K01oracle /重启6. 使用方法# service oracle sta
10、rt /启动oracle# service oracle stop /关闭oracle# service oracle restart /重启oracle7. 测试a. 开机自启动Last login: Mon Nov 26 19:57:06 2012 from 10.0.0.145rootORS # su - oracleoracleORS $ sqlplus /as sysdbaSQL*Plus: Release 10.2.0.1.0 - Production on Mon Nov 26 20:07:33 2012Copyright (c) 1982, 2005, Oracle. All
11、rights reserved.Connected to:Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - ProductionWith the Partitioning, OLAP and Data Mining optionsSQL set linesize 300;SQL set pagesize 30;SQL select * from scott.emp; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO- - - - - - - - 7369 SMITH CLERK 790
12、2 17-DEC-80 800 20 7499 ALLEN SALESMAN 7698 20-FEB-81 1600 300 30 7521 WARD SALESMAN 7698 22-FEB-81 1250 500 30 7566 JONES MANAGER 7839 02-APR-81 2975 20 7654 MARTIN SALESMAN 7698 28-SEP-81 1250 1400 30 7698 BLAKE MANAGER 7839 01-MAY-81 2850 30 7782 CLARK MANAGER 7839 09-JUN-81 2450 10 7788 SCOTT AN
13、ALYST 7566 19-APR-87 3000 20 7839 KING PRESIDENT 17-NOV-81 5000 10 7844 TURNER SALESMAN 7698 08-SEP-81 1500 0 30 7876 ADAMS CLERK 7788 23-MAY-87 1100 20 7900 JAMES CLERK 7698 03-DEC-81 950 30 7902 FORD ANALYST 7566 03-DEC-81 3000 20 7934 MILLER CLERK 7782 23-JAN-82 1300 1014 rows selected.SQL b. ser
14、vice oracle stopSQL Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - ProductionWith the Partitioning, OLAP and Data Mining optionsoracleORS $ logoutrootORS # service oracle stopStoping Oracle Listeners . Done.Stoping Oracle Databases . Done.rootORS # su - oracleoracleORS
15、 $ sqlplus /as sysdbaSQL*Plus: Release 10.2.0.1.0 - Production on Mon Nov 26 20:17:20 2012Copyright (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
16、 not availableSQL c. service oracle startSQL DisconnectedoracleORS $ logoutrootORS # service oracle startStarting Oracle Databases . DoneStarting Oracle Listeners . Done.rootORS # d. service oracle restartrootORS # service oracle restartStoping Oracle Listeners . Done.Stoping Oracle Databases . Done
17、.Starting Oracle Databases . DoneStarting Oracle Listeners . Done.rootORS # 至此,Oracle服务启动&停止脚本与开机自启动设置完毕。CentOS 6.3(x32)下安装Oracle 10g R2ORA-12514:TNS:listenerdoesnotcurrentlyknowofservicerequestedinconnectdescriptor(2011-06-22 17:17:24)转载标签: 杂谈分类: 学习心得 出现这种问题的情况一般是两种:1.看看是不是监听服务没有起来2.检查有没有修改IP地址,计算机
18、名称除此之外在网上查资料的时候还有一种:如下:这个错误是因为Listener出了问题,请检查一下你的listener.ora文件,看下是否存在如下配置:SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = PLSExtProc) (ORACLE_HOME = E:oracleproduct10.2.0db_1) (PROGRAM = extproc) ) 如果说是这样,那么请将一段改成SID_LIST_LISTENER =(SID_LIST =(SID_DESC = (SID_NAME = PLSExtProc) (ORACLE_HOM
19、E = E:oracleproduct10.2.0db_1) (PROGRAM = extproc) ) (SID_DESC = (GLOBAL_DBNAME = ORCL) (ORACLE_HOME = E:oracleproduct10.2.0db_1) (SID_NAME = ORCL) ) 这样以后,关掉Service和LISTENER。再启动Service和LISTENER,这样应该就可以了,注意顺序。 查了一下,网上是说,加上了面一段东西,意思是把LISTENER服务主动注册到进程监视器(pmon)中去。所以,但你启动了Serivce后,启动LISTENER的时候,会主动去注册到进
20、程监视器(pmon)中去。所以不会有什么问题。但是反过却不行。 如果说没有添加那一段,情况正好相反,是由实例的pmon进程在LISTENER中注册服务,LISTENER为被动注册。所以需要先起LISTENER才可以。 总结一下,如果说你不加那段东西,那么就应该先起LISTENER,如果说你加了那段东西,就应该先起Serivce。 我试了一下,的确是这样。不过在windows上,有时候会报错,重启一下再试就可以了-第三种情况我试了,没能解决情况,我出问题的原因是第二种情况,由于从客户那回到公司(客户那里用的是代理上网)ip地址变了,所以我是这样改的:找到oracle安装目录,一般都是这样的 homeoracleproduct10.1.0Db_1NETWORKADMIN下的tnsnames.ora文件打开后添加你的IP= (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 你的IP)(PORT = 1521) ) (CONNECT_DATA = (SERVICE_NAME = 你要连接的数据库名) ) )添加完后我的这个问题就解决完了,网上关于这个问题的解决方法貌似很多,依个人情况而定,写的不全,有没提到的希望多多补充
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1