方法一:使用oracle自带的启动和关闭脚本

1. oracle用户修改/etc/oratab 文件:

  1. $ vi /etc/oratab
  2. orcl:/oracle/app/product/10.2.0/db_1:N

改为:

orcl:/oracle/app/product/10.2.0/db_1:Y

也就是将最后的N改为Y,允许在系统启动时运行dbstart启动数据库。

2. oracle用户修改$ORACLE_HOME/bin/dbstart文件:

  1. # su - oracle
  2. $ cd $ORACLE_HOME/bin
  3. $ vi dbstart

找到 ORACLE_HOME_LISTNER=.....这行, 修改成

ORACLE_HOME_LISTNER=/u01/app/oracle/product/10.1.0/db_1

或者直接修改成:

ORACLE_HOME_LISTNER=$ORACLE_HOME

3. 测试运行 dbshut, dbstart

看能否启动oracle 服务及listener服务:

3.1. 执行相应的脚本进行测试

  1. #su - oracle
  2. $cd $ORACLE_HOME/bin
  3. $./dbstart              (启动数据库和监听)
  4. $ ps -efw | grep ora_      (查看数据库进程是否启动)
  5. $ lsnrctl status          (查看监听状态)
  6. $ ps -efw | grep LISTEN | grep -v grep (查看监听进程,去除grep查询本身)
  7. $./dbshut              (关闭数据库,监听不会关闭,需要手动停止)

3.2. 修改dbstart和dbshut的日志文件的权限:

  1. $su - root
  2. #cd $ORACLE_HOME
  3. #chown oracle:oinstall startup.log
  4. #chown oracle:oinstall shutdown.log

注:startup.log 和shutdown.log 可能没有,当你运行 ./dbstart 和 ./dbshut 之后才自动创建。

4. 创建服务

  1. $su - root
  2. # cd /etc/rc.d/init.d/
  3. # vi oracle                 (oracle为将安装到系统的服务名,可任取)

有两种脚本可选,启动内容不同。

根据自己的环境修改环境变量配置部分(蓝色字体位置)

脚本1(启动数据库、监听、dbconsole、sqlplus)

以下红色字体的3行是必需的

345:定义运行级别

80:开机时服务启动优先级(数字越小启动越早)

10:关机时服务停止优先级(数字越小关闭越早)

  1. #!/bin/bash
  2. # chkconfig: 345 80 10
  3. # description: Startup Script for oracle Databases
  4. # /etc/rc.d/init.d/oracle
  5. export ORACLE_BASE=/u01/oracle
  6. export ORACLE_HOME=/u01/oracle/product
  7. export ORACLE_SID=pa
  8. export PATH=$PATH:$ORACLE_HOME/bin
  9. ORA_OWNR="oracle"
  10. # if the executables do not exist -- display error
  11. if [ ! -f $ORACLE_HOME/bin/dbstart -o ! -d $ORACLE_HOME ]
  12. then
  13. echo "oracle startup: cannot start"
  14. exit 1
  15. fi
  16. # depending on parameter -- startup, shutdown, restart
  17. # of the instance and listener or usage display
  18. case "$1" in
  19. start)
  20. # oracle listener and instance startup
  21. echo -n "Starting oracle: "
  22. su - $ORA_OWNR -c "$ORACLE_HOME/bin/dbstart"
  23. touch /var/lock/oracle
  24. su - $ORA_OWNR -c "$ORACLE_HOME/bin/emctl start dbconsole"
  25. su - $ORA_OWNR -c "$ORACLE_HOME/bin/isqlplusctl start"
  26. echo "OK"
  27. ;;
  28. stop)
  29. # oracle listener and instance shutdown
  30. echo -n "Shutdown oracle: "
  31. su - $ORA_OWNR -c "$ORACLE_HOME/bin/emctl stop dbconsole"
  32. su - $ORA_OWNR -c "$ORACLE_HOME/bin/isqlplusctl stop"
  33. su - $ORA_OWNR -c "$ORACLE_HOME/bin/dbshut"
  34. su - $ORA_OWNR -c "$ORACLE_HOME/bin/lsnrctl stop"
  35. rm -f /var/lock/oracle
  36. echo "OK"
  37. ;;
  38. reload|restart)
  39. $0 stop
  40. $0 start
  41. ;;
  42. *)
  43. echo "Usage: `basename $0` start|stop|restart|reload"
  44. exit 1
  45. esac
  46. exit 0

