对于具有简单数据库的 Debian 系统来说,适当的备份策略是什么?

对于具有简单数据库的 Debian 系统来说,适当的备份策略是什么?

我想知道适合运行简单数据库的小型企业的备份策略。整个系统由一台带有内部硬盘的本地计算机运行。我已经研究过一些备份实用程序,例如rsyncdump,但不确定哪个更适合这种类型的场景。

作为一个具体的例子,我想了解像MySQL这样的备份实用程序是否rsync适合从数据库(MySQL)复制数据并将其存储到外部硬盘驱动器中。

答案1

你问,

像 rsync 这样的备份实用程序是否适合从数据库(MySQL)复制数据

这里的答案是断然的“不!”。

除非您准备在执行rsync基于 的备份时关闭 MySQL,否则您几乎肯定会在备份中得到损坏的数据库。 (实时系统将保持不受影响并正常工作。)原因是数据库系统可以并且将会在不同时间更新不同文件的不同部分。rsync愉快地忽略这一点并复制找到的文件。

例如,考虑两个相互关联的文件 A 和 B。A 被复制为rsync.在此过程中,B 由数据库系统更新。现在,数据库系统对 A 应用相关更新,但rsync已完成 A 并开始对 B 进行更新。备份现在包含两个“有效”文件 A 和 B,但它们彼此不同步。

要备份数据库,您需要使用了解数据库系统的工具。 MySQL 软件包中包含此类工具,您应该使用它们来备份数据库。 (然后,您可以使用rsync或任何其他首选实用程序将生成的数据库备份复制到外部磁盘驱动器。)

答案2

一般来说,不会。数据库必须使用专门构建的实用程序进行备份,以确保备份一致(即没有半提交的事务等)。实际上,对于在尝试复制文件时正在写入的任何文件都是如此 - 如果没有写入数据的程序的帮助,很难获得一致的备份。

(所以,如果你关闭 MySQL,那么你可以使用 rsync。但人们通常希望保持数据库正常运行。)

有多种适用于 MySQL 的工具,从mysqldumpPercona 的 XtraBackup 到。这两个在 Jessie 中都可用(对于 Wheezy 也是如此,尽管 xtrabackup 可能需要添加第 3 方存储库)。

相关内容