Chinaunix首页 | 论坛 | 博客
  • 博客访问: 486926
  • 博文数量: 80
  • 博客积分: 2393
  • 博客等级: 大尉
  • 技术积分: 1434
  • 用 户 组: 普通用户
  • 注册时间: 2007-12-03 21:46
个人简介

己所不欲勿施于人!

文章分类

全部博文(80)

文章存档

2017年(1)

2016年(9)

2014年(1)

2013年(17)

2012年(5)

2011年(13)

2010年(9)

2009年(8)

2008年(17)

分类: Oracle

2008-11-04 20:26:47

 

关于linuxoracle的自启动的问题,在网上类似的文章也很多。我写这篇主要是为了加深印象和以后查找方便(奈何记忆力减退啊!)。

一、关于linux的启动过程

要了解Oracle的自启动,那么就不能避开linux启动的问题。

Linux 所有的启动都是从/etc/inittab开始的,那么我们简单的看看这个文件:

 

#   0 - halt (Do NOT set initdefault to this)

#   1 - Single user mode

#   2 - Multiuser, without NFS (The same as 3, if you do not have networking)

#   3 - Full multiuser mode

#   4 - unused

#   5 - X11

#   6 - reboot (Do NOT set initdefault to this)

#

id:3:initdefault:

 

# System initialization.

si::sysinit:/etc/rc.d/rc.sysinit

 

l0:0:wait:/etc/rc.d/rc 0

l1:1:wait:/etc/rc.d/rc 1

l2:2:wait:/etc/rc.d/rc 2

l3:3:wait:/etc/rc.d/rc 3

l4:4:wait:/etc/rc.d/rc 4

l5:5:wait:/etc/rc.d/rc 5

l6:6:wait:/etc/rc.d/rc 6

 

简单起见,我们只看文件的这一部分就可以了!这部分比较简单,我想大家看一下也明白个大概了!

这部分主要说明了三件事:

1、从注释中,我们可以知道0-6运行级别所对应的含义

2、当前的默认运行级别为3Multiuser

3、下面System initialization

     如果系统当前的运行级别为3,那么转到执行 /etc/rc.d/rc3.d目录下的程序。(以下都以该运行级别说明)

 

那么接下来我们看看/etc/rc.d/rc3.d目录:

[oracle@orclrhel4 rc3.d]$ ls

K01tog-pegasus       K50tux      S08arptables_jf  S55cups

K02NetworkManager  K73ypbind  S08iptables        S55sshd

K05saslauthd          K74nscd     S09isdn             S56rawdevices

K10dc_server          K74ntpd     S09pcmcia          S56xinetd

 

其中以KKill)开头的文件是在该运行级别下不启动的程序。

S(start)开头的文件是在该运行级别下启动的程序,并且后面的数字越小的越先启动。

[oracle@orclrhel4 rc3.d]$ ls -l

lrwxrwxrwx  1 root root 28 Oct  9 20:30 S98cups-config-daemon -> ../init.d/cups-config-daemon

lrwxrwxrwx  1 root root 19 Oct  9 20:28 S98haldaemon -> ../init.d/haldaemon

lrwxrwxrwx  1 root root 11 Oct  9 20:28 S99local -> ../rc.local

lrwxrwxrwx  1 root root 18 Nov  2 18:16 S99oracle -> /etc/init.d/oracle

 

我们注意到,该目录下的文件都是链接文件,而且文件都指向了/etc/init.d目录。

 

可见,我们只要在该目录下创建一个链接文件(S99oracle),并指向/etc/init.d/oracle

 

如果你的系统的运行级别为5,那么同理

你在/etc/rc.d/rc5.d目录下创建一个链接文件(S99oracle),并指向/etc/init.d/oracle

二、关于Oracle的启动

   在这里我们使用Oracle自带的工具:$ORACLE_HOME/bin目录下的dbstart dbshut 以及lsnrctl 来启动监听。

说明:当你运行dbstart时,会报告一个错误!说没有找到oratab文件。

在我的系统中,该文件的在/etc/oratab,可是默认的不是这样(默认:/var/…/oratab不知道为什么!可能你的系统中不会有这类错误!)

你打开dbstart文件,修改一下ORATAB的路径就可以了!

1、修改文件/etc/oratab(路径可能不同)

     原内容:

    *:/u01/app/oracle/product/10.1.0/db_1:N

    orcl:/u01/app/oracle/product/10.1.0/db_1:N

    修改后:

    orcl:/u01/app/oracle/product/10.1.0/db_1:Y

    *:/u01/app/oracle/product/10.1.0/db_1:Y

2、接下来我们主要的工作就是编写/etc/init.d/oracle 文件,启动数据库和监听。

    由于内容比较多,也为了方便,我放到附件中了!

    创建完成后增加执行权限:

    [oracle@orclrhel4 init.d]$ chmod +x /etc/init.d/oracle

   [oracle@orclrhel4 init.d]$ ls -l

     -rwxr-xr-x  1 root root 1906 Nov  3 13:13 oracle

    重新启动。记不记得前面说的六个运行级别了,运行如下命令就可以重启:

    [oracle@orclrhel4 init.d]$ init 6

三、总结

     就写到这里了,其实Oracle的自启动其实并不难,也是最最基本的。

     希望我真的能帮助有需要的人(-_-!)

     以后继续努力吧!

阅读(1442) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~