在很多的企业级应用中,数据库是其中非常重要的一个组成部分。Oracle Database作为一款非常重量级的数据库,在各种场景下都扮演着非常重要的角色。但是,在某些场景下,仅仅只是安装好Oracle数据库还不能够满足业务需求,常常还需要配置自动启动。
Oracle 12c提供了非常方便的自动启动解决方案。我们只需要在数据库安装之后,进行简单的配置,就可以让Oracle数据库随着系统自动启动。这在一些需要长时间运行的服务中非常有用,可以让应用及时响应请求。
那么,在Oracle 12c中,要怎样进行自动启动的配置呢?首先,我们需要为Oracle数据库创建一个启动脚本。这个脚本会负责启动Oracle数据库,并且安装到系统的服务列表中,这样就可以随时随地启动数据库。
# For usage with chkconfig on RedHat Linux
# chkconfig: 35 80 30
# description: Oracle auto start-stop script.
#
# Set ORACLE_HOME to be equivalent to the $ORACLE_HOME
# from which you wish to execute dbstart and dbshut;
#
# Set ORACLE to the executable for dbstart and dbshut;
#
# Set the user and group IDs for UNIX/Linux
#
ORACLE_HOME=/u01/app/oracle/product/12.1.0.2/dbhome_1
ORACLE=oracle
PATH=$PATH:$ORACLE_HOME/bin
HOST=hostname
if [ ! -f /etc/oratab ]; then
echo "Expected file /etc/oratab does not exists. Please fix ORACLE_HOME and try again."
exit 1
fi
ORAENV_ASK=NO . oraenv > /dev/null
case "$1" in
'start')
echo -n "Starting Oracle: "
su - $ORACLE -c "$ORACLE_HOME/bin/dbstart $ORACLE_HOME" &
echo "OK"
;;
'stop')
echo -n "Shutting down Oracle: "
su - $ORACLE -c "$ORACLE_HOME/bin/dbshut $ORACLE_HOME" &
echo "OK"
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
;;
esac
上面的代码中,我们可以看到几个非常重要的参数。比如说,ORACLE_HOME代表Oracle数据库的安装路径,ORACLE代表Oracle数据库的用户,而PATH参数中则包含了Oracle数据库的可执行程序路径。
使用以上参数,我们就可以在Linux系统中将启动脚本配置为系统服务。通过service命令,我们可以获取到service服务的具体信息。你可以使用以下命令来验证一下service的功能:
chkconfig --add oracle
chkconfig --level 35 oracle on
上述代码中,我们使用chkconfig命令将oracle服务添加到系统服务列表中,并且在运行级别3和5下启用自动启动。
在Oracle 12c中,我们还可以使用Oracle Restart自动管理机制来实现自动启动。对于生产环境中重要的数据库,这种配置方式更加建议使用。Oracle Restart负责监测数据库实例、监听器以及ASM实例的运行状态,在发现异常情况时可以自动恢复数据库服务。
不过,在使用Oracle Restart之前,我们还需要使用Grid Infrastructure进行安装。安装完成后,我们就可以在Oracle Restart专有服务中,查看到“target=ora.ons”、“target=ora.diskmon”、“target=ora.evmd”、“target=ora.ctssd”以及“target=ora.cssd”等服务。这意味着,我们可以对各个服务进行监测与管理。在数据库实例因为某种原因终止后,Oracle Restart可以自动重启服务,提高系统的可用性。
自动启动对于Oracle数据库而言,是非常实用的一种配置方式。通过Oracle Restart机制,我们可以保证数据库实例能够随时运行,并且能够在服务处于异常状态时及时恢复数据库服务。当然,具体的配置方式还需要根据环境的不同进行调整,但总体而言,Oracle 12c已经提供了非常丰富的配置方式来应对各种需求。