实战:oracle删除表空间的shell脚本
#!/bin/bash
[email protected]
#drop tablespace
if [ $# -ne 1 ]; then
echo "Usage: $0 TABLESPACE_NAME "
exit 1
fi
#configure oracle env:about oracle envs, username and password
ORACLE_SID=orcl
ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1
ora_data=/u01/app/oracle/product/11.2.0/db_1/dbs/
ora_user="sys" #oracle username
ora_pass="password" #oracle user password
tablespace_name=$(echo $1 | tr ‘[a-z]‘ ‘[A-Z]‘)
outfiletmp=/tmp/droptpstmp01.txt #specify the output file location
sqlplus -S "${ora_user}/${ora_pass} as sysdba" <<!01 >/dev/null #禁止sqlplus执行结果回显
set heading off;
set feedback off;
set termout off;
set pagesize 0;
set verify off;
set echo off;
spool ${outfiletmp}
select tablespace_name from dba_tablespaces where tablespace_name=‘${tablespace_name}‘;
spool off
exit;
!01
tps_jug=`grep -i ${tablespace_name} ${outfiletmp} `
if [ "${tps_jug}" = "${tablespace_name}" ]; then
wind_var=$(
sqlplus -s "{ora_user}/${ora_pass} as sysdba" <<EOF
set heading off
drop tablespace ${tablespace_name} including contents and datafiles;
EXIT;
EOF)
echo -e "\e[1;32m ${wind_var} \e[0m" #Direct display returns results
exit 1
else
echo -e "\e[1;31m --------------------------------------- \e[0m"
echo -e "\e[1;31m The tablespace ${tablespace_name} not exits! \e[0m"
echo -e "\e[1;31m --------------------------------------- \e[0m"
exit 1
fi
rm -rf ${outfiletmp}
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。