备份MySQL服务器


13

备份MySQL服务器的最佳方法是什么?我想要一种不需要关闭服务器的方法。是否需要类似InnoDB热备份,或者我可以只使用MySQL Administrator工具中提供的备份工具。一个相对于另一个提供什么优势?

Answers:


12

我们使用mysqldump,它在MySQL运行时有效。我们开始使用mysqldump,因为它是在我们的需求很小的时候最容易设置的,并且看起来可以满足这些需求。从那时起,我们的数据库已经增长,但是我们还没有超越mysqldump。是否适合您将取决于数据库的大小,其通常的操作负载以及可能的其他事情。


mysqldump很棒。与其他一些RDMS的二进制转储不同,默认情况下,mysqldump生成的文件是带有完整sql命令的文本文件-大多数是行的CREATE TABLE语句和INSERT。作为简单的文本文件,可以轻松地对其进行操作,压缩或加密。
nedm

3
当您拥有大型数据库和/或依赖MyISAM时,mysqldump会崩溃。导入转储时,我们有一些带有大量索引的400G数据库,因此从备份中恢复需要花费树天的时间。当您的mysqldump不再使用时,LVM快照可以提供更好的恢复时间。
Nils-AndersNøttseter,2009年

4

看一下percona的xtrabackup-它是用于innodb数据库的mysqlhotcopy的有趣开源替代品。

你可以在这里了解更多


3

可以使用mysqldump,但是它不能保证数据集的一致性,除非您在转储期间锁定了所有表。这会将数据库置于只读模式,但是将确保转储是一致的。

您可以使用以下命令锁定表:

FLUSH TABLES WITH READ LOCK;

完成后,您可以使用以下方法释放锁:

UNLOCK TABLES;

7
mysqldump --single-transaction将确保一致的快照
Dave Cheney

5
--single-transaction仅在所有表均为InnoDB时才起作用。MyISAM表不支持事务。
Nils-AndersNøttseter,2009年


2

设置MySQL复制。作为奖励,您可以使服务器运行繁重的报表作业和mysqldump,而不会影响您的主要生产数据库。


请记住,复制可能会延迟,因此不一定是您的主数据库的时间点备份。

2
复制不是备份。如果您意外删除了主机中的某些内容,则从机也会将其删除。从站还是可以使用mysqldump的,因为它不会影响您的生产服务器(如Dave所述),所以很好。
马丁·海姆斯


0

我也曾经看过一个名为mysqlhotcopy的工具,并认为它具有很大的前景-尽管从未使用过。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.