脚本2(只启动数据库和监听)

以下红色字体的3行是必需的

345:定义运行级别

80:开机时服务启动优先级(数字越小启动越早)

10:关机时服务停止优先级(数字越小关闭越早)

  1. #!/bin/bash
  2. # chkconfig: 345 80 10
  3. # description: Startup Script for oracle Databases
  4. # /etc/rc.d/init.d/oracle
  5. export ORACLE_BASE=/u01/oracle
  6. export ORACLE_HOME=/u01/oracle/product
  7. export ORACLE_SID=pa
  8. export PATH=$PATH:$ORACLE_HOME/bin
  9. case "$1" in
  10. start)
  11. su oracle -c $ORACLE_HOME/bin/dbstart
  12. touch /var/lock/oracle
  13. echo "OK"
  14. ;;
  15. stop)
  16. echo -n "Shutdown oracle: "
  17. su oracle -c $ORACLE_HOME/bin/dbshut
  18. rm -f /var/lock/oracle
  19. echo "OK"
  20. ;;
  21. *)
  22. echo "Usage: 'basename $0' start|stop"
  23. exit 1
  24. esac
  25. exit 0

保存退出。

打开终端执行:

  1. $su - root
  2. #chown oracle.oinstall /etc/rc.d/init.d/oracle
  3. #chmod 775 /etc/rc.d/init.d/oracle

然后执行:

  1. #chkconfig --add oracle

或者运行如下命令

  1. #chkconfig --level 345 oracle on
  2. #chkconfig --list oracle

正常输出:

oracle 0:off 1:off 2:off 3:on 4:on 5:on 6:off

5. 检查

根据上面的运行结果,当相应的运行级别为on时(例如:5:on),在对应的/etc/rc.d/rcN.d(例如:和

5:on对应的是:/etc/rc.d/rc5.d)下面会生成一个文件:S99oradbstart,使用vi S99oradbstart打开

该文件,可以看到该文件的内容和/etc/rc.d/init.d/oradbstart内容相同,表示配置成功,其实

S99oradbstart是一个到/etc/rc.d/init.d/oradbstart的链接,我们可以使用file命令来查看:

  1. $file /etc/rc.d/rc5.d/S99oradbstart
  2. S99oradbstart:symbolic link to '../init.d/oradbstart

这样开机后,oracle服务将自启动。

也可以手动控制服务运行:

#service oracle start   启动

#service oracle stop    关闭

$ps -ef | grep ora 查看oracle相关的进程是否启动了

6. 一点说明:

6.1 脚本文件中的:# chkconfig: 345 99 10

指出3,4,5级别启动这个服务,99是在相应的/etc/rc.d/rcN.d(N为前面指定的级别,这里是345)目录下生成的链接文件的序号(启动优先级别)S99oradbstart,10为在除前面指出的级别对应

的/etc/rc.d/rcN.d(N为除345之外的级别)目录生成的链接文件的序号(服务停止的优先级别)

K10oradbstart。

6.2 命令说明:

ps:监控后台进程

-e 显示所有进程。

-f 全格式。

-h 不显示标题。

   -l 长格式。

-w 宽输出。

grep:是linux下用于搜索输出内容中所含内容的一个命令。

1.例如我要搜索名为aaa.txt中的一串字符"bbb",可以用

cat aaa.txt|grep bbb

2.我要搜索当前目录含有bb的文件,可以用

ls |grep bb

例:ps -efw | grep LISTEN | grep -v grep:查看含有LISTEN的监听,除去含有grep的监听。

6.3 chkconfig:功能说明

检查,设置系统的各种服务。

语法:chkconfig [--add][--del][--list][系统服务] 或 chkconfig [--level <等级代号>][系统服务][on/off/reset]

补充说明:这是Red Hat公司遵循GPL规则所开发的程序,它可查询操作系统在每一个执行等级中会执行哪些系统服务,其中包括各类常驻服务。

参数:

 --add  增加所指定的系统服务,让chkconfig指令得以管理它,并同时在系统启动的叙述文件内增加相关数据。

 --del  删除所指定的系统服务,不再由chkconfig指令管理,并同时在系统启动的叙述文件内删除相关数据。

