expdp定时备份

 

1.1需求

  数据库未开启归档,表的数据无需备份,但是表结构需要进行备份,否则DB出现介质问题需要恢复,使用历史环境会缺很多表 or 字段影响灾难恢复后业务恢复时间。

  本次采用的是使用EXPDP逻辑导出,只导出用户结构定义表结构,索引结构,存储过程等,不导出数据。

1.2脚本

$ cat expdp.sh 
#!/bin/bash
DATE=`date +%Y%m%d%H%M%S`
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db
export ORACLE_SID=xxa2
export PATH=.:${PATH}:$HOME/bin:$ORACLE_HOME/bin:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin:$ORACLE_BASE/common/oracle/bin
nohup expdp "/ as sysdba" DIRECTORY=DUMP DUMPFILE=dump$DATE%U.dmp SCHEMAS=USER1,USER2,USER3 content=metadata_only logfile=dump$DATE.log & >/u01/soft/expdp_dump/nohup.out
find /u01/soft/expdp_dump -name "*.dmp" -mtime +30 -exec rm {} ;
find /u01/soft/expdp_dump -name "*.log" -mtime +30 -exec rm {} ;

oracle$crontab -l
01 01 * * 6 sh /u01/soft/expdp_dump/expdp.sh   &