oracle数据库自动备份、压缩、上传并发邮件通知脚本
1,142次浏览
编辑于2014年06月21日 11:09:19
#要求:oracle每天3点进行数据自动备份压缩同时上传到FTP服务器并邮件通知,相关恢复命令请参考备份日志说明
#操作步骤:
#1.准备个FTPSERVER(10.200.0.239/10.200.0.225 ftpbackup backup)
#2.系统根目录建立/dbbackup文件夹,如果为了安全可以赋予相关权限给这个文件夹
#3.直接进入脚本代码:
######Backup oracle user and password#####
#!/bin/sh
ORSQL_UserName=system
#ORSQL_PassWord=passwd
ORSQL_PassWord=oracle
######Database name######
Backup_Database_Name=lttc
######FTPserver######
FTP_Server=10.200.0.225
FTP_User=ftpuser
FTP_Passwd='backup'
FTP_BackupDir=/oracledata/orabak/
#FTP_User=root
#FTP_Passwd='passwd'
######FILE######
BackupDir=/oracledata/orabak/
DATE=$(date)
DAY=$(date +%y%m%d%H)
FILE_RAR=${Backup_Database_Name}_${DAY}.tar.gz
FILE_TARGET=${Backup_Database_Name}_${DAY}.dmp
FILE_LOG=${Backup_Database_Name}_${DAY}.log
BLOG=Bk_$FILE_LOG
cd $BackupDir
echo "oracle自动备份自动压缩自动上传脚本执行日志">>$BLOG
echo " ">>$BLOG
echo "finished by WangQingChun">>$BLOG
echo "QQ:61307560">>$BLOG
echo "2013-11-18 18:30">>$BLOG
echo "要求:oracle每天3点进行数据自动备份自动压缩同时上传到FTP服务器">>$BLOG
echo "备份日期:$DATE">>$BLOG
echo "备份数据库:$Backup_Database_Name">>$BLOG
echo "准备工作......">>$BLOG
######backuping######
echo "当前登陆系统用户信息:">>$BLOG
who>>$BLOG
echo "当前服务器主机名及ip情况:">>$BLOG
hostname>>$BLOG
echo " ">>$BLOG
ifconfig eth0>>$BLOG
echo " ">>$BLOG
echo "当前机器硬盘使用情况:">>$BLOG
df -h>>$BLOG
echo "当前所在目录:">>$BLOG
pwd>>$BLOG
echo "当前目录占用空间大小:">>$BLOG
du -sh>>$BLOG
echo " ">>$BLOG
echo "backing......">>$BLOG
echo "备份命令:">>$BLOG
echo '"'expdp $ORSQL_UserName/"***"@orcl schemas=$Backup_Database_Name directory=expdp_dump exclude=statistics dumpfile=$FILE_TARGET logfile=$FILE_LOG parallel=10'"'>>$BLOG
echo "备份开始执行...">>$BLOG
expdp $ORSQL_UserName/"$ORSQL_PassWord"@orcl schemas=$Backup_Database_Name directory=expdp_dump exclude=statistics dumpfile=$FILE_TARGET logfile=$FILE_LOG parallel=10
#rm -f
#exit
######ziping######
ZIPDATE=$(date)
echo "于北京时间:$ZIPDATE备份完毕!并开始压缩备份文件...">>$BLOG
echo '"'压缩命令:zip -m $FILE_TARGET.zip $FILE_TARGET'"'>>$BLOG
echo '"'解压命令参照:upzip $FILE_TARGET.zip'"'>>$BLOG
zip -m $FILE_TARGET.zip $FILE_TARGET
#tar -zcvf $FILE_RAR $FILE_TARGET --remove-files
#tar -zxvf $FILE_RAR
######ftpserver######
BACKDATE=$(date)
echo "于北京时间:$BACKDATE压缩完毕!准备开始上传FTP服务器...">>$BLOG
ftp -i -v -n<< EOF
echo "ftp服务器地址: $FTP_Server">>$BLOG
echo "ftp用户名:$FTP_User,密码:***">>$BLOG
open ${FTP_Server}
user ${FTP_User} ${FTP_Passwd}
bin
echo "ftp登陆成功!">>$BLOG
echo "开始上传,上传目录/oracledata/orabak/">>$BLOG
cd $FTP_BackupDir
#mrm $
#mput $FILE_RAR
mput $FILE_TARGET.zip
bye
EOF
FTPDATE=$(date)
######Send email to administrator######
echo "于北京时间:$FTPDATE上传完成,文件名:$FILE_TARGET.zip">>$BLOG
echo "oracle自动备份自动压缩自动上传脚本执行完毕!">>$BLOG
#mail -s '数据库$Backup_Database_Name于北京时间$date,备份完毕,备份文件: $FILE_TARGET,请知会' jn3389@163.com < body.txt
#echo "数据库备份完毕!" | mail -s '数据库$Backup_Database_Name于北京时间$date,备份完毕,备份文件: $FILE_TARGET,请知会' jn3389@163.com
echo "K3Cloud数据库$Backup_Database_Name于北京时间$DATE 开始备份,至北京时间$ZIPDATE 备份完毕,备份文件: $FILE_TARGET 于北京时间$ZIPDATE开始压缩,至北京时间$BACKDATE压缩完毕,并与北京时间$FTPDATE 已经上传到备份服务器(10.200.0.225),请知会" | mail -s '数据库备份完毕!此邮件为系统自动发送!勿回复!' jn3389@163.com
echo "K3Cloud数据库$Backup_Database_Name于北京时间$DATE 开始备份,至北京时间$ZIPDATE 备份完毕,备份文件: $FILE_TARGET 于北京时间$ZIPDATE开始压缩,至北京时间$BACKDATE压缩完>毕,并与北京时间$FTPDATE 已经上传到备份服务器(10.200.0.225),请知会" | mail -s '数据库备份完毕!此邮件为系统自动发送!勿回复!' sam1113@qq.com
echo "K3Cloud数据库$Backup_Database_Name于北京时间$DATE 开始备份,至北京时间$ZIPDATE 备份完毕,备份文件: $FILE_TARGET 于北京时间$ZIPDATE开始压缩,至北京时间$BACKDATE压缩完>毕,并与北京时间$FTPDATE 已经上传到备份服务器(10.200.0.225),请知会" | mail -s '数据库备份完毕!此邮件为系统自动发送!勿回复!' limin@lttc.com.cn
##################################
#crontab -e
#0 3 * * * su - oracle -c "/oracledata/orabak/backup.sh" 1>/dev/null 2>/dev/null
#操作步骤:
#1.准备个FTPSERVER(10.200.0.239/10.200.0.225 ftpbackup backup)
#2.系统根目录建立/dbbackup文件夹,如果为了安全可以赋予相关权限给这个文件夹
#3.直接进入脚本代码:
######Backup oracle user and password#####
#!/bin/sh
ORSQL_UserName=system
#ORSQL_PassWord=passwd
ORSQL_PassWord=oracle
######Database name######
Backup_Database_Name=lttc
######FTPserver######
FTP_Server=10.200.0.225
FTP_User=ftpuser
FTP_Passwd='backup'
FTP_BackupDir=/oracledata/orabak/
#FTP_User=root
#FTP_Passwd='passwd'
######FILE######
BackupDir=/oracledata/orabak/
DATE=$(date)
DAY=$(date +%y%m%d%H)
FILE_RAR=${Backup_Database_Name}_${DAY}.tar.gz
FILE_TARGET=${Backup_Database_Name}_${DAY}.dmp
FILE_LOG=${Backup_Database_Name}_${DAY}.log
BLOG=Bk_$FILE_LOG
cd $BackupDir
echo "oracle自动备份自动压缩自动上传脚本执行日志">>$BLOG
echo " ">>$BLOG
echo "finished by WangQingChun">>$BLOG
echo "QQ:61307560">>$BLOG
echo "2013-11-18 18:30">>$BLOG
echo "要求:oracle每天3点进行数据自动备份自动压缩同时上传到FTP服务器">>$BLOG
echo "备份日期:$DATE">>$BLOG
echo "备份数据库:$Backup_Database_Name">>$BLOG
echo "准备工作......">>$BLOG
######backuping######
echo "当前登陆系统用户信息:">>$BLOG
who>>$BLOG
echo "当前服务器主机名及ip情况:">>$BLOG
hostname>>$BLOG
echo " ">>$BLOG
ifconfig eth0>>$BLOG
echo " ">>$BLOG
echo "当前机器硬盘使用情况:">>$BLOG
df -h>>$BLOG
echo "当前所在目录:">>$BLOG
pwd>>$BLOG
echo "当前目录占用空间大小:">>$BLOG
du -sh>>$BLOG
echo " ">>$BLOG
echo "backing......">>$BLOG
echo "备份命令:">>$BLOG
echo '"'expdp $ORSQL_UserName/"***"@orcl schemas=$Backup_Database_Name directory=expdp_dump exclude=statistics dumpfile=$FILE_TARGET logfile=$FILE_LOG parallel=10'"'>>$BLOG
echo "备份开始执行...">>$BLOG
expdp $ORSQL_UserName/"$ORSQL_PassWord"@orcl schemas=$Backup_Database_Name directory=expdp_dump exclude=statistics dumpfile=$FILE_TARGET logfile=$FILE_LOG parallel=10
#rm -f
#exit
######ziping######
ZIPDATE=$(date)
echo "于北京时间:$ZIPDATE备份完毕!并开始压缩备份文件...">>$BLOG
echo '"'压缩命令:zip -m $FILE_TARGET.zip $FILE_TARGET'"'>>$BLOG
echo '"'解压命令参照:upzip $FILE_TARGET.zip'"'>>$BLOG
zip -m $FILE_TARGET.zip $FILE_TARGET
#tar -zcvf $FILE_RAR $FILE_TARGET --remove-files
#tar -zxvf $FILE_RAR
######ftpserver######
BACKDATE=$(date)
echo "于北京时间:$BACKDATE压缩完毕!准备开始上传FTP服务器...">>$BLOG
ftp -i -v -n<< EOF
echo "ftp服务器地址: $FTP_Server">>$BLOG
echo "ftp用户名:$FTP_User,密码:***">>$BLOG
open ${FTP_Server}
user ${FTP_User} ${FTP_Passwd}
bin
echo "ftp登陆成功!">>$BLOG
echo "开始上传,上传目录/oracledata/orabak/">>$BLOG
cd $FTP_BackupDir
#mrm $
#mput $FILE_RAR
mput $FILE_TARGET.zip
bye
EOF
FTPDATE=$(date)
######Send email to administrator######
echo "于北京时间:$FTPDATE上传完成,文件名:$FILE_TARGET.zip">>$BLOG
echo "oracle自动备份自动压缩自动上传脚本执行完毕!">>$BLOG
#mail -s '数据库$Backup_Database_Name于北京时间$date,备份完毕,备份文件: $FILE_TARGET,请知会' jn3389@163.com < body.txt
#echo "数据库备份完毕!" | mail -s '数据库$Backup_Database_Name于北京时间$date,备份完毕,备份文件: $FILE_TARGET,请知会' jn3389@163.com
echo "K3Cloud数据库$Backup_Database_Name于北京时间$DATE 开始备份,至北京时间$ZIPDATE 备份完毕,备份文件: $FILE_TARGET 于北京时间$ZIPDATE开始压缩,至北京时间$BACKDATE压缩完毕,并与北京时间$FTPDATE 已经上传到备份服务器(10.200.0.225),请知会" | mail -s '数据库备份完毕!此邮件为系统自动发送!勿回复!' jn3389@163.com
echo "K3Cloud数据库$Backup_Database_Name于北京时间$DATE 开始备份,至北京时间$ZIPDATE 备份完毕,备份文件: $FILE_TARGET 于北京时间$ZIPDATE开始压缩,至北京时间$BACKDATE压缩完>毕,并与北京时间$FTPDATE 已经上传到备份服务器(10.200.0.225),请知会" | mail -s '数据库备份完毕!此邮件为系统自动发送!勿回复!' sam1113@qq.com
echo "K3Cloud数据库$Backup_Database_Name于北京时间$DATE 开始备份,至北京时间$ZIPDATE 备份完毕,备份文件: $FILE_TARGET 于北京时间$ZIPDATE开始压缩,至北京时间$BACKDATE压缩完>毕,并与北京时间$FTPDATE 已经上传到备份服务器(10.200.0.225),请知会" | mail -s '数据库备份完毕!此邮件为系统自动发送!勿回复!' limin@lttc.com.cn
##################################
#crontab -e
#0 3 * * * su - oracle -c "/oracledata/orabak/backup.sh" 1>/dev/null 2>/dev/null
推荐阅读