linux系统oracle服务自启动

终于知道为什么自启动脚本一直无法成功执行,原来都是空格不对惹的祸。具体步骤说明如下:

1.修改dbstart和dbshut脚本

dbstart脚本默认值启动oracle服务,不启动监听服务,如果想在启动oracle服务的同时启动监听,就必须修改该脚本

将ORACLE_HOME_LISTNER值设为$ORACLE_HOME(原来是为$1)

dbshut一样的道理,如果想关闭数据库服务的同时关闭监听服务也是将dbshut文件中的ORACLE_HOME_LISTNER值设为$ORACLE_HOME

2.创建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脚本的修改,因此具体的脚本如下:

# !/bin/bash

# whoami

# root

# chkconfig: 2345 99 01

# /etc/init.d/orcl

# description: starts the oracle dabase deamons

#

ORACLE_HOME=/oradata/oracle/112

ORACLE_OWNER=oracle

case "$1" in

start)

  echo -n "Starting orcl: "

  su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/dbstart"

  touch /var/lock/subsys/orcl

  echo

  ;;

stop)

  echo -n "shutting down orcl: "

  su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/dbshut"

  rm -f /var/lock/subsys/orcl

  echo

  ;;

restart)

  echo -n "restarting orcl: "

  $0 stop

  $0 start

  echo

  ;;

  *)

  echo "Usage: `basename $0` start|stop|restart"

esac

注:原先直接从网上拷贝了脚本, 如

#!/bin/bash 这句话,前面按理是只有两个空格的,直接将这句话拷贝到linux系统后,只表示两个空格(在linux系统实际上是4个空格了,其实表示了换行加回车),因此拷贝到linux系统后,先将该非正常空格去掉。

3.赋予自启动脚本执行权限

chmod 775 /etc/init.d/orcl

4. 增加配置服务

[[email protected] ~]# /sbin/chkconfig --add orcl
orcl 服务不支持 chkconfig

“服务不支持 chkconfig”:——这个提示是因为oracle自启动脚本前面必须要有以下这两行
#chkconfig: 2345 00 01
#description:oracle 11g service

当然如果不采用这个命令进行配置服务,也可以手动方式创建文件链接来完成,如下所示:

文件链接
ln -s /etc/init.d/orcl /etc/rc.d/rc2.d/S99orcl
ln -s /etc/init.d/orcl /etc/rc.d/rc3.d/S99orcl
ln -s /etc/init.d/orcl /etc/rc.d/rc4.d/S99orcl
ln -s /etc/init.d/orcl /etc/rc.d/rc5.d/S99orcl
ln -s /etc/init.d/orcl /etc/rc.d/rc0.d/K01orcl
ln -s /etc/init.d/orcl /etc/rc.d/rc1.d/K01orcl
ln -s /etc/init.d/orcl /etc/rc.d/rc6.d/K01orcl

若想删除链接,执行如下:

rm -rf /etc/rc.d/rc2.d/S99orcl
rm -rf /etc/rc.d/rc3.d/S99orcl
rm -rf /etc/rc.d/rc4.d/S99orcl
rm -rf /etc/rc.d/rc5.d/S99orcl
rm -rf /etc/rc.d/rc0.d/K0orcl
rm -rf /etc/rc.d/rc1.d/011orcl
rm -rf /etc/rc.d/rc6.d/S01orcl

5.修改 /etc/oratab 文件

vi /etc/oratab
  ORACLE_SID:ORACLE_HOME:Y   --  是否自启动将原来的N改成Y

注:没有oratab(这个文件是oracle安装时执行如下脚本后生成的)这个文件,重新执行这两个脚本
/oradata/oraInventory/orainstRoot.sh
/oradata/oracle/112/root.sh

6.测试是否配置成功

service orcl(oracle自启动脚本名称)--用于检查配置是否成功,如果有错误会有具体的输出,根据输出结果检查修改。

service orcl start 测试是否可以成功启动oracle

备注:

第二步可以替换,如果不创建oracle自启动脚本,可以直接在/etc/rc.d/rc.local文件中增加想启动的服务的语句即可

su - oracle -c "/oradata/oracle/112/bin/dbstart"
su - oracle -c "/oradata/oracle/112/bin/emctl start dbconsole"

linux系统oracle服务自启动

时间: 2024-08-05 01:25:31

linux系统oracle服务自启动的相关文章

Linux系统Oracle 12cR2 RAC集群安装与维护管理(12.2)专题

