Windows环境和Unix环境都能够实现Oracle数据库的自动启动。
Windows环境下:
实验方法相对简单,通过修改注册表或用oradim命令来实现:
oradim -edit <SID> -startmode [auto|manual] -shutmode [nomal|immediate|abort]
Unix环境下:
通过数据库自带的dbstart命令来实验.
命令: dbstart + {ORACLE_HOME的全路径}
原理:
1. 操作系统启动过程中,读取/etc/oratab文件,判断是否有哪些数据库是需要自动启动的(N代表不自动启动,Y代表自动启动)
ora10g:/u01/app/oracle/product/10.2.0:Y <<<<<<<<<自动启动
catdb:/u01/app/oracle/product/10.2.0:N <<<<<<<<<不自动启动
2. 调用dbstart命令启动监听器和数据库
查看脚本全路径为$ORACLE_HOME/bin/dbstart,会注意到:
监听器的启动受环境变量ORACLE_HOME_LISTNER影响
以LINUX环境操作过程为例:
1. 如下编辑/etc/oratab文件
[oracle@ora10g bdump]$ cat /etc/oratab
# This file is used by ORACLE utilities. It is created by root.sh
# and updated by the Database Configuration Assistant when creating
# a database.</span></p><p><span># A colon, ':', is used as the field terminator. A new line terminates
# the entry. Lines beginning with a pound sign, '#', are comments.
#
# Entries are of the form:
# $ORACLE_SID:$ORACLE_HOME:<N|Y>:
#
# The first and second fields are the system identifier and home
# directory of the database respectively. The third filed indicates
# to the dbstart utility that the database should , "Y", or should not,
# "N", be brought up at system boot time.
#
# Multiple entries with the same $ORACLE_SID are not allowed.
#
#
ora10g:/u01/app/oracle/product/10.2.0:Y <<<<<<<<<<<<<<<<<<<<
catdb:/u01/app/oracle/product/10.2.0:N
注: 数据库实例为ora10g,它的安装目录位置/u01/app/oracle/product/10.2.0,开户自动启动
2. 添加dbstart命令至rc.local.如下:
[oracle@ora10g bdump]$ cat /etc/rc.local
#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.
touch /var/lock/subsys/local
su - oracle -c "dbstart /u01/app/oracle/product/10.2.0" <<<<<<<<<<<<<<<<<<<<<全路径根据你的实际情况来定
至此,自动启动的环境准备完成了.可以通过dbstart +{数据库安装目录全路径}来做测试或重启验证了...