- 概述
让数据库在操作系统启动的时候自动启动,会让数据库的维护变得更加简单、方便。
曾经写过一篇在linux自动启动oracle的文章“linux下Oracle自动启动与停止(一)”http://blog.csdn.net/chenxiaohua/archive/2008/02/26/2121878.aspx。该文章的方法需要用到/etc/oratab、$ORACLE_HOME/bin/dbstart和$ORACLE_HOME/bin/dbshut,显得不够灵活。下面讲解另外一个方法自动启动多个oracle实例和监听器。
文章“创建、启动oracle数据库”讲述了怎样创建多个数据库和实例,并启动这些实例,现在将讲述怎样在系统启动的时候,自动启动这些数据库。
- 编写脚本
用root用户,进入进入目录/etc/rc.d/init.d,创建文件oracle_linuxdb,该脚本用于启动实例linuxdb,内容如下:
在上面的代码是一个shell脚本,首先设置oracle相关的环境变量,注意ORACLE_SID指定了启动的实例名。
然后赋予oracle_linuxdb执行权限,执行命令:chmod +x oracle_linuxdb
下面可以运行该脚本,进行测试。
启动,运行命令:./oracle_linuxdb start
关闭,执行命令:./oracle_linuxdb stop
可以用sqlplus user/pass@tnsname来测试启动和关闭数据库是否成功。
创建文件oracle_wldev,用于启动数据库实例wldev,内容如下:
然后赋予oracle_wldev执行权限,执行命令:chmod +x oracle_wldev
下面可以运行该脚本,进行测试。
启动,运行命令:./oracle_wldev start
关闭,执行命令:./oracle_wldev stop
可以用sqlplus user/pass@tnsname来测试启动和关闭数据库是否成功。
现在有了启动和关闭oracle的脚本,只要把这些脚本设置好,让系统在启动和关闭的时候,自动执行就好了。
- 发布
执行如下命令:
chkconfig --add oracle_linuxdb
chkconfig --add oracle_wldev
chkconfig命令运行成功后,在rc2.d,rc3.d,rc4.d,rc5.d下面建立了S80oracle_linuxdb和S80oracle_wldev两个连接文件,可以在系统启动的时候,运行脚本启动数据库。在rc0.d、rc1.d和rc6.d目录下面建立了K80oracle_linuxdb和K80oracle_wldev文件,用于在系统关闭的时候自动运行脚本关闭数据库。
关于chkconfig的用法,可以通过man chkconfig查看。