--list    列出所指定的系统服务。

 --level<等级代号>  指定读系统服务要在哪一个执行等级中开启或关毕。

注:runlevel可以认为是系统状态,形象一点,您可以认为runlevel有点象微软的windows操作系统中的 Normal,safemode,和Command prompt only。进入每个runlevel都需要启动或关闭相应的一系列服务(services),这些服务(services)以初始化脚本的方式放置于目录 /etc/rc.d/rc?.d/或者/etc/rc?.d

下面(?代表runlevel的对应序号)。

在大多数的linux发行版本中,通常有8个runlevel

Runlevel  System State

0  Halt the system

1   Single user mode

2  Basic multi user mode

3  Multi user mode

5  Multi user mode with GUI

6  Reboot the system

S, s  Single user mode

多数的桌面的linux系统缺省的runlevel是5,用户登陆时是图形界面;

而多数的服务器版本的linux系统缺省的runlevel是3,用户登陆时是字符界面;

runlevel 1和2除了调试之外很少使用;

runlevel s和S并不是直接给用户使用,而是用来为Single user mode作准备。

方法二:使用自建的启动和关闭脚本

1. 创建启动和关闭脚本

  1. # mkdir -p  /home/oracle/bin
  2. # cd  /home/oracle/bin
  3. # vi startora         (创建启动脚本)

脚本内容如下:

  1. sqlplus /nolog << EOF
  2. connect / as sysdba
  3. startup
  4. exit
  5. exit
  6. echo "oracle start ok!"
  7. # vi stopora          (创建关闭脚本)

脚本内容如下:

  1. sqlplus /nolog << EOF
  2. connect / as sysdba
  3. shutdown immediate
  4. exit
  5. exit
  6. echo "oracle  shutdown ok!"
  7. # chown oracle:oinstall startora  stopora
  8. # chmod 775 startora  stopora

2. 创建服务

  1. # cd /etc/rc.d/init.d
  2. # vi oracle

以下红色字体的3行是必需的,蓝色字体根据实际环境配置。

345:定义运行级别

80:开机时服务启动优先级(数字越小启动越早)

10:关机时服务停止优先级(数字越小关闭越早)

  1. #!/bin/bash
  2. # chkconfig: 345 80 10
  3. # description: Startup Script for oracle Databases
  4. export ORACLE_BASE=/u01/oracle
  5. export ORACLE_HOME=/u01/oracle/product
  6. export ORACLE_SID=pa
  7. export PATH=$PATH:$ORACLE_HOME/bin:/home/oracle/bin
  8. export ORA_OWNER=oracle
  9. case "" in
  10. "start")
  11. su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl start"
  12. su - $ORA_OWNER -c "/home/oracle/bin/startora"
  13. ;;
  14. "stop")
  15. su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl stop"
  16. su - $ORA_OWNER -c "/home/oracle/bin/stopora"
  17. ;;
  18. esac
  19. $su - root
  20. #chown oracle.oinstall /etc/rc.d/init.d/oracle
  21. #chmod 775 /etc/rc.d/init.d/oracle

然后执行:

#chkconfig --add oracle

或者运行如下命令

  1. #chkconfig --level 345 oracle on
  2. #chkconfig --list oracle

正常输出:

oracle 0:off 1:off 2:off 3:on 4:on 5:on 6:off

