使用rsync备份MySQL

11

我使用下面的rsync命令将MySQL数据备份到局域网中的一台机器。它按预期工作。

rsync -avz /mysql/ root:PassWord@192.168.50.180:: /root/testme/

我只想确认这是否是使用rsync的正确方式。

我还想知道这个5分钟的crontab条目是否有效。

3个回答

17
  1. 不要使用远程机器的root用户进行此操作。事实上,永远不要直接连接到root用户,这是一个重大的安全风险。在这种情况下,只需创建一个权限较少的新用户,该用户只能写入备份位置。
  2. 不要为此连接使用密码,而是使用公钥身份验证
  3. 确保在执行此操作时MySQL未运行,否则您可能会得到损坏的备份。
  4. 使用mysqldump在MySQL运行时创建数据库转储。然后可以安全地复制该转储文件。

6

我发现更好的MySQL备份方法是使用复制功能。

将备份机器设置为主服务器的从服务器。每个事务都会自动镜像。

你也可以关闭从服务器并从中执行完整的磁带备份。当你重新启动从服务器时,它将再次与主服务器同步。


1
只有在主服务器上拥有完整的二进制日志时,才能使此操作起作用。有时最好从稍微过时的备份(使用 mysqldump --master-data 进行备份)中还原从服务器,然后启动 slave 以确保生成的数据库是完整的。 - Scott Hyndman
3
是的,将您的数据库写入另一台机器进行复制。然后,当您意外删除整个表或数据库时,您可以转到复制的MySQL服务器,然后...哦,该死。 - Ernie

5
我不太了解你的rsync命令,但我不确定这是使用MySQL进行备份的正确/最佳方法;您应该查看手册的此页面:6.1. 数据库备份
考虑到锁定、延迟写入以及MySQL可以对其数据执行的任何优化等问题,数据库备份并不像人们想象的那么简单...特别是如果您的表没有使用MyISAM引擎。
关于“每5分钟的crontab”:您每5分钟备份一次吗?如果您的数据如此敏感,您应该考虑其他方案,例如将数据复制到另一台服务器,以始终拥有最新的副本。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接