我们通过复制整个mySQL数据库目录来备份基于Windows的mySQL数据库过夜:
c$\Documents and Settings\All Users\Application Data\MySQL\MySQL Server 5.5
这导致MySQL出现问题,破坏了表格并导致MySQL崩溃。备份活动目录不是一个好主意。我们希望在一夜之间关闭MySQL并运行脚本。我们还研究了运行mysqldump。两个问题:
进行文件夹备份有什么缺点?这似乎是最快的恢复方法
在转储完成之前,在实时服务器上运行mysqldump会使其无响应吗?
答案 0 :(得分:3)
您可以使用mysqldump
选项运行--single-transaction
(对于InnoDB表 - 我希望您使用InnoDB。)那样mysqldump
不需要在持续时间内锁定表转储和您的系统将不会完全没有响应。 (性能可能会受到一些影响,但至少它不会完全死亡。)
答案 1 :(得分:2)
正如您所注意到的那样,备份保存数据库的真实文件夹会出现一些问题。复制文件夹时文件可能会发生变化,这可能会导致备份损坏或(如果锁定所有内容),使MySQL无法写入(或甚至可能从数据库中读取)数据库,这也非常不good(TM)。
一种循环方法是通过文件系统快照进行文件夹备份。我不知道NTFS是否支持这一点,但是快速谷歌搜索出现了一个名为 Shadow Copy 的东西。你可能想看一下。
然后,正如pilsetnieks已经指出的那样,您可以使用mysqldump
选项在InnoDB表上运行--single-transaction
。
如果你在Linux上,我真的建议你试试Percona Xtrabackup,它拥有你想要的一切。他们发布了Alpha version for Windows。这可能值得一看。