http://blogold.chinaunix.net/u1/41712/showart_469798.html

 现有一台机器,需要启动多个数据实例,如DB1、DB2

方法一:
export ORACLE_SID=DB1
sqlplus ‘/as sysdba' <<!
startup
exit
!
 
export ORACLE_SID=DB2
sqlplus ‘/as sysdba' <<!
startup
exit
!
 
如果是不同的监听端口,启动监听端口的方法是lsnctl start listener1/linsterner2/
关于listener?的配置可以通过lsnctl status查看配置文件,然后再编辑他就好了。
 
如果是同一端口,只需启动lsnctl start就好了。
 
关于web配置的启动,可以更改SID启动
export ORACLE_SID=DB1
emctl start dbconsole

方法二:(开机自动启动oracle数据实例)
修改/etc/oratab文件,将需要启动的实例名称后面的N修改为Y,如果要全部都启动,则使用
:g/N/s//Y/g将全部N修改为Y
然后编写个shell脚本
cd /etc/init.d

vi oracle.sh

#!/bin/bash
case "$1" in
start)
    date >>/var/log/oracle
    echo -e "\nThe oracle will start\n">/var/log/oracle
    su - oracle -c "lsnrctl start;dbstart;emctl start dbconsole;exit;">>/var/log/oracle
    echo -e "The oracle started">>/var/log/oracle
;;
stop)
     date >>/var/log/oracle
    echo -e "\nThe oracle will stop\n">/var/log/oracle
    su - oracle -c "dbshut;emctl stop dbconsole;lsnrctl stop;exit;">>/var/log/oracle
    echo -e "The oracle stoped">>/var/log/oracle
;;
restart)
    $0 stop
    $0 start
;;
*)
    echo -e "usage $0 {start|stop|restart}"
    exit 1
esac
保存。
chmod +x oracle.sh
ln -s oracle.sh /etc/rc.d/rc3.d/S99oracle
ln -s oracle.sh /etc/rc.d/rc5.d/S99oracle
ln -s oracle.sh /etc/rc.d/rc0.d/K01oracle
ln -s oracle.sh /etc/rc.d/rc6.d/K01oracle
这样就可以实现oracle多实例自动启动了。