有时候会例行进行防火墙及机器断电应急演练,有些数据库没有设置自动开机启动,带来麻烦。
步骤:
1:查看ORACLE_HOME是否设置
2:执行dbstart 数据库自带启动脚本
3:编辑/etc/oratab文件
4:编辑/etc/rc.d/rc.local启动文件,添加数据库启动脚本dbstart
5:重启主机,查看数据库和监听是自启动
6:查看数据库是否处于open状态
[oracle@oracle10g bin]$ dbstart
ORACLE_HOME_LISTNER is not SET, unable to auto-start Oracle Net Listener
Usage: /u01/app/oracle/product/10.2.0/db_1/bin/dbstart ORACLE_HOME
错误提示:ORACLE_HOME_LISTNER 没有设置
[oracle@oracle10g bin]$ cd /u01/app/oracle/product/10.2.0/db_1/bin/
[oracle@oracle10g bin]$ ll | grep dbs
-rwxr-x--- 1 oracle oinstall 6582 Jan 1 2000 dbshut
-rwxr-x--- 1 oracle oinstall 14088 Jan 1 2000 dbstart
编辑 dbstart,将ORACLE_HOME_LISTNER=$1修改成
ORACLE_HOME_LISTNER=$ORACLE_HOME
前提是$ORACLE_HOME环境设置正确
编辑oratab
编辑/etc/oratab文件
dbca建库时都会自动创建/etc/oratab文件
将orcl:/u01/app/oracle/product/10.2.0/db_1:N 修改成
orcl:/u01/app/oracle/product/10.2.0/db_1:Y
添加启动脚本:
编辑/etc/rc.d/rc.local启动文件,添加数据库启动脚本dbstart
该文件必须使用root用户编辑
[root@oracle10g ~]# vi /etc/rc.d/rc.local
[root@oracle10g ~]# cat /etc/rc.d/rc.local
#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.
touch /var/lock/subsys/local
su - oracle -lc /u01/app/oracle/product/10.2.0/db_1/bin/dbstart
su - oracle -lc "/u01/app/oracle/product/10.2.0/db_1/bin/lsnrctl start"