MySQL数据库文件夹备份脚本

4

我们通过复制整个mySQL数据库目录来备份我们的基于Windows的mySQL数据库:

c$\Documents and Settings\All Users\Application Data\MySQL\MySQL Server 5.5

这会导致MySQL出现问题,损坏表并使MySQL崩溃。备份活动目录不是一个好主意。我们计划在晚上关闭MySQL然后运行脚本。我们也考虑过运行mysqldump。有两个问题:

采取文件夹备份的缺点是什么?它似乎是最快的恢复方法。

在运行服务器时运行mysqldump会使其无响应直到转储完成吗?


如果您有两个问题,应该分别提出。此外,这些问题可能更适合在服务器故障上提问。 - Richard Marskell - Drackir
抱歉,我们能把这个移到服务器故障吗? - pluke
2个回答

3
你可以使用--single-transaction选项运行mysqldump(针对InnoDB表 - 希望你正在使用InnoDB)。这样,mysqldump在转储期间不需要锁定表格,因此系统不会完全无响应。(性能可能会受到一定影响,但至少不会彻底死机。)

2
备份保存数据库的真实文件夹,正如您所注意到的那样,存在一些问题。在复制文件夹时,文件可能会发生更改,这可能会导致备份损坏或(如果锁定了所有内容)使MySQL无法写入(甚至可能无法从中读取)数据库,这也是极其不好的情况。
一个规避方法是通过文件系统快照进行文件夹备份。我不知道NTFS是否支持此功能,但通过快速的谷歌搜索,我找到了一个名为“Shadow Copy”的东西。您可能需要研究一下它。
然后,正如pilsetnieks已经指出的那样,您可以使用--single-transaction选项在InnoDB表上运行mysqldump
如果您在Linux上,我真的建议您尝试Percona Xtrabackup,它拥有您想要的一切。他们已经发布了Windows的Alpha版本。您可能值得一看。

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