风哥Linux系统Oracle 12cR2 RAC集群安装与维护管理(12.2)专题包括内容: Oracle数据库12cR2(项目实战之一):在Windows上安装Oracle12.2 Oracle数据库12cR2(项目实战之五):Oracle12.2 RAC集群实施与维护 Oracle数据库12cR2(项目实战之六):Oracle12.2 RAC集群管理之增删节点 Oracle数据库12cR2(项目实战之七):Oracle12.2 RAC集群管理之修改IP地址 视频学习地址:http://ed

windows系统访问linux系统samba服务案例

Windows访问linux系统samba服务 案例:某公司(xxxcompany)有研发部,运维部,网络部,人力资源部,财务部,综合部,采购部,市场部.这8个部门需要分享资源 要求: 研发部有自己的目录:devlopment.研发部的目录研发部所有员工和运维manager可以访问下载,但是只有研发manager可以下载,修改和上传 运维部有自己的目录:operation.运维部的目录运维部所有员工和研发manager可以访问下载,但是只有运维manager可以下载,修改和上传 网络部有自己的目

Linux下oracle开机自启动设置

今天在虚拟机安装完oracle数据库重启系统后想进入数据库却发现如下错误: 出现ORA-01034和ORA-27101的原因是多方面的:主要是oracle当前的服务不可用,shared memory realm does not exist,是因为oracle没有启动或没有正常启动.那么如何在Linux启动时自动启动Oracle监听和实例呢? 首先尝试使用oracle启动数据库的命令dbstart,可是发现又报错如下错误: ORACLE_HOME_LISTNER is not SET, unab

Linux下oracle开机自启动

1.以root身份登录到linux系统,编辑/etc/oratab文件,找到 testsid:/data/oracle/product/11.2.0/db_1:N ,改为 testsid:/data/oracle/product/11.2.0/db_1:Y 2.配置/etc/rc.d/rc.local,添加以下脚本: su oracle -lc "/data/oracle/product/11.2.0/db_1/bin/lsnrctl start" su oracle -lc /dat

Linux中设置服务自启动的三种方式

有时候我们需要Linux系统在开机的时候自动加载某些脚本或系统服务 主要用三种方式进行这一操作: ln -s                       在/etc/rc.d/rc*.d目录中建立/etc/init.d/服务的软链接(*代表0-6七个运行级别之一) chkonfig                命令行运行级别设置 ntsysv                   伪图形运行级别设置 注意:1.这三种方式主要用于以redhat为基础的发行版 2.如果还不知道运行级别是什么,那么最

[转]Linux中设置服务自启动的三种方式

from:http://www.cnblogs.com/nerxious/archive/2013/01/18/2866548.html 有时候我们需要Linux系统在开机的时候自动加载某些脚本或系统服务 主要用三种方式进行这一操作: ln -s                       在/etc/rc.d/rc*.d目录中建立/etc/init.d/服务的软链接(*代表0-6七个运行级别之一) chkonfig                命令行运行级别设置 ntsysv        

(转)Linux中设置服务自启动的三种方式

有时候我们需要Linux系统在开机的时候自动加载某些脚本或系统服务 主要用三种方式进行这一操作: ln -s                       在/etc/rc.d/rc*.d目录中建立/etc/init.d/服务的软链接(*代表0-6七个运行级别之一) chkonfig                命令行运行级别设置 ntsysv                   伪图形运行级别设置 注意:1.这三种方式主要用于以redhat为基础的发行版 2.如果还不知道运行级别是什么,那么最

linux系统网络服务命令(一)

一.linux系统联网设置 我们在装完linux系统后,首先就是要先配置网络服务,毕竟如果计算机不联网那其就是个计算器.配置网络功能时,刚开始比较简单快捷的是用dhclient命令(使用动态主机配置协议动态的配置网络接口的网络参数),下面介绍使用配置文件来定义静态网络地址并链接互联网. 1.配置网卡文件: [[email protected] ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0  DEVICE=eth0 //此配置关联至的设备.设备

Linux系统Oracle启动、关闭

Linux系统启动Oracle命令 su - oracle sqlplus /nolog conn /as sysdba startup exit lsnrctl start exit Linux系统关闭Oracle命令 su - oracle sqlplus /nolog conn /as sysdba shutdown immediate exit lsnrctl stop exit Windwos Server系统启动Oracle命令 lsnrctl start net start Ora