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
  • 相关阅读:
    下载文件乱码问题的解决
    Jquery Ajax实例(一)
    JQuery实现checkbox的全选/取消全选,实现类似于邮箱功能
    C#重写ToString方法实例
    生成不重复的随机数
    List<T>清除重复某一项
    Ubuntu16.04安装有道词典
    Ubuntu16.04 VTK7.1.0+QT4.8.6+QtCreator开发环境配置
    MATLAB求解代数方程、微分方程的一些常用指令
    读取Simulink中Dataset类型的数据
  • 原文地址:https://www.cnblogs.com/tingxin/p/13855511.html
Copyright © 2011-2022 走看看