rsync同步备份数据(包括SQLServer维护计划,windows计划任务)
rsync_Serverrsync服务端下载
rsync_Client rsync客户端下载
会应用到rsync主要是因为公司项目的需要,关键是将SQLServer定时备份的数据库定时备份到另外一台备份服务器上去。还有其他的一些操作日志,上传的文件之类也需要定时备份到备份服务器上去。这个方案其实中间还涉及到一些其他的操作,也可以在这篇博文中说一下。一就是数据库的定时作业,二就是windows计划任务。我就按照操作的步骤逐步的来说一下吧。
MS SQLServer维护计划
维护计划(对象资源管理器的管理项中)主要是让SQLServer定时去执行一些任务。这些任务主要包括:
Ø 检查数据的完整性
Ø 执行对索引的维护
Ø 更新数据库的统计信息
Ø 定时备份数据库
维护计划中比较重要的一项是计划的制定,就是计划操作是以什么频率,在具体哪个时间点去执行。新建维护计划,跳过向导页后出现如下图所示界面。
点击上图中的更改,修改作业计划的属性,如下图。
制定好了作业计划后,再往下便是选择维护的任务。如下图所示
再往下就是选择要备份的数据库,以及备份文件的存储路径等设置。如下图所示。
上图的滚动条下方还有一个选择是否压缩备份的选择,若磁盘空间比较紧张还是建议选择压缩备份。而且针对数据的重要性选择不同的备份方案,是全备,还是差异备份,是每天都备份还是每周,每月进行一次。
根据上述方法制定维护计划后,在维护计划列表中会出现新增的维护计划,可以直接执行来测试计划是否可以成功将数据库备份。也可以修改维护计划,将时间改在与现在时间很相近的时间点,测试自动,定时执行作业是否成功。
Rsync简介
Rsync是一款强大的增量传输的工具,可以应用于同一台机器上不同目录的备份,也可以应用于不同机器之间的传输,备份。安装,配置简单。且为跨平台的工具,在linux,windows平台下都能应用。
Rsync配置
服务端安装
Ø 安装cwRsyncServer_4.1.0_Installer.zip 服务端软件
Ø 安装过程中会新创建一个svcCwrsync的windows登录帐户,可以对其密码进行修改也可以为默认值(默认值未知)
Ø 安装过程可以一直“下一步”,中间过程基本不用做修改,全部采用默认值便可
Ø 安装后,服务默认为手动启动模式,到“管理工具/服务管理”里,启动“RsyncServer”服务,并修改“RsyncServer”为自动启动模式
Ø 新建PATH的环境变量,变量名为PATH,变量值为rsync服务端安装目录下的bin目录路径
密码文件
Ø 在rsync服务端根目录下,新建任意名的txt文件,如test.txt。内容为username:password(自定义的用户名与密码)
Ø 然后将txt拓展名更为secrets
Ø 修改密码文件的权限。运行cmd 输入chmod 600 /test.secrets
Ø 上步操作若没有任何提示表示设置成功
配置文件
Ø 配置文件在软件安装的根目录下的rsyncd.conf文件,用记事本打开
Ø 配置端config文件,配置文件代码如下
uid = 0 #运行rsync守护进程的用户 0为不限制
gid = 0 #运行rsync守护进程的组 0为不限制
use chroot = false
strict modes = false
hosts allow = * #允许进入的主机,*表示不限制。此处的值可以为单一ip,也可以是某个网段
log file = rsyncd.log #rsync运行的日志文件,这表示在根目录下的rsyncd.log文件
# Module definitions
# Remember cygwin naming conventions : c:\work becomes /cygwin/c/work
#
[weblog] #定义一个节点,或者说是入口
path = /cygdrive/c/weblog //传过来的文件所保存的路径(笔者也不懂linux所以这种表达方式。。。-_-!!)
read only = false //是否允许上传,若为true则表示任何上载的请求都会失败,默认为true
transfer logging = yes
allow users = test #允许进入的用户,用户为在密码文件中输入的username的内容。
secrets file = test.secrets #密码文件
hosts allow = * #允许进入的主机
hosts deny = * #禁止进入的主机
list file = true
[database]
path = /cygdrive/c/databackup
read only = false
transfer logging = yes
allow users = test
secrets file = est.secrets
hosts allow = *
hosts deny = *
list file = true
注:存储数据的文件目录需要添加SVRSYNC用户的完全控制权限(这点是从网上找到的,笔者经过实验似乎没有加svrsync的权限同样可以传输文件)。
Ø 服务端的安装与配置就完成了
客户端安装
Ø 安装cwRsync_4.1.0_Installer.zip客户端软件
Ø 新建PATH的环境变量(其实也可以不对环境变量进行修改,加上环境变量只是为了方便手动运行cmd)
密码文件
Ø 密码文件与服务端的要完全一致(网上也用说,客户端的密码文件内容只能有密码,其他的都不需要。笔者试验表明,跟服务端的内容完全一致也没有问题)
Ø 修改密码文件的权限chmod 600 /test.secrets 权限值只能为600
同步命令
Ø 若定义了PATH环境变量,直接输入rsync不加参数,程序会将所有的参数全部列出来,以供参考。
Ø 若未义PATH环境变量,就先用CD 命令将路径转到rsync安装目录下的bin目录路径
Ø 上传:rsync –avz /cygdrive/e/log –password-file=test.secrets username@ip address::weblog
Ø 上面这个命令是将本机的e盘下的log文件夹的所有内容包括log文件夹本身,上传到@后的ip address然后在服务端的配置文件中定义的weblog节点下存储的path路径下
Ø 还可以加上几个常用的参数—remove-source-files同步完成后删除源文件
Ø --progress显示同步的进度
Ø --delete让目录保持与服务器上的完全一致
Ø 然后有一点,之前的简介中说rsync是增量传输,这里所谓增量就是覆盖。
Ø 下载:下载的命令很简单,把前面的路径放到最后面就可以了。
Ø Rsync –avz --password-file=test.secrets test@ip address::weblog /cygdrive/e/log
Ø 上面的命令是将服务器上定义的weblog节点下的path路径的文件下载到本地的e盘log目录下
以上的步骤,rsync的客户端也安装设置完成,运行cmd,输入命令便可以测试是否能同步文件了。之下介绍一下用windows计划任务来实现自动,定时,同步传输文件。
Windows计划任务
新建windows计划任务(在客户端设置)
Ø 新建任务(非基本任务),弹出如上图对话框
Ø 输入名称,如:weblogbackup,描述,如:知识产权平台操作日志备份
Ø Tab标签切换至“触发器”,点击新建。触发器表示所建的任务将在什么条件下启动运行。如下图,表示每天的15:13:58这个时间执行任务。
Ø Tab标签切换至操作,设置任务将要执行哪些操作。点击新建,如下图。
上图的操作是运行rsync.exe程序,所以是“启动程序”,路径为rsync安装目录下的bin目录下的rsync.exe的路径。在参数栏输入:-avz /cygdrive/e/weblog --password-file=test.secrets test@ip address::weblog。 /crgdrive/e/weblog是表示要将本机E盘下的WEBLOG文件夹中的内容同步到ip address(如192.168.1.524)机器上。--password-file=test.secrets是事先已经设置好的密码文件。test@是密码文件中设置好的用户名为test(密码文件的格式为username:password)。::weblog是该同步遵从rsync服务端配置文件中[weblog]节点的配置。
Ø 点击确定完成windows计划任务的设置。
结束语:以上是最近公司项目采用的一个同步,自动,定时备份文件的方案。本篇文章说到了MS SQLServer的定时维护计划,rsync的安装配置,以及windows计划任务。每一部分呢都没有说得很细,许多地方也还没有深入的研究。但是这一整套下来的备份方案是可行的。
所以在这里记录下来,与各位同行们分享之,算是抛砖引玉。各位大牛们肯定会有各种看法,意见与建议,希望能提出来,共同进步!