前言
linux下,oracle数据库安装完成后,默认是不随机启动的。我们可以手动调用dbstart命令启动数据库。
所以,需要我们利用centos的service配置oracle自启动服务。
涉及修改文件
- $ORACLE_HOME/bin/dbstart
- $ORACLE_HOME/bin/dbstop
- /etc/oratab
- /etc/rc.d/init.d/oracle11g(需要自己创建)
步骤
- 修改dbstart文件
找到 ORACLE_HOME_LISTNER=$1 这行, 修改成:
ORACLE_HOME_LISTNER=$ORACLE_HOME
完成后可以手动运行dbstart文件,来测试是否可以正确启动oracle11g
用法:./dbstart $ORACLE_HOME 就可以启动oracle11g - 修改dbstop文件
同dbstart文件步骤。 - 修改oratab文件
dbstart文件受/etc/oratab控制,dbstart文件只能启动/etc/oratab文件中第三列为Y的SID。
所以将需要启动的oracle实例标志位改成Y,详情可以参见下图: - 创建oracle11g文件
先创建oracle11g文件,并修改权限:
123cd
/etc/rc
.d
/init
.d/
touch
oracle11g
chmod
a+x oracle11g
然后,修改该文件内容如下:
12345678910111213141516171819202122232425262728293031323334353637# !/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
完成后,执行以下命令:
chkconfig --level
345
oracle on
chkconfig --add oracle
完成后,重启服务器,测试连接。