• 导出数据shell脚本


    #! /bin/sh
    ###############################################
    #         function getSessionlist:            #
    # get the session of the user that connect DB #
    ###############################################
    
    function getSessionlist {
    
    username=$1
    
    date "+%m%d-%H%M%S" >execsql.log
    sqlplus / as sysdba >>execsql.log << EOF
        set lines 100;
        set trims on;
        set heading off;
        spool /opt/oracle/admin/mdspdb/dpdump/session.lst
        select t.username,t.sid,t.serial# from v$session t where t.username=upper('${username}');
        spool off;
        exit; 
    EOF
    
    #*****clear up unuseful lines,  delete first 2 lines  &  last 2 lines***
    sed -i '1,2d;N;$!P;$!D;$d' session.lst
    
    }
    
    
    #####################################
    #        function cleanup:          #
    #if session file & logfile,clean up #
    #####################################
    
    function cleanup {
    if [ -f session.lst ]
    then
        :> session.lst
        echo "cleanup session.lst successful!"
    fi
    
    if [ -f execsql.log ]
    then
        :> execsql.log
        echo "clearup execsql.log successful!"
    fi
    }
    
    ##########################################################
    #                function recreateUser1:                 #
    #if the user has not connect session, using recreateUser1#
    ##########################################################
    function recreateUser1 {
    username=$1
    password=$2
    
    ##kill the active session
    echo "Begin import the db data,please wait 5-10 minutes......"
    
    sqlplus / as sysdba >>execsql.log << EOF
    drop user ${username} cascade;
    create user ${username} identified by ${password} default tablespace CBS_DEFAULT_DAT temporary tablespace TEMP;
    grant dba to ${username};
    grant unlimited tablespace to ${username};
    commit;
    exit;
    EOF
    }
    
    
    ##########################################################
    #                function recreateUser2:                 #
    #if the user has  connect session, using recreateUser2   #
    ##########################################################
    function recreateUser2 {
    username=$1
    password=$2
    
    ##kill the active session
    echo "Begin import the db data,please wait 5-10 minutes......"
    sid=`awk -F' ' '{print $2","$3}' session.lst`
    
    for vsid in ${sid}
    do
      sqlplus / as sysdba >>execsql.log << EOF
      alter system kill session '${vsid}';
      exit;
    EOF
    done
    
    sqlplus / as sysdba >>execsql.log << EOF
      drop user ${username} cascade;
      create user ${username} identified by ${password} default tablespace CBS_DEFAULT_DAT temporary tablespace TEMP;
      grant dba to ${username};
      grant unlimited tablespace to ${username};
      commit;
      exit;
    EOF
    
    }
    
    
    #***************************  excute part   ***************************** 
    read -p "Please input oracle_username that you want kill:" oracle_username
    read -p "Please input ${oracle_username}'s password:" user_password
    
    cleanup
    
    getSessionlist ${oracle_username}
    
    if [ "`cat session.lst`" = "no rows selected" ]
    then
        recreateUser1 ${oracle_username}  ${user_password}
    else
        recreateUser2 ${oracle_username}  ${user_password}
    fi
    
       
    #********************* import db by Oracle dump ****************************
    impdp ${oracle_username}/${user_password}@mdspdb  directory=DATA_PUMP_DIR dumpfile=bfmdbexpdb.dmp TRANSFORM=OID:N REMAP_SCHEMA=bfmdb1:${oracle_username} logfile=`date "+%m%d-%H%M%S"`imbf.log
    

      

  • 相关阅读:
    cf415D Mashmokh and ACM(DP)
    [USACO]EulerianTour (欧拉通路)
    hdu2544 (SPFA)
    hdu2544 (bellman-ford)
    [TC]SRM615 div1 250 AmebaDiv1
    Step By Step (zz from UESTC)
    [USACO]Sweet Butter 多种解法
    Node.js权威指南 (3)
    Web开发常见问题荟萃
    比较vue.js react.js angular.js
  • 原文地址:https://www.cnblogs.com/tjw-nau/p/3443507.html
Copyright © 2020-2023  润新知