首页 > 解决方案 > oracle在脚本中删除一段时间的数据

问题描述

需要在脚本的开头添加删除 3 天前的导出转储,然后开始导出备份,如果不删除旧备份,脚本不应该执行,如果删除旧备份失败,脚本应该终止并向我们发送警报。

# $Header: EXP_TAB_cmprss.sh
# *====================================================================================+
# 
# | |
# +====================================================================================+
# |
# | FILENAME
# |
# |
# | DESCRIPTION
# | Daily Export backup script of a list of table
# | PLATFORM
# | Linux/Solaris

# +===========================================================================+
#!/bin/bash
echo Set Oracle Database Env
export ORACLE_SID=$1
export ORACLE_HOME=/oracle/app/oracle/product/12.1.0/dbhome_1
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
export PATH=$ORACLE_HOME/bin:$PATH:/usr/local/bin
export TIMESTAMP=`date +%a%d%b%Y`
export EXP_DIR=/export/home/oracle

echo =======
echo Export command
echo =======
echo $ORACLE_HOME
$ORACLE_HOME/bin/expdp \'/ as sysdba\' directory=DB_DUMPS dumpfile=expdp_tab_${TIMESTAMP}_%U.dmp logfile=expdp_log_${TIMESTAMP}.log 
tables=DBATEST.ORDER_TAB PARALLEL=5 COMPRESSION=ALL

echo SEND MAIL TO STAKE HOLDERS
echo =======
mailx -s "$ORACLE_SID $TIMESTAMP Export backup logfile" support@dbclass.com < $EXP_DIR/expdp_log_${TIMESTAMP}.log
echo Export completed at $TIMESTAMP
exit


in EXP_DIR we have below files generated after running script

-rwxrwxrwx 1 tuser tuser 1.4K 5 月 6 日 12:25 EXP_TAB_cmprss.sh -rwxrwxrwx 1 t2n5463 odba 3.2G 5 月 6 日 13:13 expdp_tab_Thu06May2021_05.dmp

-rwxrwxrwx 1 t2n5463 odba 3.1G May  6 13:13 expdp_tab_Thu06May2021_03.dmp
-rwxrwxrwx 1 t2n5463 odba  22G May  6 13:13 expdp_tab_Thu06May2021_02.dmp
-rwxrwxrwx 1 t2n5463 odba 2.9G May  6 13:13 expdp_tab_Thu06May2021_04.dmp
-rwxrwxrwx 1 t2n5463 odba  25G May  6 13:13 expdp_tab_Thu06May2021_01.dmp
-rw-r--r-- 1 t2n5463 odba 8.7K May  6 13:13 expdp_log_Thu06May2021.log

标签: oracleshelldatabase-backupsexpdp

解决方案


推荐阅读