跳到内容

备份简介

什么是备份?

备份是指对文件系统或数据库中的数据进行复制。在发生错误或灾难的情况下,可以及时恢复系统的有效数据,并恢复正常运行。

备份方法有哪些?

  • 完全备份:是指一次性复制硬盘或数据库中所有文件、文件夹或数据。(优点:最好,可以更快地恢复数据。缺点:占用更大的硬盘空间。)
  • 增量备份:是指备份上次完全备份或增量备份后更新的数据。过程是这样的,比如第一天做完全备份;第二天备份新添加的数据,而不是做完全备份;第三天在第二天的基础上备份新添加的数据,相对于下一天,以此类推。
  • 差异备份:是指备份完全备份后更改的文件。例如,第一天做完全备份;第二天备份新数据;第三天备份从第二天到第三天的新数据;第四天备份从第二天到第四天所有新数据,以此类推。
  • 选择性备份:是指备份系统的一部分。
  • 冷备份:是指系统处于关机或维护状态时的备份。备份的数据与此时系统中的数据完全一致。
  • 热备份:是指系统正常运行时的备份。由于系统中的数据随时更新,备份的数据相对于系统的真实数据有一定的滞后性。
  • 远程备份:是指将数据备份到另一个地理位置,以避免火灾、自然灾害、盗窃等造成的数据丢失和服务中断。

rsync 简述

在服务器上,我将第一个分区备份到第二个分区,俗称“本地备份”。具体的备份工具是tar , dd , dump , cp等都可以实现。虽然数据备份在该服务器上,但如果硬件故障导致无法正常启动,则无法获取数据。为了解决本地备份的这个问题,我们引入了另一种备份方式——“远程备份”。

有些人会说,我不能在第一台服务器上使用tarcp命令,然后通过scpsftp发送到第二台服务器吗?

在生产环境中,数据量比较大。首先,tarcp会消耗大量时间,占用系统性能。通过scpsftp传输也会占用大量网络带宽,这在实际生产环境中是不允许的。其次,这些命令或工具需要管理员手动输入,需要结合计划任务的crontab。但是,crontab设置的时间不太好掌握,如果时间太短或太长,数据备份都不合适。

因此,生产环境中需要一种数据备份,需要满足以下要求

  1. 通过网络传输备份
  2. 实时数据文件同步
  3. 占用更少的系统资源,效率更高

rsync似乎满足了上述需求。它使用 GNU 开源许可协议。它是一个快速增量备份工具。最新版本是 3.2.3 (2020-08-06)。您可以访问官方网站了解更多信息。

在平台支持方面,大多数类 Unix 系统都支持,无论是 GNU/Linux 还是 BSD。此外,Windows 平台下也有相关的rsync,例如cwRsync。

最初的rsync是由澳大利亚程序员维护的Andrew Tridgell(如下图 1 所示),现在由Wayne Davison(如下图 2 所示)维护。 ) 为了维护,您可以访问github 项目地址获取所需的信息。

 Andrew Tridgell  Wayne Davison

注意

rsync 本身只是一个增量备份工具,它没有实时数据同步的功能(需要其他程序补充)。此外,同步是单向的。如果你想实现双向同步,你需要与其他工具配合。

基本原理和特性

rsync 如何实现高效的单向数据同步备份?

rsync 的核心是它的 **校验和算法**。有关详细信息,您可以访问 Rsync 工作原理Rsync 算法。本节超出了作者的能力范围,不会过多介绍。

rsync 的特点是

  • 可以递归地更新整个目录;
  • 可以选择性地保留文件同步属性,如硬链接、软链接、所有者、组、对应权限、修改时间等,并可以保留部分属性;
  • 支持两种传输协议,一个是 ssh 协议,另一个是 rsync 协议

作者:tianci li

贡献者:Steven Spencer、Ganna Zhyrnova