通过FTP服务实现数据库及应用异机数据备份
数据库数据:
以Mysql数据库为例,将本地机上每天备份的备份文件备份一份到异机(其它)机器上,做到数据容灾。
应用安装环境:
把应用的安装文件目录进行打包后备份一份到异机(其它)机器上,做到应用环境容灾。
对于单个备份的文件如果超过20G以上,可能会出现备份异常中断情况,建议定期做下检查,发现问题及时做下处理。较大的备份文件的异机备份建议采用专用的一些异机备份或同步软件,如rsync、OGG、Oracle dataguard等软件。
以下分别介绍在WINDOWS、Linux操作系统上如何通过FTP服务进行异机备份。
一、WINDOWS操作系统上FTP备份:
编写一个backup.bat脚本
加入以下内容:
@echo off
echo.
rem local为本地备份文件存放的路径
set local=E:\server\backup
set data=%date:~0,4%%date:~5,2%%date:~8,2%
set /a deldata=data-7
makecab %local%\%data%.sql %local%\%data%.zip
echo open FTP服务器名称 > ftp.txt
echo FTP服务器登录的用户名>> ftp.txt
echo FTP服务器登录用户的密码 >> ftp.txt
echo binary >>ftp.txt
rem /studyforeaa/mysqlbackup为FTP服务器上的异机备份的路径
echo cd /studyforeaa/mysqlbackup>> ftp.txt
echo lcd %local%>> ftp.txt
echo prompt >> ftp.txt
rem %data%*.zip为FTP上传备份的
echo mput %data%*.zip>> ftp.txt
echo mdelete %deldata%*.sql>> ftp.txt
echo mdelete %deldata%*.zip>> ftp.txt
echo close>> ftp.txt
echo bye>> ftp.txt
echo bye>> ftp.txt
ftp.exe -s:ftp.txt
echo.
在控制面板--管理工具--任务计划中添加调度的该批处理文件的调度计划进行调度执行。
二、LINUX上实现往FTP往FTP服务器上传文件:
编写一个backup.sh脚本
加入以下内容:
#!/bin/bash
cd /mysqldatabackup/mysql/`date +%Y%m%d`
zip -q -r -P 本机用户名称 mysql`date +'%Y%m%d%H%M%S'`.zip /mysqldatabackup/mysql/`date +%Y%m%d` #/mysqldatabackup/mysql/为本地备份文件存放的路径,制作.zip备份压缩包
ftp -n<
open FTP服务器名称
user FTP服务器登录的用户名 FTP服务器登录用户的密码
binary
hash
cd /mysqlbackup #/mysqlbackup为FTP服务器上的异机备份的路径
lcd /mysqldatabackup/mysql/`date +%Y%m%d`
prompt
mput *.zip
mdelete mysql`date -d '10 days ago' +%Y%m%d%H%M%S`.zip #删除10天前备份的数据
close
bye
!
backup.sh文件赋予可执行权限,如chmod 755 backup.sh
在Crontab中加入每天晚上2点钟执行backup.sh调度任务定时调度备份到FTP服务器上。
crontab:
02 00 * * * /mysqlbackup/backup.sh