如果表损坏,我可以恢复备份吗?

时间:2009-06-23 13:21:05

标签: mysql corruption database-restore

我希望这对你们中的一个人来说是一个简单的答案。

我们已经在单板计算机上运行PHP / MySQL,以获得将成为基于Web的管理工具的产品。该产品将成为“设置并忘记它”的应用程序。

我们关注的一个问题(无论它是否有效)是MySQL表/ dbase损坏。

我们在这个小盒子上不断运行进程,可以诊断损坏,或者捕获dbase错误并采取相应的行动。

我们通过这些相同的流程定期创建备份。我们的想法是,如果我们感觉到腐败或捕获dbase错误,我们将暂时暂停我们的进程并从最新的备份中恢复表。我们希望这将解决腐败问题。

问题是:如果MySQL表已损坏,我们可以执行备份还原吗?

如果我们上面的逻辑是正确的,我想会有一个后续问题。备份还原是否会纠正表损坏问题?

我知道这听起来很傻,但我们并不熟悉MySQL后端。我们担心如果dbase(或表)以某种方式被破坏,这也会妨碍备份恢复。

你们有些人可以权衡这个吗?

非常感谢。

4 个答案:

答案 0 :(得分:1)

是的,它会的。请记住,在上次备份之前,您只会拥有数据,因此您将丢失从该时间到损坏时间的所有内容,但这通常是最多一天。

备份是数据库的副本,无论处于备份期间的状态如何。如果使用干净备份还原损坏的数据库,那么您将会变得很糟糕。因此,请保留每月备份和过去七天。以防你的一个备份被冲洗。

答案 1 :(得分:1)

我认为,在您想到这一点之前,您需要采取措施确保永远不会备份损坏的表。因为如果您恢复备份并且备份本身就会损坏,那么您就会回到起步的位置。

您使用的是什么存储引擎?

答案 2 :(得分:1)

要考虑的一件事;根据数据库的结构,从备份中恢复单个表可能会导致参照完整性问题。

答案 3 :(得分:0)

我认为备份的重点不是吗?

此外,如果表已经损坏,那么当您尝试恢复它时可能发生的最坏情况是什么?

我说去吧。