11g oracle 随操作系统 自动启动

<一>. solaris 操作系统中 oracle 随操作系统自动启动


      
0.在listener.ora中添加
SID_LIST_LISTENER=
    (SID_LIST =
        (SID_DESC =
            (GLOBAL_DBNAME = soadb)
            (ORACLE_HOME = /u01/soaapp/oracle/db/product/11.2.0/dbhome_1)
            (SID_NAME = soadb)
        )
        (SID_DESC =
            (GLOBAL_DBNAME = eipdb)
            (ORACLE_HOME = /u01/soaapp/oracle/db/product/11.2.0/dbhome_1)
            (SID_NAME = eipdb)
        )
    )

1.修改自动启动标识
vi /var/opt/oracle/oratab
#
soadb:/u01/soaapp/oracle/db/product/11.2.0/dbhome_1:Y
eipdb:/u01/soaapp/oracle/db/product/11.2.0/dbhome_1:Y
2.
#cp $ORACLE_BASE/admin/$ORACLE_SID/pfile/init$ORACLE_SID.ora.* $ORACLE_HOME/dbs/init$ORACLE_SID.ora
cp /u01/soaapp/oracle/db/admin/soadb/pfile/init.ora.* /u01/soaapp/oracle/db/product/11.2.0/dbhome_1/dbs/initsoadb.ora
cp /u01/soaapp/oracle/db/admin/eipdb/pfile/init.ora.* /u01/soaapp/oracle/db/product/11.2.0/dbhome_1/dbs/initeipdb.ora
3.创建开机后启动/停止oracle数据库脚本
cd /etc/init.d
vi start_oracle.sh
#!/bin/bash
#this script is used to start the oracle
su - oracle -c "/u01/soaapp/oracle/db/product/11.2.0/dbhome_1/bin/dbstart"
su - oracle -c "/u01/soaapp/oracle/db/product/11.2.0/dbhome_1/bin/lsnrctl start"
vi stop_oracle.sh
#!/bin/bash
#this script is used to stop the oracle
su - oracle -c "/u01/soaapp/oracle/db/product/11.2.0/dbhome_1/bin/lsnrctl stop"
su - oracle -c "/u01/soaapp/oracle/db/product/11.2.0/dbhome_1/bin/dbshut"
5.
chmod a+x /etc/init.d/start_oracle.sh
chmod a+x /etc/init.d/stop_oracle.sh
6.创建随系统启动和关闭的链接:
在/etc/rc0.d、/etc/rc2.d、/etc/rc3.d下加入自动启动链接,命令如下:
ln -s /etc/init.d/start_oracle.sh  /etc/rc0.d/S16start_oracle
ln -s /etc/init.d/start_oracle.sh  /etc/rc2.d/S16start_oracle
ln -s /etc/init.d/start_oracle.sh  /etc/rc3.d/S16start_oracle
在/etc/rc0.d、/etc/rc2.d、/etc/rc3.d下加入自动关闭链接,命令如下:
ln -s /etc/init.d/stop_oracle.sh /etc/rc0.d/K01stop_oracle
ln -s /etc/init.d/stop_oracle.sh /etc/rc2.d/K01stop_oracle
ln -s /etc/init.d/stop_oracle.sh /etc/rc3.d/K01stop_oracle

7.如果在oracle用户下执行dbstart,有问题,请注意首行#!/bin/bash。
8.reboot -- r

方法二(此方法不能在操作系统启动而启动,只能手工执行。没找到原因,上面那种方法可以解决多实例启动问题。)

1)修改启动标示。参见步骤1

2)在/etc/init.d中新建 auto11G

########################################################
export ORACLE_BASE=/u01/soaapp/oracle/db
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export PATH=$PATH:$ORACLE_HOME/bin
####
su - oracle<<EOF
export ORACLE_SID=eipdb
echo "##############################################"
echo "%%%%%start oracle sid:"${ORACLE_SID}
echo "PATH="${PATH}
echo "##############################################"
lsnrctl start
sqlplus /nolog
connect / as sysdba
show parameters service_name
startup
exit
EOF
####
su - oracle<<EOF
export ORACLE_SID=soadb
echo "##############################################"
echo "%%%%%start oracle sid:"${ORACLE_SID}
echo "PATH="${PATH}
echo "##############################################"
lsnrctl start
sqlplus /nolog
connect / as sysdba
startup
exit
EOF
########################################################

3)

关键::
chown -fhR root:sys auto11G

ln -s /etc/init.d/auto11G /etc/rc0.d/S99auto11G
ln -s /etc/init.d/auto11G /etc/rc2.d/S99auto11G
ln -s /etc/init.d/auto11G /etc/rc3.d/S99auto11G

数字99是启动级别,别设置太小,默认都需要设置到40以后了。

刚设置16更加是不行。。

启动多实例搞定。

花了不少心思啊!!。。

猜你喜欢

转载自michales003.iteye.com/blog/1454468