zoukankan      html  css  js  c++  java
  • 启动服务器上的所有oracle数据库

    当服务器上有多台数据库时,如何管理:

    思路通过 找文件"/bin/oracle" 确定oracle实例,列出本台服务器上所有的"/bin/oracle "文件,然后再根据此文件所有者(DB OWNER),通过sqlplus 脚本关闭和开起

    以下是代码

    #!/bin/bash
    #+++++++++++++++++++++++++++++++++++++++++++++
    # stop and start all oracle database in one server
    #
    # Param 1 : optional database owner 
    # Param 2 : -stop |start
    #+++++++++++++++++++++++++++++++++++++++++++++
    #############################################
    #
    #  Start/stop oracle database 
    #
    #############################################
    stop_db()
    {
      echo "   Database $oraid is going to stop"
      tmpfile=/tmp/"${oraid}"_start_db.$$.sql 
      echo "connect / as sysdba"  >  $tmpfile
      echo "                   "  >> $tmpfile
      echo "                  "   >> $tmpfile
      echo "shutdown immediate"   >> $tmpfile
      echo "exit"                 >> $tmpfile   
      chown $oraid:dba ${tmpfile}
      chmod 777 ${tmpfile}
    
      su - $oraid -c "sqlplus -s /NOLOG @$tmpfile" 0</dev/null | grep -v "ORA-01109"
      rm -f $tmpfile
    
      RC=$?;
      if [ $RC -eq 0 ]
        then 
          echo $(date) "DONE : STOP DB $oraid";
        else
          echo "=================================================================";
          echo 
          echo $(date) "WARNING: STOP DB $oraid RC="$RC;
          echo "=================================================================";
          echo 
      fi
    }
    
    #############################################
    #
    #  stop Database
    #
    #############################################
    start_db()
    {
      echo "   Database $oraid is going to start"
      tmpfile=/tmp/"${oraid}"_stop_db.$$.sql 
      echo "connect / as sysdba"  >  $tmpfile
      echo "                   "  >> $tmpfile
      echo "                  "   >> $tmpfile
      echo "startup;          "   >> $tmpfile
      echo "exit"                 >> $tmpfile
      chown $oraid:dba ${tmpfile}
      chmod 777 ${tmpfile}  
      su - $oraid -c "sqlplus -s /NOLOG @$tmpfile" 0</dev/null | grep -v "ORA-01109"
      rm -f $tmpfile
      
      RC=$?;
      if [ $RC -eq 0 ]
        then 
          echo $(date) "DONE : Start DB $oraid";
        else
          echo "=================================================================";
          echo 
          echo $(date) "WARNING: Start DB $oraid RC="$RC;
          echo "=================================================================";
          echo 
      fi
    }
    #############################################
    #
    #  Start Database
    #
    #############################################
    read_instance()
    {
      echo "   Trying to found database";
      instances=$(find / -name oracle|grep -i bin)
      echo "$instances"
      for instance in $instances
        do   
            oraid=`ls -ltr ${instance}|cut -d " " -f 3`
            case $action in
                -start)     start_db        ;;
                -stop)      stop_db            ;;
            esac
       done
    }
    #############################################
    #
    #  Main 
    #
    #############################################
    if [ $# -lt 1 ]
    then
      echo "##########################################################################################"
      echo 
      echo "  Syntax : stop oracle database : dboper <db name> <-start|-stop> " 1>&2
      echo "  Parm1  : optional <listener name> "
      echo "  Parm2  : -start|-stop"
      echo "##########################################################################################"
      exit 8
    fi
    
    if [ $# -eq 2 ]
      then
         oraid=$1
         action=$2
         case $action in
            -start)     start_db ;
            ;;
            -stop)      stop_db ;
            ;;
         esac
      else 
         targetdb=""
         action=$1
         read_instance
    fi
    View Code

    以下是执行效果:start  all db

    [root@wen oraoper]# PATH=$PATH:$PWD
    [root@wen oraoper]# echo $PATH
    /usr/lib64/qt-3.3/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/mnt/hgfs/script/orainst:/mnt/hgfs/script/oraoper          
    [root@wen oraoper]# dbstartstop.sh -start
       Trying to found database
    /oracle/g11/111/bin/oracle
    /oracle/g13/113/bin/oracle
    /oracle/g14/114/bin/oracle
    /oracle/g12/112/bin/oracle
       Database g11 is going to start
    ORACLE instance started.
    
    Total System Global Area 3340451840 bytes
    Fixed Size            2217952 bytes
    Variable Size         1811941408 bytes
    Database Buffers     1509949440 bytes
    Redo Buffers           16343040 bytes
    Database mounted.
    Database opened.
    Thu Oct 22 18:51:41 CST 2020 DONE : Start DB g11
       Database g13 is going to start
    ORACLE instance started.
    
    Total System Global Area 1603411968 bytes
    Fixed Size            2213776 bytes
    Variable Size          402655344 bytes
    Database Buffers     1191182336 bytes
    Redo Buffers            7360512 bytes
    Database mounted.
    Database opened.
    Thu Oct 22 18:51:48 CST 2020 DONE : Start DB g13
       Database g14 is going to start
    ORACLE instance started.
    
    Total System Global Area 1603411968 bytes
    Fixed Size            2213776 bytes
    Variable Size          402655344 bytes
    Database Buffers     1191182336 bytes
    Redo Buffers            7360512 bytes
    Database mounted.
    Database opened.
    Thu Oct 22 18:51:55 CST 2020 DONE : Start DB g14
       Database g12 is going to start
    ORACLE instance started.
    
    Total System Global Area 1603411968 bytes
    Fixed Size            2213776 bytes
    Variable Size          402655344 bytes
    Database Buffers     1191182336 bytes
    Redo Buffers            7360512 bytes
    Database mounted.
    Database opened.
    Thu Oct 22 18:52:03 CST 2020 DONE : Start DB g12
    View Code

    关闭指定DB

    [root@wen oraoper]# dbstartstop.sh g14 -stop
       Database g14 is going to stop
    Database closed.
    Database dismounted.
    ORACLE instance shut down.
    Thu Oct 22 18:54:23 CST 2020 DONE : STOP DB g14
    View Code
  • 相关阅读:
    stream to byte[], byte[] to srting
    内容输出为每行的字符串的方法
    .net面式题
    .net多站点通过StateServer实现session共享
    .net 数据绑定gridview 和Repeater 序号,Container.ItemIndex
    js实现table用鼠标改变td的宽度,固定table宽度和高度超过显示点
    .aspx、MasterPage、.ascx加载顺序
    IIS删除http header信息如Server, X-Powered-By, 和X-AspNet-Version
    基于Asp.net C#实现HTML转图片(网页快照)
    js获取页面宽度高度及屏幕分辨率
  • 原文地址:https://www.cnblogs.com/tingxin/p/13855511.html
Copyright © 2011-2022 走看看