天天看点

linux服务器oracle数据库自动备份并且上传至ftp服务器

项目oracle数据库部署在linux服务器,需要每天定时备份并且上传至ftp服务器

操作步骤如下:

1. 编写备份脚本并且压缩备份上传至ftp服务器(autoExp_oracle.sh)

#!/bin/bash

#自动备份开始begin

#设置环境变量
export ORACLE_BASE=/u01/app/oracle
export ORACLE_DPDUMP=/u01/app/oracle/admin/orcl/dpdump
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1
export ORACLE_SID=orcl
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
export PATH=$PATH:/usr/sbin:/$ORACLE_HOME/bin
export DATE=`date +%Y%m%d`
export USERNAME=XXX
export PASSWD=XXX
export AUTOBACKUP=/u01/dataBack/data/autobackup
#进入对应目录
cd ${AUTOBACKUP}/

#开始备份 ==============================
#先删除备份过程中生成的相关文件             
rm -f ${ORACLE_DPDUMP}/db${DATE}.dmp             
rm -f ${ORACLE_DPDUMP}/db${DATE}.log

#自动备份osrm用户数据库             
expdp ${USERNAME}/${PASSWD} dumpfile=db${DATE}.dmp logfile=db${DATE}.log  schemas=${USERNAME} directory=DATA_PUMP_DIR            

#打包备份生成的dmp文件及log文件            
tar -cf db${DATE}.tar ${ORACLE_DPDUMP}/db${DATE}.dmp ${ORACLE_DPDUMP}/db${DATE}.log         
                
#压缩                
gzip -f db${DATE}.tar              
                
#将备份文件远程传输到备份服务器            
#scp db${DATE}.tar.gz backup_11xt/[email protected]:/home/ftp/xxx/oracle
ftp -i -n 192.168.2.15 <<EOF
user XXX XXX
mput db${DATE}.tar.gz
bye
EOF
#建议备份完成后,使用ftp方式上传
                
#删除备份过程中生成的相关文件             
rm -f ${ORACLE_DPDUMP}/db${DATE}.dmp             
rm -f ${ORACLE_DPDUMP}/db${DATE}.log                        
                
#自动备份结束end 
           

备注:导出数据库采用expdp的方式,directory=DATA_PUMP_DIR中DATA_PUMP_DIR需要通过oracle执行sql查询出来

select * from dba_directories
           
linux服务器oracle数据库自动备份并且上传至ftp服务器

2. 执行sh脚本测试验证正确性

cd到脚本目录执行

./autoExp_oracle.sh
           

3. 配置服务器cron定时任务

crontab -e
           
linux服务器oracle数据库自动备份并且上传至ftp服务器

:wq! 保存退出

crontab -l   查看配置信息

linux服务器oracle数据库自动备份并且上传至ftp服务器

service crond reload   重置配置信息

4. 检查定时任务执行结果

cd 到 /var/spool/mail/ 查看root文件内容

至此数据库自动备份并且上传至ftp服务器配置完成

继续阅读