视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
如何实现数据库远程自动备份
2020-11-09 15:15:55 责编:小采
文档


数据库备份的重要性毋庸置疑,本地备份是不安全的,理想的方式是通过公网实现远程异地备份,这个笔者几年前已在使用。主要是在远程服务器上安装FTP服务软件如Serv-U等,而本地服务器上安装SyncBackSE 4.0软件,自动定时把数据库备份文件上传到远程FTP服务器上,当然数据库要选择压缩备份,可以极大地减少网络传输流量。

但是最近笔者遇到了一个棘手的问题,随着数据库数据的日益增长,即使采用压缩备份方式,生成的备份文件尺寸也是很大,特别是数据库中含有图像数据时,压缩率很低,备份文件有几个G那么大,远程备份经常因为连接中断导致备份失败的情况就出现了。为此,笔者尝试了多种办法,但是一直无法解决这个问题。

最近笔者终于想出了一个新方法,经测试有效解决了这个问题。办法如下:

1、在SqlServer2008R2数据库中建立两个数据库备份计划,一个是完整备份方式,每月初运行一次,另一个是差异备份方式,每日运行一次,当然都要采用压缩方式。为什么要这样做呢,是因为如果每天都进行完整备份,则每天都要把整个数据量向远程FTP服务器传输一次,占用了许多流量,没有这个必要。

2、建立一个批处理文件,输入两条命令:

Del /q *.rar

Rar a –m0 –v100mXXX.rar XXX*.bak

第一条命令是把老的压缩文件先删掉,第二条命令是用rar压缩软件的命令行方式对第一步中生成的完整数据库备份文件进行分卷处理,命令a是指压缩方式,命令-m0是指零压缩率,即不再进一步压缩,因为备份文件已经是压缩方式备份的,没必要再压缩一次,这样速度就比较快,命令-v100m是指定每个分卷文件的大小是100兆,这个大小可以根据网络带宽来调整,网速快的可增大一些,网速慢就减小一些,这个要通过测试来自行调整。

第二条命令中必须要添加好绝对路径,因为这个批处理要放到数据库作业中去自动执行的,当然还要把rar.exe这个文件从winrar软件中提取出来放到需要的文件夹中。

3、在SqlServer2008R2数据库中建立一个作业,作业中建立一个步骤,步骤的类型选择“操作系统(CmdExec)”,命令中输入第二步建立的批处理文件名,也要输入绝对路径。这个作业不需要制订计划,可以单独先测试一下,看是否能正常执行。

4、把第三步建立的作业挂到完整备份计划的最后一步,这样当每月初进行完整备份时能自动把备份好的文件进行分卷处理,这样大文件就变成了多个小文件,有利于通过网络传输,即使网络出现中断,也不用全部从头开始传输了。

5、设置SyncBackSE软件进行每日自动定时远程备份,只需要把差异备份文件和经过分卷处理的完整备份文件传输到远程FTP服务器上就可以了。需要恢复时先从分卷压缩包中把完整备份文件解出来,恢复到数据库中,再把差异压缩文件选择最新的那个恢复到数据库中就能把数据库完整恢复出来了。

以上办法希望对需要的朋友有所帮助。更多相关教程请访问 MySQL视频教程

下载本文
显示全文
专题