如何将Oracle安装为Linux服务的更多相关文章

  1. Oracle安装后,服务中没有监听器怎么处理?

    运行中输入netca 回车运行oracle net configuration assistant, 选择监听程序配置->下一步->接下来的步骤可以都选默认一直下一步到最后,即可.

  2. 全世界最详细的图形化VMware中linux环境下oracle安装(一)【weber出品必属精品】

    安装流程:前期准备工作--->安装ORACLE软件--->安装升级补丁--->安装odbc创建数据库--->安装监听器--->安装EM <前期准备工作> 安装 ...

  3. Linux Oracle安装

    lsnrctl status  // 查看linux系统oracle的监听状态lsnrctl start   // 启动linux系统oracle的监听状态 sqlplus /nolog  // 连接 ...

  4. Linux下安装配置SNMP服务

    一.安装snmp服务 1.检查系统是否已经安装snmp的rpm包 以下是安装snmp服务需要的rpm包: libsensors3-2.10.6-55.el5.i386.rpm lm_sensors-2 ...

  5. 【无网条件下】Linux系统、jdk、redis及集群、rabbitmq、nginx、weblogic和oracle安装及配置

    本篇文章为原创,仅供参考使用,如果需要文章中提到的所有软件安装包和依赖包(即data),请以博客园邮箱联系获取链接. 准备资料 软件 主要软件包版本 路径 系统镜像 CentOS-6.10-x86_6 ...

  6. 【Linux】将Oracle安装目录从根目录下迁移到逻辑卷

    [Linux]将Oracle安装目录从根目录下迁移到逻辑卷 1.1  BLOG文档结构图 1.2  前言部分 1.2.1  导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到 ...

  7. windows 安装oracle 后,所有服务都是什么意思,需要开户吗?

    中的方法成功安装Oracle 11g后,共有7个服务,这七个服务的含义分别为: 1. Oracle ORCL VSS Writer Service: Oracle卷映射拷贝写入服务,VSS(Volum ...

  8. 在虚拟机上安装红帽Linux.5.5.for.x86.服务器版系统(按针对安装oracle 10g作的配置)

    在虚拟机上安装红帽Linux.5.5.for.x86.服务器版系统(按针对安装oracle 10g作的配置)   软件版本: 虚拟机版本:vmwareworkstation 7.11 build-28 ...

  9. 全世界最详细的图形化VMware中linux环境下oracle安装(二)【weber出品必属精品】

    <ORACLE 10.2.05版本的升级补丁安装> 首先我们解压 $ unzip p8202632_10205_LINUX.zip 解压后我们会发现多出了个文件夹,他是:Disk1,进入D ...

随机推荐

  1. python list列表 方法总结

    深入链表(most on lists) The list data type has some more methods. Here are all of the methods of list ob ...

  2. codeforce343A

    题目地址:http://codeforces.com/problemset/problem/343/A 比赛的时候就囧了,只推出a<b的时候最少需要b个电阻. 后来看了题解,知道 题意:用最少的 ...

  3. 携程SQL面试题忘大牛解答解决思路

    讨论地址:http://bbs.csdn.net/topics/380208742

  4. 对于IE6及以下版本的处

    判断IE6 CSS 通过判断浏览器类型而加载不同的css样式 所有的IE都起作用: <!--[if IE]> <link rel="stylesheet" typ ...

  5. react-native 环境配置及hello world

    一.前言 最近手头的工作繁多,有研究性的项目和系统研发,正好遇到同事离职,接手了框架的UI组件,不仅需要维护和填坑,还需要开发新的功能组件.因为身在H5-Hybird的框架部门,最近团队开始尝试使用R ...

  6. minicom与USB转串口

    实验器材:mini6410 连接方式:ARM板通过USB转串口线连接到pc机 下面是具体的设置了. 默认情况下,UBUNTU安装了USB转串口驱动(pl2303). 1.# lsmod | grep ...

  7. spring boot1.3.0版本及以上版本profile指定参数无法被打入

    现象:小于1.3.0版本如1.2.6的spring boot, 当指定profile进行参数打入的时候,发现没有问题,但是比如改用1.3.0,1.3.1及其以上版本的时候,发现参数打不进去,经过比对s ...

  8. canvas模糊事件处理

    不知道大家项目中有没有用到canvas时还有时候会出现模糊的情况: 具体推测可能是屏幕改变了,然而canvas的渲染对象并没有跟着一起变: 这里简单介绍个对象,window.devicePixelRa ...

  9. Hadoop: Start-all.sh 后发现JPS后Namenode没有启动

      重新格式化Namenode:hadoop namenode -format 然后启动hadoop:start-all.sh 执行下JPS命令就可以看到NameNode了

  10. 终极解法According to TLD or attribute directive in tag file, attribute select does not accept any expressions

    3天硬是是把这个问题解决了 有时候突然上个厕所灵感就来了 第一次向用JSTL解析xml 然后我想遍历整个xml文档打印出来 居然不让我输入变量 那让我怎么办啊 在网上各种找答案 说什么<%@ t ...