导入Dump的批量操作脚本 checkBackUpPath

#数据库目录
DBBACKUP_DIR=$backupDB_SDM_dir
#DBBACKUP_DIR="/opt/oracle/C20_spcbackup_20150210103527"
#Recover_date_DB format: YYYY-MM-DD 2018-04-16
#Recover_date_DB=`date  +%Y-%m-%d`
#Recover_date_DB='2018-04-19'
dump_directory=$DBBACKUP_DIR/$Recover_date_DB

#数据库ip
DB_IP=$DB_IP_RECOVER_TO
APP_IP=$APP_IP_RECOVER_TO
DB_server_ip=$DB_IP
writeLog $log_file_name "The DB_server_ip is $DB_server_ip ..........." $log_path

#数据库监听端口
DB_Port=$DB_listen_port

#获取数据system用户
DB_System_username="system"
#数据库实例名
DB_instance=$Oracle_instance_name
#数据库System用户密码
DB_System_password=$Oracle_system_pwd

#数据库钱包密码
DB_wallet_password=$Oracle_wallet_pwd
#DB Servicedesk用户和密码
DB_APP_username=$DB_SDM_username
DB_APP_password=$DB_SDM_password
sdm_number=$SDM_Serial_Number

user_list="inoc_sdm_servicedesk_${sdm_number},inoc_sdm_studio_${sdm_number},inoc_sdm_message_${sdm_number},inoc_sdm_archive_${sdm_number},inoc_sdm_si_${sdm_number},inoc_sdm_sdmreport_${sdm_number},inoc_sdm_mostcbb_${sdm_number},inoc_sdm_servicedesk_${sdm_number}_v"

sys_user_list="SYSTEM,SYS,SYSMAN,OUTLN,ORDDATA,APEX_030200,OWBSYS_AUDIT,OWBSYS,PUBLIC,FLOWS_FILES,OLAPSYS,MDDATA,SPATIAL_WFS_ADMIN_USR,SPATIAL_CSW_ADMIN_USR,MGMT_VIEW,APEX_PUBLIC_USER,SCOTT,SELECT_CATALOG_ROLE,EXECUTE_CATALOG_ROLE"
 

 

checkBackUpPath
checkDB
grantdumppermission
configDB
importDB
revokeRole
revokedumppermission
updateIP

