- 概述
让数据库在操作系统启动的时候自动启动,会让数据库的维护变得更加简单、方便。
曾经写过一篇在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,内容如下:
- #!/bin/sh
- #chkconfig: 2345 80 80
- #description:oracle_linuxdb
- #
- # /etc/rc.d/init.d/oracle_linuxdb
- # auto start database LINUXDB instance
- #set oracle env
- export ORACLE_BASE=/home/ora/ora9
- export ORACLE_HOME=$ORACLE_BASE/oracle
- export PATH=$PATH:$ORACLE_HOME/bin
- ORACLE_USER=ora
- #start or stop script
- case $1 in
- start)
- su - "$ORACLE_USER" <<EOO
- export ORACLE_SID=linuxdb
- lsnrctl start LISTENER_LINUXDB
- sqlplus /nolog<<EOS
- connect / as sysdba
- startup
- EOS
- EOO
- ;;
- stop)
- su - "$ORACLE_USER" <<EOO
- export ORACLE_SID=linuxdb
- lsnrctl stop LISTENER_LINUXDB
- sqlplus /nolog<<EOS
- connect / as sysdba
- shutdown immediate
- EOS
- EOO
- ;;
- *)
- echo "Usage: $0 {start|stop}"
- ;;
- esac
在上面的代码是一个shell脚本,首先设置oracle相关的环境变量,注意ORACLE_SID指定了启动 的实例名。
然后赋予oracle_linuxdb执行权限,执行命令:chmod +x oracle_linuxdb
下面可以运行该脚 本,进行测试。
启动,运行命令:./oracle_linuxdb start
关闭,执行命令:./oracle_linuxdb stop
可以用sqlplus user/pass@tnsname来测试启动和关闭数据库是否成功。
创建文件 oracle_wldev,用于启动数据库实例wldev,内容如下:
- #!/bin/sh
- #chkconfig: 2345 80 80
- #description:oracle_wldev
- #
- # /etc/rc.d/init.d/oracle_wldev
- # auto start database WLDEV instance
- #set oracle env
- export ORACLE_BASE=/home/ora/ora9
- export ORACLE_HOME=$ORACLE_BASE/oracle
- export PATH=$PATH:$ORACLE_HOME/bin
- ORACLE_USER=ora
- #start or stop script
- case $1 in
- start)
- su - "$ORACLE_USER" <<EOO
- export ORACLE_SID=wldev
- lsnrctl start LISTENER_WLDEV
- sqlplus /nolog<<EOS
- connect / as sysdba
- startup
- EOS
- EOO
- ;;
- stop)
- su - "$ORACLE_USER" <<EOO
- export ORACLE_SID=wldev
- lsnrctl stop LISTENER_WLDEV
- sqlplus /nolog<<EOS
- connect / as sysdba
- shutdown immediate
- EOS
- EOO
- ;;
- *)
- echo "Usage: $0 {start|stop}"
- ;;
- esac
然后赋予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查看。
linux自动启动 oracle
最新推荐文章于 2024-09-20 10:18:03 发布