日期:2014-05-16  浏览次数:20572 次

suse linux 下自动启动、关闭数据库
软件版本
  suse10
  oracle11G

第一步:
以oracle账号进入系统,进入oracle目录中寻找查看启动与关闭指令是否存在
#cd $ORACLE_HOME/bin


第二步:
查看启动脚本是否存在
# ls dbstart

# ls dbshut


第三步:
查看oratab中的内容,oratab文件在/opt/oratab中,
修改允许oracle是否开机启动 为Y
orcl:/oracle/product/10.2/db_1:Y

执行#source oratab 使之生效

第四步:
执行$ORACLE_HOME/bin下的dbstart 指令,看看是否能执行,如果这里不能执行,那么oracle自启动将不可能完成,执行完之后到$ORACLE_HOME/startup.log中查看执行结果
./dbstart: Starting up database "orcl"
Tue May 29 00:26:23 CST 2012

SQL*Plus: Release 11.2.0.1.0 Production on Tue May 29 00:26:26 2012

Copyright (c) 1982, 2009, Oracle.  All rights reserved.

SQL> Connected to an idle instance.
SQL> ORACLE instance started.

Total System Global Area 1653518336 bytes
Fixed Size		    2213896 bytes
Variable Size		 1006635000 bytes
Database Buffers	  637534208 bytes
Redo Buffers		    7135232 bytes
Database mounted.
Database opened.
SQL> Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

如果出现上述结果,说明startup可用
第五步:
以root用户进入系统 在/etc/rc.id/init.id下执行下面脚本
#vi start_shut //自定义名称
#!/bin/sh 
ORACLE_HOME=/opt/oracle/product/10.2/db_1
OPT_=$1
case "$OPT_" in
start)
su - oracle -c "$ORACLE_HOME/bin/lsnrctl start"
su - oracle -c "$ORACLE_HOME/bin/dbstart"
chmod 1777 /tmp
chown sys:sys /tmp
exit 0;;
stop)
/bin/echo "$0:(stop)"
su - oracle -c "$ORACLE_HOME/bin/lsnrctl stop"
su - oracle -c "$ORACLE_HOME/bin/dbshut"
exit 0
;;
*)
/bin/echo ''
/bin/echo "Usage: $0 {start|stop|}"
/bin/echo ''
exit 0
;;esac

修改Shell脚本的start_shut的权限,使之可以被执行
#chmod 775 start_shut
#ls -l start_shut

第六步:设定oracle开机自动启动
进入下面的目录
#cd /etc/rc0.id

#ln -s /etc/rc.d/init.id /start_shut S99start_shut
#ln -s /etc/rc.d/init.id /start_shut k01start_shut

第七步:重启系统 执行sqlplus / as sysdba 则进入oracle的话 表示设置成功