在这个过程中需要设计的几个文件:
文件1:$ORACLE_HOME/bin/dbstart
文件2:$ORACLE_HOME/bin/dbshut
文件3:/etc/oratab(需要自己从$ORACLE_HOME/install/目录下拷贝)
文件4:/etc/rc.d/oracle11g(需要自己创建)
CentOS中Oracle11g安装完毕以后,如果重新启动Linux ,Oracle是不会自动启动的,我们可以通过手动调用dbstart命令来进行启动。我们可以通过配置Oracle的自动启动脚本,然后利用CentOS的Service来启动Oracle服务器。
文件1:
Oracle11g安装完成后,提供dbstart,dbshut两个服务控制脚本,用来控制oracle的启动与关闭.
dbstart文件受/etc/oratab控制
dbstart文件只能启动/etc/oratab文件中第三列为Y的SID
修改dbstart文件中ORACLE_HOME_LITENER,修改了dbstart文件中ORACLE_HOME_LITENER=${ORACLE_HOME}后,可以手动运行dbstart文件,来测试是否可以正确启动oracle11g
用法:./dbstart $ORACLE_HOME 就可以启动oracle11g
文件2:
不必修改
用法:./dbshut $ORACLE_HOME 就可以关闭oracle11g
文件3:
/etc/oratab文件内容
#SID;ORACLE_HOME;是否自动启动标志位
orcl; orcl:/opt/oracle/app/oracle/product/11.1.0/db_1:Y
文件4:
首先以root身份在/etc/rc.d/init.d/目录下创建Oracle11g的服务文件。
touch oracle11g
chmod a+x oracle11g
然后修改这个文件内容如下:
# !/bin/bash
# whoami
# root
# chkconfig: 345 51 49
# description: starts the oracle dabase deamons
#
#ORACLE_HOME=/opt/oracle
ORACLE_OWNER=oracle
ORACLE_DESC="Oracle 11g"
ORACLE_LOCK=/var/lock/subsys/oracle11g
case "$1" in
'start')
echo -n \"Starting ${ORACLE_DESC}:\"
runuser - $ORACLE_OWNER -c '$ORACLE_HOME/bin/lsnrctl start'
runuser - $ORACLE_OWNER -c '$ORACLE_HOME/bin/dbstart'
runuser - $ORACLE_OWNER -c '$ORACLE_HOME/bin/emctl start dbconsole'
touch ${ORACLE_LOCK}
echo
;;
'stop')
echo -n "shutting down ${ORACLE_DESC}: "
runuser - $ORACLE_OWNER -c '$ORACLE_HOME/bin/lsnrctl stop'
runuser - $ORACLE_OWNER -c '$ORACLE_HOME/bin/dbshut'
rm -f ${ORACLE_LOCK}
echo
;;
'restart')
echo -n "restarting ${ORACLE_DESC}:"
$0 stop
$0 start
echo
;;
*)
echo "usage: $0 { start | stop | restart }"
exit 1
esac
exit 0
注意:
从CentOS4开始如同RHEL一样采用了runuser命令,在以前版本,一般采用su命令,由于RHEL4的安全功能,使得su在自动执行过程中需要手工干涉,不再适合自动运行.
就可以远程通过IE访问oracle11了
clip_p_w_picpath002
在CentOS服务设置中出现oracle11g选项
clip_p_w_picpath004
这样重启机器后,oracle11g就可以启动了!
其他问题:
手动启动企业管理器
cd $ORACLE_HOME/bin
./emctl start dbconsole
参考文章:
1.在 Oracle Enterprise Linux 5 (32 位和 64 位)上安装 Oracle 数据库 11g 第 1 版
2.<&lt;Red Hat Enterprise Linux4.0网络管理与服务>&gt; 第十一章 oracle数据库服务