linux平台下默认安装的oracle 10g数据库是没有启动而且不会随系统自动启动的。
配置oracle 10g数据库自启动的步骤如下:
1、配置/etc/oratab 文件
oratab文件中项的格式为
$ORACLE_SID:$ORACLE_HOME:N|Y
每个$ORACLE_SID只能有一个项
默认安装后,入口项的最后是N,将N修改为Y,使其可以通过dbstart工具启动
2、配置$Oracle_HOME/bin/dbstart文件
将dbstart文件中大约78行的ORACLE_HOME_LISTNER变量的值修改为$ORACLE_HOME所在的路径,此处为
ORACLE_HOME_LISTNER=/u01/app/oracle/product/10.2.0/db_1
3、运行dbstart,dbshut测试数据库是否正确启动和关闭
以oracle用户登陆,执行以下命令进行测试
$ dbstart
$ ps aux | grep ora_
$ ps aux | grep LISTEN
$ lsnrctl status
$ dbshut
数据库启动的日志文件为$ORACLE_HOME/startup.log,关闭的日志文件为$ORACLE_HOME/shutdown.log,监听器的日志文件$ORACLE_HOME/listener.log
4、创建启动init脚本
以root用户在/etc/init.d目录下创建文件oracle,其内容如下
#!/bin/sh
### BEGIN INIT INFO
# Provides: oracle
# Required-Start: $local_fs
# Required-Stop: $local_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description:oracle database init script
# Description: starts and stops oracle database and listeners
### END INIT INFO
set -e
ORACLE_HOME="/var/oracle/product/10.2.0/db_1"
ORACLE_OWNER="oracle"
do_start() {
echo "starting oracle databases..."
su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/dbstart $ORACLE_HOME" >> /var/log/oracle
touch /var/lock/oracle
echo "ok"
}
do_stop() {
echo "Stopping oracle databases..."
su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/dbshut $ORACLE_HOME" >> /var/log/oracle
rm -f /var/lock/oracle
echo "ok"
}
status() {
if [ -f /var/lock/oracle ]; then
echo "oracle database is running."
else
echo "oracle database is not running."
fi
}
case "$1" in
start)
do_start
;;
stop)
do_stop
;;
restart)
do_stop
do_start
;;
reload)
;;
force-reload)
;;
status)
status
;;
*)
echo "$0 {start|stop|restart|reload|force-reload|status}"
esac
exit 0
方法1:
然后在各个运行级对应的启动脚本目录下创建符号连接
#update-rc.d oracle defaults
还有一点,因为init脚本是用su切换到oracle用户执行数据库启动和关闭的,所以为了设置用户资源限制,需要为/etc/pam.d/su文件增添下面的行
session required pam_limits.so
方法2:
编辑/etc/init.d/rc.local
增加/etc/init.d/oracle start
配置完毕后,oracle数据库会随系统自动启动和关闭,手工控制以debian常见的方式进行
#/etc/init.d/oracle start|stop|status|restart
来源:oschina
链接:https://my.oschina.net/u/84549/blog/57917