#oracle自动备份脚本,删除30天之前的文件
#exp:空表导不出来
#首先设置环境变量
export ORACLE_BASE=路径
export ORACLE_HOME=路径
export ORACLE_SID=实例名
export PATH=$PATH:$ORACLE_HOME/bin
export NLS_LANG=American_America.AL32UTF8
DATE_TIME=$(date '+%Y%m%d')
#BASE_PWD=$(cd "$(dirname "$0")";pwd)
echo $DATE_TIME
#echo $BASE_PWD
#cd $BASE_PWD/../oradata_bak
#rm -rf $DATE_TIME
#mkdir $DATE_TIME
#cd $DATE_TIME
#d /home/oracle/oradata_bak
exp 用户/123456@orcl file=路径/$DATE_TIME.dmp log=路径/$DATE_TIME.log
zip -m 路径/$DATE_TIME.zip 路径/$DATE_TIME.dmp 路径/$DATE_TIME.log
cp 路径/$DATE_TIME.zip 路径 #在做一个备份
find 路径 -mtime +3 -type f -name edzx_*.zip -exec rm -f {} \; 删除3天前的数据
find 路径 -mtime +30 -type f -name edzx_*.zip -exec rm -f {} \; 删除30天前的数据
#expdp:可以导出空表
在sysdba下执行:
创建directory 对象:
create directory dmpdata as '路径'
select * from dba_directories where directory_name = 'DMPDATA';
给需要导出数据的用户授权
grant read,write on directory DUMP_DIR to 用户;
#oracle自动备份脚本,删除30天之前的文件---生产环境---如果执行报错,在linux重新创个文件内容粘贴过去
export ORACLE_BASE=路径
export ORACLE_HOME=路径
export ORACLE_SID=实例名
export PATH=$PATH:$ORACLE_HOME/bin
export NLS_LANG=American_America.AL32UTF8
DATE_TIME=$(date '+%Y%m%d')
#如果tnsnames.ora没有配置host需要在密码后面加上ip/oral
expdp 用户/123456@ip/orcl directory=DUMP_DIR dumpfile=edzxbs_$DATE_TIME.dmp logfile=edzxbs_$DATE_TIME.log;
expdp 用户/123456@orcl directory=DUMP_DIR dumpfile=$DATE_TIME.dmp logfile=$DATE_TIME.log;
zip -m 路径/$DATE_TIME.zip 路径/$DATE_TIME.dmp 路径/$DATE_TIME.log
cp 路径/$DATE_TIME.zip 路径
find 路径 -mtime +3 -type f -name *.zip -exec rm -f {} \;
find 路径 -mtime +30 -type f -name *.zip -exec rm -f {} \;