修复数据完整性

时间:2010-08-31 22:15:01

标签: php mysql data-integrity repair

我认为这是一个长镜头,但在这里:

基本问题是:开发团队如何开始修复大型受损数据集的数据完整性?

我正在帮助的公司有一个巨大的MySQL / PHP5系统,有几年的无用数据,无效的数据,破坏的引用等。最重要的是,这些数据引用了一些在线服务的数据,如Google AdWords。

因此本地数据库存在问题,本地和远程(例如AdWords)之间的关系也存在问题,使问题更加复杂。

是否有人可以分享提示,技巧或最佳实践以开始修复数据完整性?并在一个快速连续添加和更新的系统中保持数据完整性?

2 个答案:

答案 0 :(得分:0)

根据要求和存在多少“损坏”,创建新数据库并修改应用程序以同时更新两者可能是明智的。

有效的数据可以导入到新的d / b中,然后逐步的一系列提取可以添加有效数据并导入它们,直到努力增加到不再有意义恢复严重损坏的程度数据。当然,未损坏的不完整数据库比腐败数据库更好,更有用 - 只要它已损坏,就不能称之为“完整”。

答案 1 :(得分:0)

最大的问题是确定您打算对问题数据做些什么:

  • 没有
  • 从其他地方的数据重建,并可通过代码
  • 访问
  • 手动重建数据
  • 删除它(或最好将其存档)

为了做到这一点,您需要确定问题数据如何影响系统/组织以及解决方案将如何影响系统/组织。

这是您的第一级分类。一旦你有了这个,你需要开始识别特定的问题,并从中导出一组定义错误模式的语义规则。

然后,您应该可以定义所需的修补程序,有效地优先处理工作并规划资源利用率。它还应该允许您确定优先级,计划和部分识别根本原因的删除。

我不确定你对'巨大'的定义是什么 - 但我推断这意味着有很多程序员参与其中 - 在这种情况下你肯定需要建立管理数据完整性的标准和程序继续前进,就像你应该对性能和安全性一样。

您定义的规则是持续数据管理的起点,但您应该考虑如何应用这些规则 - 向每个表添加时间戳字段/维护表引用违反特定规则的行意味着每次要检查数据时都不需要处理所有数据 - 只是自上次检查后发生变化的内容 - 最好跟踪从违规列表中删除的案例正如那些被添加的那样。

确保应用修补程序的记录和相应的规则违规 - 并分析数据以识别重新分解可能导致更易维护的代码的热点。