Gary Lindahl Asked: 2011-10-02 14:10:06 +0800 CST2011-10-02 14:10:06 +0800 CST 2011-10-02 14:10:06 +0800 CST 快速 MySQL 备份 772 我有一个增长到 3GB 的数据库,它有 3 个 MyISAM 表。我有 4GB 内存。在没有任何性能缺陷的情况下备份此数据库的最佳(快速)方法是什么。 或者 mysqldump 可以正常工作吗? 编辑 我不是在寻找包含大量 SQL 语句的非常大的文件。现在,我有更多选择吗?就像原始数据导出或 mysqlhotcopy 一样,我正在寻找一种更快的方法,因为备份 MyISAM 会获取表锁定? mysqldump 的限制是什么,什么时候应该避免? mysql backup 2 个回答 Voted Best Answer RolandoMySQLDBA 2011-10-02T14:50:48+08:002011-10-02T14:50:48+08:00 mysqldump 应该没问题。由于您只有 3GB 的数据,我希望 mysqldump 相当快(1-2 分钟作为单个输出)。但是,由于您的数据库由 3 个 MyISAM 表组成,因此在备份期间所有三个表都将被锁定。请记住,由于表一次锁定一个,因此您不会在数据库中的所有表之间保持时间点一致性。 我有一些我写的脚本,仍然用来执行 独立数据库的并行备份 单独表的并行备份 如果您关心一致的数据,您可能需要实现我提供的链接的选项 4 中的某些内容,该选项"FLUSH TABLES WITH READ LOCK; SELECT SLEEP(86400);"在单独的会话中执行以锁定对所有表的所有写入,执行 mysqldump(s),然后终止该会话持有表锁。 如果你害怕尝试执行这个,你应该考虑使用 MySQL Replication。具有相同数据的从属服务器可用于执行 mysqldumps,而不会对主数据库施加任何磁盘 I/O 或整体服务器负载。你基本上在 DB Slave 上做这些事情: STOP SLAVE; mysql转储 START SLAVE; 试试看 !!! Rick James 2011-10-06T09:20:04+08:002011-10-06T09:20:04+08:00 Mysqldump 会像一个魅力一样工作,您甚至不会注意到任何性能下降,因为可以轻松处理 3GB 大小,如果您选择@Rolando 脚本链接的第一个选项,那么大小将大大减少,就像它是 500- 600MB 文件。 在标准备份方法中总会有'很多' sql 语句,因为这样在恢复时你会告诉 MySQL 插入这些数据,所以它将通过 SQL 语句。 现在,其他方法是复制您的数据表或使用 mysqlhotcopy,它适用于 MyISAM 表。但我建议使用 mysqldump 的最简单方法,因为您不必担心表级锁定,因为它不会被注意到。此链接可能对您使用原始数据文件创建数据快照以及如何在没有 mysqldump 备份的情况下恢复 MySQL 数据库有所帮助。
mysqldump 应该没问题。由于您只有 3GB 的数据,我希望 mysqldump 相当快(1-2 分钟作为单个输出)。但是,由于您的数据库由 3 个 MyISAM 表组成,因此在备份期间所有三个表都将被锁定。请记住,由于表一次锁定一个,因此您不会在数据库中的所有表之间保持时间点一致性。
我有一些我写的脚本,仍然用来执行
如果您关心一致的数据,您可能需要实现我提供的链接的选项 4 中的某些内容,该选项
"FLUSH TABLES WITH READ LOCK; SELECT SLEEP(86400);"
在单独的会话中执行以锁定对所有表的所有写入,执行 mysqldump(s),然后终止该会话持有表锁。如果你害怕尝试执行这个,你应该考虑使用 MySQL Replication。具有相同数据的从属服务器可用于执行 mysqldumps,而不会对主数据库施加任何磁盘 I/O 或整体服务器负载。你基本上在 DB Slave 上做这些事情:
STOP SLAVE;
START SLAVE;
试试看 !!!
Mysqldump 会像一个魅力一样工作,您甚至不会注意到任何性能下降,因为可以轻松处理 3GB 大小,如果您选择@Rolando 脚本链接的第一个选项,那么大小将大大减少,就像它是 500- 600MB 文件。
在标准备份方法中总会有'很多' sql 语句,因为这样在恢复时你会告诉 MySQL 插入这些数据,所以它将通过 SQL 语句。
现在,其他方法是复制您的数据表或使用 mysqlhotcopy,它适用于 MyISAM 表。但我建议使用 mysqldump 的最简单方法,因为您不必担心表级锁定,因为它不会被注意到。此链接可能对您使用原始数据文件创建数据快照以及如何在没有 mysqldump 备份的情况下恢复 MySQL 数据库有所帮助。