备份包含数百万条目的数据库时需要考虑什么?有没有我可以使用的工具(可能与 MySQL 服务器捆绑在一起)?
根据您的要求,我自己一直在使用以下几种选项:
- 如果不需要热备份,请关闭数据库服务器并在文件系统级别进行备份,即。 e.使用 tar、rsync 或类似的方法。
- 如果您确实需要数据库服务器继续运行,您可以从mysql热拷贝工具(perl 脚本),它锁定正在备份的表并允许您选择单个表和数据库。
- 如果您希望备份是便携式的,您可能需要使用mysql转储,它创建 SQL 脚本来重新创建数据,但比 mysqlhotcopy 慢
- 如果您在某个时间点拥有数据库的副本,您也可以将二进制日志(从该时间点开始)保存在安全的地方。这很容易做到,并且不会干扰服务器的操作,但可能不是最快的恢复,并且您必须确保不会错过部分日志。
我没有尝试过但对我来说有意义的方法:
- 如果您有一个像 ZFS 这样的文件系统或者在 LVM 上运行,那么通过创建文件系统快照来创建数据库快照可能是一个好主意,因为它们非常非常快。只需记住在整个操作过程中确保数据库的状态一致,例如。 G。通过做
FLUSH TABLES WITH READ LOCK
(当然,不要忘记UNLOCK TABLES
然后)
此外:
- 您可以使用主从设置将生产服务器复制到另一台计算机或同一计算机上的第二个实例,并对复制的副本执行上述任何操作,而无需处理生产计算机。除了连续运行之外,您还可以定期启动从属服务器,让它读取二进制日志,然后再次将其关闭。
- 我认为,MySQL集群和企业授权版本有更多工具,但我从未尝试过。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)