#校验备份数据dump文件是否存在
checkBackUpPath()
{

    if [ $except_flag != "min" ] && [ $except_flag != "more" ] && [ $except_flag != "switch" ]
    then
        echo "The cmd parameter error!"
        exit 1
    fi

    if [ ! -f ${dump_directory}/checkDB.log ]
    then
    > ${dump_directory}/checkDB.log
    fi
    
    if [ ! -f ${dump_directory}/configDB.log ]
    then
    > ${dump_directory}/configDB.log
    fi
    

    if [ ! -d ./dbscript ];then 
        mkdir ./dbscript        
    fi
    #chown -R oracle:dba ../BackkupAndRecoverTools
    chmod -R a+rwx ../BackupAndRecoverTools
    chown -R oracle:dba ${DBBACKUP_DIR}
    chmod -R a+rwx ${DBBACKUP_DIR} 
    
    cp -avx ./template/* ./dbscript/
    chown -R oracle:dba ./dbscript/
    
}

#校验表连接
checkDB()
{

    #check DB_System_username
    writeLog $log_file_name "Check ${DB_System_username} connection..." $log_path    
    su - oracle -c "sqlplus ${DB_System_username}/${DB_System_password}@//${DB_server_ip}:${DB_Port}/${DB_instance} >${dump_directory}/checkDB.log <<EOF      
    quit;
    EOF"
    if [ $? -ne 0 ]; then
    writeLog $log_file_name "Can not connect to ${DB_System_username}" $log_path
    exit 1;
    fi
    
    RESULT=`cat ${dump_directory}/checkDB.log |grep -v 'ORA-28011: the account will expire soon' | grep ORA` 
    if [ "$RESULT" ]
    then
      writeLog $log_file_name "Can not connect to ${DB_System_username}, please check ${dump_directory}/checkDB.log" $log_path
      exit 1;
    fi
    #rm ${dump_directory}/checkDB.log
    writeLog $log_file_name "Connect to ${DB_System_username} successfully" $log_path
}

#恢复操作赋权
grantdumppermission()
{
    
    writeLog $log_file_name "start grant sdm dump  permission begin..." $log_path    
    su - oracle -c "export ORACLE_SID=${DB_instance} ; sqlplus / as sysdba   >${dump_directory}/grant_sdm_dump_permission_for_rollback.log  <<END
    start $INSTALL_HOME/dbscript/impdp/grant_dump.sql;
    exit;
    END
    "
    if [ $Oracle_instance_name != $MOST_instance_name ]
    then
    writeLog $log_file_name "start grant most dump  permission begin..." $log_path    
    sed -i "s#@{DB_MOST_USER}#MOSTCMDB_${sdm_number}#g" $INSTALL_HOME/dbscript/impdp/grant_dump.sql
    su - oracle -c "export ORACLE_SID=${MOST_instance_name} ; sqlplus / as sysdba   >${dump_directory}/grant_most_dump_permission_for_rollback.log  <<END
    start $INSTALL_HOME/dbscript/impdp/grant_dump.sql;
    exit;
    END
    "
    fi
   
    writeLog $log_file_name  "grant dump  permission successfully..." $log_path    
}


#创建Dump directory
configDB()
{

    echo "**************************************"
    echo "Starting to execute config_import.sql file..."
    echo "**************************************"
    writeLog $log_file_name "Starting to execute config_import.sql file..." $log_path
    
    sed -i "s#@{systempassword}#${DB_System_password}#g" $INSTALL_HOME/dbscript/config_import.sql
    sed -i "s#@{dbserverip}#${DB_server_ip}#g" $INSTALL_HOME/dbscript/config_import.sql
    sed -i "s#@{listenport}#${DB_Port}#g" $INSTALL_HOME/dbscript/config_import.sql
    sed -i "s#@{sid}#${DB_instance}#g" $INSTALL_HOME/dbscript/config_import.sql
    
    sed -i "s#@{DumpDir}#${dump_directory}#g" $INSTALL_HOME/dbscript/config_import.sql
    
    chmod -R 777 $INSTALL_HOME/dbscript/config_import.sql

    su - oracle -c "export ORACLE_SID=$DB_instance;sqlplus -S /nolog @$INSTALL_HOME/dbscript/config_import.sql >${dump_directory}/configDB.log"  
    if [ $Oracle_instance_name != $MOST_instance_name ];then
    cp  ./template/config_import.sql ./dbscript/config_import_most.sql 
    sed -i "s#@{systempassword}#${DB_System_password}#g" $INSTALL_HOME/dbscript/config_import_most.sql
    sed -i "s#@{dbserverip}#${DB_server_ip}#g" $INSTALL_HOME/dbscript/config_import_most.sql
    sed -i "s#@{listenport}#${DB_Port}#g" $INSTALL_HOME/dbscript/config_import_most.sql
    sed -i "s#@{sid}#${MOST_instance_name}#g" $INSTALL_HOME/dbscript/config_import_most.sql    
    sed -i "s#@{DumpDir}#${dump_directory}#g" $INSTALL_HOME/dbscript/config_import_most.sql
    chmod -R 777 $INSTALL_HOME/dbscript/config_import.sql
    su - oracle -c "export ORACLE_SID=$MOST_instance_name;sqlplus -S /nolog @$INSTALL_HOME/dbscript/config_import_most.sql >/${dump_directory}/log/most_configDB" 
    fi
    echo "Fihished to execute config_import.sql file..."
}
 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值