服务器数据备份与恢复
一、故障转移集群
把两台服务器组合为一个集群,利用集群对外提供多个基于独立ip地址和共享存储的服务,当一台机器发生故障,另一台2秒左右上线。
针对服务的备份是双份,但存储共同读写一份。

两台机器都安装serve-u,servu对外提供服务ip设置为225,serv-u存储目录设置为G。
这样当A/B机器不管坏了哪个,都可以几秒内切换另一台继续对外提供服务。
服务可靠性高,适用于对双活要求极高的场景。但故障转移集群不提供对存储的相关可靠性功能。
网络存储(硬件存储或者软件存储)数据主要还是依赖存储本身的可靠性。
二、hyper-v复制
不同物理机的两台hyperv之间可以通过建立复制关系,实现两台虚拟机状态和数据同步。

适合数据量不大的关键服务和关键数据,故障发生后可以用另一台虚拟机上线。
数据安全性高,故障后需要手动操作备虚拟机,点击“故障转移”才能上线。
如果主虚拟机能修复,就需要备机反向复制切换主次关系。
如果主虚拟机不能修复,“删除复制”就可以让备机独立运行。
主备之间网速、备虚拟机硬盘读写速度都不能小于主机数据更改速度,否则备机一直累积数据,同步不过来会造成数据丢失。
vhdx硬盘撑大后再收缩非常不方便。需要虚拟机关机后再操作vhdx,耗费时间大,且收缩过程可能有操作风险。
三、同步软件
frefilesync,是基于共享文件夹的同步软件,优点是操作简单,容易上手。


cwrsync,是windows版本下的rsync软件,用法和命令跟Linux下的rsync基本一致。
服务端和客户端都安装cersync。
服务端:
配置文件做修改,定义数据传输模块和规则:

参数解释:
use chroot:设置为false时,允许客户端访问服务器上的文件系统。设置为true时,客户端只能访问其家目录,这样可以提高安全性。
strict modes:设置为false时,允许匿名访问。设置为true时,需要认证才能访问。
hosts allow:指定允许连接的客户端IP地址或域名。例如,hosts allow = *表示允许所有IP地址连接。
log file:设置日志文件的路径,用于记录同步活动的日志信息。
pid file:设置进程ID文件的路径,用于记录服务器的进程信息。
port:设置服务器监听的端口号,默认是873。
uid 和 gid:分别设置运行服务的用户ID和组ID,通常设置为0表示以管理员权限运行。
read only:设置为false时,允许客户端写入文件;设置为true时,客户端只能读取文件。
transfer logging:设置为yes时,记录传输过程中的详细信息;设置为no时,不记录传输信息。
auth users:设置允许访问的用户名列表。
如果auth user不定义,那么客户端连接时随便填写用户名字段都可以正常接入。格式:用户名@IP地址::模块名。
secrets file:设置密码文件的路径,用于认证用户访问权限。
hosts deny:设置禁止连接的客户端IP地址或域名。
客户端:
客户端虽然也安装了一样的cwrsync,但不需要做任何配置,主要是利用安装软件后新增的命令集。

cwRsync参数-vzrtopg的具体含义如下:
-v:详细模式输出,传输时的进度等信息。
-z:传输时进行压缩,以提高传输效率。
-r:对子目录以递归模式。
-t:保持文件时间信息。
-o:保持文件属主信息。
-p:保持文件权限。
-g:保持文件属组信息。
--progress
--progress参数用于在传输过程中显示详细的进度信息。
--delete
--delete参数用于在同步过程中删除目标目录中比源目录多出的文件。当使用rsync进行目录同步时,如果目标目录中存在源目录中没有的文件,这些文件会被删除以保持目标目录与源目录的一致性。这个参数常用于确保两个目录完全同步,避免目标目录中出现多余的文件。
--log-file
用于存放拷贝过程的日志。
>>c:\rsync.log
用于将拷贝过程的输出信息留存下来。
