Oracle多个数据库启动和关闭脚本

最近突然发现我们的数据库启动比较麻烦,因为我们的Oracle有好几个数据库实例,每次重启的时候都需要修改ORACLE_SID(不知道有没有别的好办法,我暂时只会这样做),然后用Sqlplus连接,然后启动或者关闭,导致每次启动或者关闭都需要很多时间,而且麻烦,最近突然想到应该写一个脚本来实现,于是就开始动手做了。

1、启脚本

Oracle的启脚本,Oracle自己就有,所以我就用了Oracle的。

具体步骤如下:

a $cd $ORACLE_HOME

b $cd bin

c Oracle的启关闭脚本制一份,我之后修改制品就好了。

     具体制:dbstartdbshut两个文件,制之后重新命名。

     制了两份,分dbstartDB1,dbstartDB2,dbshutDB1,dbshutDB2

2Oratab修改

     root,然后切/etc,然后oratab个文件,制之后重新命名。

     制了两份,分oratabDB1oratabDB2

     然后修改两个制品:

     a、修改oratabDB1

         SIDofDB1:/opt/oracle/product/9.2.0:N 修改成 SIDofDB1:/opt/oracle/product/9.2.0:Y

     b、修改oratabDB2

         SIDofDB1:/opt/oracle/product/9.2.0:N 修改成 SIDofDB2:/opt/oracle/product/9.2.0:Y

3、修改启关闭脚本

     a、修改dbstartDB1

         ORATAB=/etc/oratab 修改成 ORATAB=/etc/oratabDB1

     b、修改dbshutDB1

         ORATAB=/etc/oratab 修改成 ORATAB=/etc/oratabDB1

     c、修改dbstartDB2

         ORATAB=/etc/oratab 修改成 ORATAB=/etc/oratabDB2

     d、修改dbshutDB2

         ORATAB=/etc/oratab 修改成 ORATAB=/etc/oratabDB2

     这样修改之后,发觉可以打关闭数据了,但是有关闭数据非常慢,原来是关闭脚本有点问题

     于是我修改了dbshutDB1编辑dbshutDB1,shutdown后添加了一个参数immediate, 这样就可以很快地关闭数据了。

     也修改了dbshutDB2,过这样修改有点不是很好,是原来的比安全。

4

    前面已作好了所有的准工作,于是,就针对自己的数据制作启脚本了。

    aDB1.sh

       内容如下:

       #!/bin/sh

       #Created by yaogao 2006-12-07

       #Mail: [email protected]

       ORACLE_HOME=/opt/oracle/product/9.2.0

       export ORACLE_SID=DB1

       case $1 in

       start)

         echo "Start DB1.................."

       . $ORACLE_HOME/bin/dbstartDB1 &

         lsnrctl start DB1 &

       ;;

       stop)

         echo "Stop DB1..................."

       . $ORACLE_HOME/bin/dbshutDB1 &

         lsnrctl stop DB1 &

       esac

       echo "Operation terminated.........."

bDB2.sh

        内容如下:

        #!/bin/sh

        #Created by yaogao 2006-12-07

        #Mail: [email protected]

        ORACLE_HOME=/opt/oracle/product/9.2.0

        export ORACLE_SID= DB2

        case $1 in

        start)

          echo "Start DB2.................."

        . $ORACLE_HOME/bin/ dbstartDB2 &

        ;;

        stop)

          echo "Stop DB2..................."

        . $ORACLE_HOME/bin/ dbshutDB2 &

        esac

        echo "Operation terminated.........."

   c、编写启动和关闭脚本

      启动脚本:

      #!/bin/sh

      #Created by yaogao 2006-12-07

      #Mail: [email protected]

      ./db1.sh start

      ./db2.sh start

      关闭脚本:

      #!/bin/sh

      #Created by yaogao 2006-12-07

      #Mail: [email protected]

      ./db1.sh stop

      ./db2.sh stop

 

   这样就大功告成了,如果还有DB3,用同样的方法处理就可以了。

5于系统环

     Oracle9iRedhat9

 

你可能感兴趣的:(Oracle多个数据库启动和关闭脚本)