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

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

 

Oracle安装目录与环境:

 安装目录:/hywl/oracle/app/product/11.1.1/db_1
在CentOS 6.5下安装完Oracle 10g R2,重开机之后,你会发现Oracle没有自行启动,这是正常的,因为在Linux下安装Oracle的确不会自行启动,必须要自行设定相关参数,首先先介绍一般而言如何启动oracle。
登录到CentOS,切换到oracle用户权限
# su – oracle
接着输入:
$ sqlplus "/as sysdba"
原本的画面会变为
SQL>
接着请输入
SQL> startup
就可以正常的启动数据库了。
另外停止数据库的指令如下:
SQL> shutdown immediate
检查Oracle DB监听器是否正常
回到终端机模式,输入:
$ lsnrctl status
 检查看看监听器是否有启动
如果没有启动,可以输入:
$ lsnrctl start
启动监听器

SQL> conn sys as sysdba
然后输入密码,sys以sysdba身份登入数据库。
启动emctl
另外也可以发现
http://localhost.localdomain:1158/em 目前是没有反应的,这边要另外启动,启动的指令如下:
$ emctl start dbconsole
这个指令运行时间较长.
手动启动Oracle数据库完毕,下面创建系统自行启动Oracle的脚本。
如果无法访问,则需要查看防火墙配置,要打开http,https服务,以及1158,1521 端口
 
 一.修改oracle默认的启动脚本
1.修改dbstart和dbshut脚本
dbstart脚本默认值启动oracle服务,不启动监听服务,如果想在启动oracle服务的同时启动监听,就必须修改该脚本
将ORACLE_HOME_LISTNER值设为$ORACLE_HOME(原来是为$1)
 dbshut一样的道理,如果想关闭数据库服务的同时关闭监听服务也是将dbshut文件中的ORACLE_HOME_LISTNER值设为$ORACLE_HOME
本次安装中,应将以下路径的2个文件
/opt/oracle/app/product/11.2.0/dbhome_1/bin/dbstart
/opt/oracle/app/product/11.2.0/dbhome_1/bin/dbshut
中的 ORACLE_HOME_LISTNER=$1修改为ORACLE_HOME_LISTNER=$ORACLE_HOME


二.修改Oracle系统配置文件: /etc/oratab
修改Oracle系统配置文件:/etc/oratab,只有这样,Oracle 自带的dbstart和dbshut才能够发挥作用。
# vi /etc/oratab
orcl: /opt/oracle/app/product/11.2.0/dbhome_1:Y
 把原来的N改为Y
注:没有oratab(这个文件是oracle安装时执行如下脚本后生成的)这个文件,重新执行这两个脚本
/oradata/oraInventory/orainstRoot.sh
/opt/oracle/app/product/11.2.0/dbhome_1/root.sh

 

三.创建oracle自启动脚本
由于修改了dbstart和dbshut脚本,直接用这个脚本就可以实现oracle服务和监听的同时启动或关闭,因此该脚本启动或关闭数据库只要调用dbstart或dbshut脚本就可以了。如果采用默认不做修改,那么必须在该脚本中增加启动监听和关闭监听的语句
su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/lsnrctl start"
su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/lsnrctl stop"
如果想开机自动启动oem或关闭自动一起关闭oem,则采用如下语句:
su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/emctl start dbconsole"
su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/emctl stop dbconsole"
 
该脚本只是启动oracle监听和oracle服务,且已经做了dbstart脚本的修改,因此具体的脚本( /etc/init.d/hywl)如下:
 # !/bin/bash
# whoami
# root
# chkconfig: 2345 99 01
# /etc/init.d/hywl
# description: starts the oracle dabase deamons
#
ORACLE_HOME=/hywl/oracle/app/product/11.1.1/db_1
ORACLE_OWNER=oracle
case "$1" in
  start)
  echo -n "Starting hywl: "
  su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/dbstart"
  touch /var/lock/subsys/hywl
  echo
  ;;
stop)
  echo -n "shutting down hywl: "
  su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/dbshut"
  rm -f /var/lock/subsys/hywl
  echo
  ;;
restart)
  echo -n "restarting hywl: "
  $0 stop
  $0 start
  echo
  ;;
*)
  echo "Usage: `basename $0` start|stop|restart"
esac
 
四.赋予自启动脚本执行权限
chmod 775 /etc/init.d/hywl


五.增加配置服务
[root@localhost ~]# /sbin/chkconfig --add hywl
hywl服务不支持 chkconfig的原因:
“服务不支持 chkconfig”:——这个提示是因为oracle自启动脚本前面必须要有以下这两行
# chkconfig: 2345 99 01
#description:oracle 11g service
当然如果不采用这个命令进行配置服务,也可以手动方式创建文件链接来完成,如下所示:
文件链接
ln -s /etc/init.d/hywl /etc/rc.d/rc2.d/S99hywl

ln -s /etc/init.d/hywl /etc/rc.d/rc3.d/S99hywl
ln -s /etc/init.d/hywl /etc/rc.d/rc4.d/S99hywl
ln -s /etc/init.d/hywl /etc/rc.d/rc5.d/S99hywl
ln -s /etc/init.d/hywl /etc/rc.d/rc0.d/K01hywl
ln -s /etc/init.d/hywl /etc/rc.d/rc1.d/K01hywl
ln -s /etc/init.d/hywl /etc/rc.d/rc6.d/K01hywl
若想删除链接,执行如下:

rm -rf /etc/rc.d/rc2.d/S99hywl
rm -rf /etc/rc.d/rc3.d/S99hywl
rm -rf /etc/rc.d/rc4.d/S99hywl
rm -rf /etc/rc.d/rc5.d/S99hywl
rm -rf /etc/rc.d/rc0.d/K01hywl
rm -rf /etc/rc.d/rc1.d/K01hywl
rm -rf /etc/rc.d/rc6.d/K01hywl

 

六.测试是否配置成功
service hywl(oracle自启动脚本名称)--用于检查配置是否成功,如果有错误会有具体的输出,根据输出结果检查修改。
service hywl start 测试是否可以成功启动oracle
备注:
如果不创建oracle自启动脚本,可以直接在/etc/rc.d/rc.local文件中增加想启动的服务的语句即可
su - oracle -lc "/hywl/oracle/app/product/11.1.1/db_1/bin/dbstart"
su - oracle -lc "/hywl/oracle/app/product/11.1.1/db_1/bin/emctl start dbconsole"

设置完毕。

七.重启主机,查看数据库和监听是自启动

查看数据库:ps -ef | grep orcl

查看监听:lsnrctl status

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章