Linux Oracle服务启动停止脚本与开机自启动.docx
《Linux Oracle服务启动停止脚本与开机自启动.docx》由会员分享,可在线阅读,更多相关《Linux Oracle服务启动停止脚本与开机自启动.docx(13页珍藏版)》请在冰点文库上搜索。
LinuxOracle服务启动停止脚本与开机自启动
在CentOS6.3下安装完Oracle10gR2,重开机之后,你会发现Oracle没有自行启动,这是正常的,因为在Linux下安装Oracle的确不会自行启动,必须要自行设定相关参数,首先先介绍一般而言如何启动oracle。
一、在Linux下启动Oracle
登录到CentOS,切换到oracle用户权限
#su–oracle
接着输入:
$sqlplus"/assysdba"
原本的画面会变为
SQL>
接着请输入
SQL>startup
就可以正常的启动数据库了。
另外停止数据库的指令如下:
SQL>shutdownimmediate
二、检查OracleDB监听器是否正常
回到终端机模式,输入:
$lsnrctlstatus
检查看看监听器是否有启动
如果没有启动,可以输入:
$lsnrctlstart
启动监听器
SQL>connsys@orclassysdba
然后输入密码,sys以sysdba身份登入数据库。
三、启动emctl
另外也可以发现http:
//localhost.localdomain:
1158/em目前是没有反应的,这边要另外启动,启动的指令如下:
$emctlstartdbconsole
这个指令运行时间较长,执行完的画面如下:
手动启动Oracle数据库完毕,下面创建系统自行启动Oracle的脚本。
四、Oracle启动&停止脚本
1.修改Oracle系统配置文件:
/etc/oratab,只有这样,Oracle自带的dbstart和dbshut才能够发挥作用。
#vi/etc/oratab
orcl:
/opt/oracle/102:
Y
#Entriesareoftheform:
# $ORACLE_SID:
$ORACLE_HOME:
:
2.在/etc/init.d/下创建文件oracle,内容如下:
#!
/bin/sh
#chkconfig:
358010
#description:
Oracleautostart-stopscript.
#
#SetORA_HOMEtobeequivalenttothe$ORACLE_HOME
#fromwhichyouwishtoexecutedbstartanddbshut;
#
#SetORA_OWNERtotheuseridoftheownerofthe
#OracledatabaseinORA_HOME.
ORA_HOME=/opt/oracle/102
ORA_OWNER=oracle
if[!
-f$ORA_HOME/bin/dbstart]
then
echo"Oraclestartup:
cannotstart"
exit
fi
case"$1"in
'start')
#StarttheOracledatabases:
echo"StartingOracleDatabases..."
echo"-------------------------------------------------">>/var/log/oracle
date+"%T%a%D:
StartingOracleDatabasesaspartofsystemup.">>/var/log/oracle
echo"-------------------------------------------------">>/var/log/oracle
su-$ORA_OWNER-c"$ORA_HOME/bin/dbstart">>/var/log/oracle
echo"Done"
#StarttheListener:
echo"StartingOracleListeners..."
echo"-------------------------------------------------">>/var/log/oracle
date+"%T%a%D:
StartingOracleListenersaspartofsystemup.">>/var/log/oracle
echo"-------------------------------------------------">>/var/log/oracle
su-$ORA_OWNER-c"$ORA_HOME/bin/lsnrctlstart">>/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')
#StoptheOracleListener:
echo"StopingOracleListeners..."
echo"-------------------------------------------------">>/var/log/oracle
date+"%T%a%D:
StopingOracleListeneraspartofsystemdown.">>/var/log/oracle
echo"-------------------------------------------------">>/var/log/oracle
su-$ORA_OWNER-c"$ORA_HOME/bin/lsnrctlstop">>/var/log/oracle
echo"Done."
rm-f/var/lock/subsys/oracle
#StoptheOracleDatabase:
echo"StopingOracleDatabases..."
echo"-------------------------------------------------">>/var/log/oracle
date+"%T%a%D:
StopingOracleDatabasesaspartofsystemdown.">>/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')
$0stop
$0start
;;
esac
3.改变文件权限
#chmod755/etc/init.d/oracle
4.添加服务
#chkconfig--level35oracleon
5.需要在关机或重启机器之前停止数据库,做一下操作
#ln-s/etc/init.d/oracle/etc/rc0.d/K01oracle //关机
#ln-s/etc/init.d/oracle/etc/rc6.d/K01oracle //重启
6.使用方法
#serviceoraclestart //启动oracle
#serviceoraclestop //关闭oracle
#serviceoraclerestart //重启oracle
7.测试
a.开机自启动
Lastlogin:
MonNov2619:
57:
062012from10.0.0.145
[root@ORS~]#su-oracle
[oracle@ORS~]$sqlplus"/assysdba"
SQL*Plus:
Release10.2.0.1.0-ProductiononMonNov2620:
07:
332012
Copyright(c)1982,2005,Oracle. Allrightsreserved.
Connectedto:
OracleDatabase10gEnterpriseEditionRelease10.2.0.1.0-Production
WiththePartitioning,OLAPandDataMiningoptions
SQL>setlinesize300;
SQL>setpagesize30;
SQL>select*fromscott.emp;
EMPNOENAME JOB MGRHIREDATE SAL COMM DEPTNO
------------------------------------------------------------------------------
7369SMITH CLERK 790217-DEC-80 800 20
7499ALLEN SALESMAN 769820-FEB-81 1600 300 30
7521WARD SALESMAN 769822-FEB-81 1250 500 30
7566JONES MANAGER 783902-APR-81 2975 20
7654MARTIN SALESMAN 769828-SEP-81 1250 1400 30
7698BLAKE MANAGER 783901-MAY-81 2850 30
7782CLARK MANAGER 783909-JUN-81 2450 10
7788SCOTT ANALYST 756619-APR-87 3000 20
7839KING PRESIDENT 17-NOV-81 5000 10
7844TURNER SALESMAN 769808-SEP-81 1500 0 30
7876ADAMS CLERK 778823-MAY-87 1100 20
7900JAMES CLERK 769803-DEC-81 950 30
7902FORD ANALYST 756603-DEC-81 3000 20
7934MILLER CLERK 778223-JAN-82 1300 10
14rowsselected.
SQL>
b.serviceoraclestop
SQL>DisconnectedfromOracleDatabase10gEnterpriseEditionRelease10.2.0.1.0-Production
WiththePartitioning,OLAPandDataMiningoptions
[oracle@ORS~]$logout
[root@ORS~]#serviceoraclestop
StopingOracleListeners...
Done.
StopingOracleDatabases...
Done.
[root@ORS~]#su-oracle
[oracle@ORS~]$sqlplus"/assysdba"
SQL*Plus:
Release10.2.0.1.0-ProductiononMonNov2620:
17:
202012
Copyright(c)1982,2005,Oracle.Allrightsreserved.
Connectedtoanidleinstance.
SQL>setlinesize300;
SQL>setpagesize30;
SQL>select*fromscott.emp;
select*fromscott.emp
*
ERRORatline1:
ORA-01034:
ORACLEnotavailable
SQL>
c.serviceoraclestart
SQL>Disconnected
[oracle@ORS~]$logout
[root@ORS~]#serviceoraclestart
StartingOracleDatabases...
Done
StartingOracleListeners...
Done.
[root@ORS~]#
d.serviceoraclerestart
[root@ORS~]#serviceoraclerestart
StopingOracleListeners...
Done.
StopingOracleDatabases...
Done.
StartingOracleDatabases...
Done
StartingOracleListeners...
Done.
[root@ORS~]#
至此,Oracle服务启动&停止脚本与开机自启动设置完毕。
CentOS6.3(x32)下安装Oracle10gR2
ORA-12514:
TNS:
listener does not currently know of service requested in connect descriptor
(2011-06-2217:
17:
24)
转载▼
标签:
杂谈
分类:
学习心得
出现这种问题的情况一般是两种:
1.看看是不是监听服务没有起来
2.检查有没有修改IP地址,计算机名称
除此之外在网上查资料的时候还有一种:
如下:
这个错误是因为Listener出了问题,请检查一下你的listener.ora文件,看下是否存在如下配置:
SID_LIST_LISTENER=
(SID_LIST=
(SID_DESC=
(SID_NAME=PLSExtProc)
(ORACLE_HOME=E:
\oracle\product\10.2.0\db_1)
(PROGRAM=extproc)
)
)
如果说是这样,那么请将一段改成
SID_LIST_LISTENER=
(SID_LIST=
(SID_DESC=
(SID_NAME=PLSExtProc)
(ORACLE_HOME=E:
\oracle\product\10.2.0\db_1)
(PROGRAM=extproc)
)(SID_DESC=
(GLOBAL_DBNAME=ORCL)
(ORACLE_HOME=E:
\oracle\product\10.2.0\db_1)
(SID_NAME=ORCL)
)
)
这样以后,关掉Service和LISTENER。
再启动Service和LISTENER,这样应该就可以了,注意顺序。
查了一下,网上是说,加上了面一段东西,意思是把LISTENER服务主动注册到进程监视器(pmon)中去。
所以,但你启动了Serivce后,启动LISTENER的时候,会主动去注册到进程监视器(pmon)中去。
所以不会有什么问题。
但是反过却不行。
如果说没有添加那一段,情况正好相反,是由实例的pmon进程在LISTENER中注册服务,LISTENER为被动注册。
所以需要先起LISTENER才可以。
总结一下,如果说你不加那段东西,那么就应该先起LISTENER,如果说你加了那段东西,就应该先起Serivce。
我试了一下,的确是这样。
不过在windows上,有时候会报错,重启一下再试就可以了
---------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------
第三种情况我试了,没能解决情况,我出问题的原因是第二种情况,由于从客户那回到公司(客户那里用的是代理上网)ip地址变了,所以我是这样改的:
找到oracle安装目录,一般都是这样的home\oracle\product\10.1.0\Db_1\NETWORK\ADMIN下的
tnsnames.ora文件
打开后添加
"你的IP" =
(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=TCP)(HOST="你的IP")(PORT=1521))
)
(CONNECT_DATA=
(SERVICE_NAME="你要连接的数据库名")
)
)
添加完后我的这个问题就解决完了,网上关于这个问题的解决方法貌似很多,依个人情况而定,写的不全,有没提到的希望多多补充