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

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"

最新文章

  1. Java 抓取网页中的内容【持续更新】
  2. 自动滑动的banner图
  3. LCIS
  4. java 泛型编程学习
  5. LeetCode(228) Summary Ranges
  6. sql行转列和列转行(转)
  7. google map android api v2
  8. 那些年被我坑过的Python——不得不知(第二章)
  9. poj1363Rails(栈模拟)
  10. 【转载】CentOS 6.4下PXE+Kickstart无人值守安装操作系统
  11. Linux--Introduction and Basic commands(Part one)
  12. angular分页插件tm.pagination 解决触发二次请求的问题
  13. sencha touch 选择器
  14. 全渠道java b2b b2c o2o平台
  15. Sqlite数据库管理(SQLite Developer) v4.0.0.528 中文版+破解方法(申明:来源于网络)
  16. DW表格的简单应用 之(个人简历模板)
  17. 黄聪:HBuilder复制PHP项目后,【转到定位】功能失效
  18. 利用es-checker检测当前node对ES6的支持情况
  19. js---PC端滑动进度条
  20. DOS批处理 - 函数教程

热门文章

  1. Aspose.cell中的Excel模板导出数据
  2. .net 获取当前网页的的url
  3. 常用JQUERY插件大全
  4. javaweb 之 代理模式
  5. Oracle中的SAVEPOINT
  6. 项目随笔@Service("testService")-------第二篇
  7. webpack学习笔记(3)--webpack.config.js
  8. reMarkable安装教程
  9. 训练1-o
  10. 马上着手开发ios应用程序