一代备份把我的网站放下 – 有一个简单的解决scheme?

在我的数据库服务器上,有一个cronjob以一种方式备份所有的数据库,使得恢复它们变得容易。

这是这样的:
0 5 * * * /usr/local/bin/backup.php

问题是,在这个过程中,网站(使用该数据库服务器)非常缓慢。 甚至,Pingdom在stream程开始时向我发送了一个“网站停止”警报。

为了解决这个问题,我尝试了这个改变:
0 5 * * * / bin / nice -n 19 /usr/local/bin/backup.php

但似乎并没有改善这种情况。

这怎么可能? 可能问题是备份脚本locking数据库。 但是,如果我不locking表,则备份可能不一致。

你将如何解决这些要求下的问题? 1.不购买任何硬件2.易于实施和维护3.无专有解决scheme

这是一个非常普遍的问题,可以通过多种方式解决。 其中最好也是最可靠的是使用主/从复制。 简单来说:

  • 您运行数据库的第二个实例(必须在另一个端口上)。 这通常与主人保持同步。
  • 当需要备份时,locking从站上的表并将其备份。
  • 一旦备份完成,释放锁,从属将赶上主。

当然,这个服务于你的网站的主人不会错过任何一个节拍。