Sunday, May 4, 2008

linux下设置oracle自启动

1. 创建文件/etc/oratab
#添加如下内容到/etc/oratab文件中,
#$ORACLE_SID是你的Oracle数据库的sid
#$ORACLE_HOME是你的Oracle数据库的Oracle_home
#Y表示要求在系统启动的时候启动Oracle数据库.N表示不要在系统启动的时候启动Oracle
$ORACLE_SID:$ORACLE_HOME:Y

2. 修改文件/etc/rc.local添加一下两行
##
## 关于su的具体命令参看linux的manual文档
##
su - oracle -c 'dbstart'
su - oracle -c 'lsnrctl start LISTENER'

环境变量设置:
编辑 /etc/profile
export ORACLE_BASE=/usr/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_2
export ORACLE_SID=orcl
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
export LC_CTYPE=en_US.UTF-8


转载, 通过脚本实现自启动:
#!/bin/sh
# Author: jackylau
# chkconfig: 345 99 99
# description: start or stop oracle
. /etc/rc.d/init.d/functions
#oracle_env
export ORACLE_BASE=/home/oracle
export ORACLE_HOME=$ORACLE_BASE/product/9.2.0
export PATH=$PATH:$ORACLE_HOME/bin
export ORACLE_SID=oradb
export ORACLE_TERM=vt100
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
oracle_user=oracle

#killproc
start(){
echo -n "starting oracle: "
su - "$oracle_user"<
lsnrctl start
sqlplus /nolog <
connect /as sysdba
startup
EOS
EOO
}
stop(){
echo -n "stoping oracle: "
su - "$oracle_user"<
lsnrctl stop
sqlplus /nolog <
connect /as sysdba
shutdown immediate
EOS
EOO
}
case "$1" in
start)
start
touch /var/lock/subsys/orad
;;
stop)
stop
rm -f /var/lock/subsys/orad
;;
status)
status oracle
;;
restart)
stop
sleep 3
start
;;
*)
echo "$0 {start|stop|status|restart}"
;;
esac
将此脚本cp到/etc/rc.d/init.d/目录下

加上可执行权限:
chmod 755 /etc/rc.d/init.d/orad
发布:
chkconfig --add orad
即可!

google blog gfw test

google blog gfw test