如何防止数据库损坏 - MySQL

时间:2011-07-26 23:43:13

标签: php mysql

目前正在运营电子商务商店。在过去的几个月里,我们遇到了许多影响商店的奇怪/随机问题。在几乎所有情况下,我们都无法复制错误,结果证明它是一个腐败的数据库。

导致这种情况发生的原因是什么? 如何预防?

编辑: 对不起,这很模糊。基本上我正在寻找可能导致数据库损坏的事情。它是一个MySql4数据库。

什么导致数据库损坏,以及如何检测和阻止。

只是一般。

2 个答案:

答案 0 :(得分:2)

问题非常广泛,所以我会尝试回答广泛的建议。 MySQL,虽然不是我所说的企业级DBMS,但不应该有随机的腐败问题。

  • 检查您的硬件。我不知道你的平台,但假设它是linux你可以使用Try prime95来测试你的处理器和smartmontools做一些基本的磁盘测试。 Memtest86可以诊断内存错误,但您可能不想仅为此重新启动服务器。
  • 根据我的经验,某些特定的内核版本可能导致无法解释的问题。你能升级吗?
  • 测试在较新版本的MySQL或不同系统上导入数据。这可能没有用,因为“还没有错误”并不意味着问题得到解决。
  • 如果您使用的MyISAM表仍然可以正常工作,您可以尝试使用符合ACID标准的引擎。 InnoDB在一段时间内风靡一时,但我相信它已经被取代了。

答案 1 :(得分:1)

这是一个相当普遍的问题,所以我会告诉你我个人见过的事。

我见过的大多数MySQL数据库故障都是因为硬盘驱动器在服务器硬关机而不是正常关机时的故障或电源故障被破坏了。

在这两种情况下,你可以采取的主要措施是经常备份你的数据库(并将它们存储在一些不会被篡改的地方),这样你就会有一些最新的东西可以恢复。此外,将数据存储在RAID中也很有用,因为如果根据您的设置,如果磁盘或两个磁盘崩溃,您可以继续使用。如果电源耗尽,为磁盘备用电源也很好。

此外,尝试使用可在出现问题时恢复的健壮表。我以前使用MyISAM表,但如果我遇到问题,我会丢失数据,必须从最新的备份开始。所以我切换到InnoDB然后我实际上能够从大多数崩溃恢复。然而,这是前一段时间,InnoDB可能不再是最新最好的了。

无论如何,祝你好运解决问题,如果你有更多信息,希望我能提供更多帮助。