2014.12.01
当oracle在非归档情况运行时,又需要备份数据库,那么exp/expdp作为导出,imp/impdp作为导入时不错的选择。
下面是一个简单的全库导出的脚本
[oracle@BIDB scripts]$ cat full_bak.sh
#!/bin/bash
. /home/oracle/.bash_profile
cd /orabak/dbbak
echo "#######################################################" >> /orabak/log/full.txt
echo "starting delete logfile at `date`" >> /orabak/log/full.txt
find /orabak/dbbak -mtime +7 -name "*.log" -exec rm -rf {} \;
echo "complete delete logfile at `date`" >> /orabak/log/full.txt
echo "#######################################################" >> /orabak/log/full.txt
echo "starting delete dumpfile at `date`" >> /orabak/log/full.txt
find /orabak/full -mtime +7 -name "*.dmp" -exec rm -rf {} \;
echo "complete delete dumpfile at `date`" >> /orabak/log/full.txt
echo "#######################################################" >> /orabak/log/full.txt
echo "starting backup of database at `date`" >> /orabak/log/full.txt
expdp "'/ as sysdba'" directory=full_expdp dumpfile=full_%U.dmp full=y parallel=16 compression=ALL filesize=10G logfile=full_expdp.log job_name=expdp_job1;
echo "complete backup of database at `date`" >> /orabak/log/full.txt
mkdir -p /orabak/full/`date +%Y%m%d` && cd /orabak/full/`date +%Y%m%d`
echo "#############################################################" >> /orabak/log/cp.txt
echo "starting copy dumpfile to target file at `date`" >> /orabak/log/full.txt
cp /orabak/full/*.dmp /orabak/full/`date +%Y%m%d`
cp /orabak/full/*.log /orabak/full/`date +%Y%m%d`
echo "complete copy dumfile `date`" >> /orabak/log/full.txt
如果需要做导入:
impdp \'/ as sysdba\' directory=imp27 full=y dumpfile=full_%U.dmp logfile=fullimp.log parallel=10
相关的参数,根据机器的配置来选择。
导入的相关注意事项请看http://blog.itpub.net/27099995/viewspace-1348352/