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

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. 增加配置服务

[root@localhost ~]# /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服务自启动的更多相关文章

  1. Linux 系统Telnet服务

    Linux 系统Telnet服务 telnet与ssh相比,安全性能并不高,但是在ssh版本升级或者其他的情况下还是需要开启这一项服务.linux提供服务是由运行在后台的守护进程daemon来执行的, ...

  2. Linux系统xinetd服务启动不了

    Linux系统xinetd服务启动不了 xinetd服务时发现xinetd服务启动不了,并出现错误提示xinetd:unrecognized service,当出现这个错误提示的时候说明系统未安装xi ...

  3. linux重启Oracle服务

    linux重启oracle服务命令(完整版) (1) 以oracle身份登录数据库,命令:su – oracle (2) 进入Sqlplus控制台,命令:sqlplus /nolog (3) 以系统管 ...

  4. Linux系统Apache服务 - 配置 HTTP 的虚拟机主机

    接Linux系统Apache服务 - 配置HTTP的默认主页 1.创建/srv目录,作为httpd的文件目录,并创建/srv/default/www和/srv/www1.example.com/www ...

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

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

  6. NO19 优化Linux系统--重要开机自启动服务--关闭自启动项

    **如何优化Linux系统: 1   不用root,添加普通用户,通过sudo授权管理.2   更改默认的远程连接SSH服务端口及禁止root用户远程连接.3   定时自动更新服务器时间.4   配置 ...

  7. Linux下oracle开机自启动服务

    如果每次重启操作系统都要进行以上操作好麻烦,那么如何让Oracle作为系统服务在开机的时候自动启动呢? Oracle在$ORACLE_HOME/bin下提供许多对数据库进行操作的脚本,其中dbstar ...

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

    转至:https://www.cnblogs.com/baihuitestsoftware/articles/6365431.html 在CentOS 6.3下安装完Oracle 10g R2,重开机 ...

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

    有时候我们需要Linux系统在开机的时候自动加载某些脚本或系统服务 主要用三种方式进行这一操作: ln -s                       在/etc/rc.d/rc*.d目录中建立/e ...

随机推荐

  1. oracle数据库rman备份与还原

    我是oracle 界的小白,由于公司领导要求,不得不硬着头皮在网上找rman备份还原的方法,废话不多说,具体看例子(window) 运行CMD: rman target 管理员账号/密码@orcl 备 ...

  2. Java 系列之spring学习--注解(三)

    一.注解 使用注解之前要开启自动扫描功能 <?xml version="1.0" encoding="UTF-8"?> <beans xmln ...

  3. Android Studio ( Linux) 创建模拟器报错

    Linux下Android studio创建模拟器最后一步报错 报错:An error occurred while creating the AVD. See idea.log for detail ...

  4. 如何防范自己的IP泄漏

    在正式进行各种“黑客行为”之前,黑客会采取各种手段,探测(也可以说“侦察”)对方的主机信息,以便决定使用何种最有效的方法达到自己的目的.来看看黑客是如何获知最基本的网络信息——对方的IP地址:以及用户 ...

  5. 离线安装ADT和sdk

    重装Eclipse.离线安装ADT.Android SDK 由于最新的ADT.Android SDK需要最新版本的Eclipse才能使用,我无奈的只好升级Eclipse.看看自己的Eclipse已经两 ...

  6. 路飞学城Python-Day108

    96-分页器1 批量插入的方式就不能用ORM的create()方式去做了,因为create就是对sql进行insert的操作,sql最好不要每次有一条数据就去进行插入,最好的方式就是插入一组数据 fr ...

  7. Nginx负载均衡health_check分析

    在Nginx负载均衡中,我们很难保证说每一台应用服务器都能一直正常的运行下去.但是我们可以通过设置Nginx来检测这些应用服务器,检测这些服务器当中不能访问的. Nginx的检测方式分为两种,一种是被 ...

  8. 代码检查工具sonarqube介绍及使用

    亲测有效 环境:springboot+gradle+jdk1.8+sonarqube7.4 一.说明: SonarQube为静态代码检查工具,采用B/S架构,帮助检查代码缺陷,改善代码质量,提高开发速 ...

  9. WEBGL学习【五】纹理贴图

    <html lang="zh-CN"> <!--服务器运行地址:http://127.0.0.1:8080/webgl/LearnNeHeWebGL/NeHeWe ...

  10. 计蒜客 阿里天池的新任务—简单( KMP水 )

    链接:传送门 思路:KMP模板题,直接生成 S 串,然后匹配一下 P 串在 S 串出现的次数,注意处理嵌套的情况即可,嵌套的情况即 S = "aaaaaa" ,P = " ...