4

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

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

这会导致 MySQL 出现问题,损坏表并使 MySQL 崩溃。备份活动目录不是一个好主意。我们希望在一夜之间关闭 MySQL,然后运行脚本。我们还查看了运行 mysqldump。两个问题:

进行文件夹备份有什么缺点?这似乎是最快的恢复方法

在转储完成之前,在实时服务器上运行 mysqldump 会使其无响应吗?

4

2 回答 2

3

您可以mysqldump使用该--single-transaction选项运行(对于 InnoDB 表 - 我希望您使用的是 InnoDB。)这种方式mysqldump不需要在转储期间锁定表,并且您的系统不会完全无响应。(性能可能会受到一些影响,但至少不会完全死掉。)

于 2013-05-03T09:13:50.357 回答
2

正如您所注意到的,备份保存数据库的真实文件夹会带来一些问题。复制文件夹时文件可能会更改,这可能会导致备份损坏或(如果您锁定所有内容),使 MySQL 无法写入(甚至可能读取)数据库,这也是非常非常不好(TM)。

一种规避方法是通过文件系统快照进行文件夹备份。我不知道 NTFS 是否支持这一点,但是快速的 Google 搜索出现了一个叫做Shadow Copy的东西。你可能想调查一下。

然后,正如 pilsetnieks 已经指出的那样,您可以使用该选项mysqldump在 InnoDB 表上运行。--single-transaction

如果你在 Linux 上,我真的建议你试试Percona Xtrabackup,它有你想要的一切。他们已经发布了适用于 Windows 的 Alpha 版本。那可能值得一看。

于 2013-05-03T09:30:05.427 回答