2013-03-06 38 views
0

导出MySQL数据库然后导入MySQL数据库(使用新名称)时,如何验证是否存在损坏或数据丢失?如何验证以前导出的数据库的MySQL导入?

+1

如果文件已损坏,则加载时不会出现错误。 – Barmar 2013-03-06 18:07:03

+0

老实说,我有批处理,每天都在运行dump + import,几年后就没有失败。如果中断,它会中断(例如表格丢失)。我通过做一些计数来检查过去的一致性,并在不同的关键表中查找最大记录值。当我的数据非常重要时,我正在使用innoDB。我的2美分 – Bertrand 2013-03-06 18:11:32

+0

显然我简化了这个情况,问了一个有意义的问题。问题是,有没有办法检查完整性? – 2013-03-06 18:30:12

回答

1

计算每个表中的行数,并确保计数匹配前后。

看看每个表中的第一个(最低)和最后一个(最高ID)行,并确保它们是您所期望的。

这将计算100行批量文本字段值的SHA-1哈希值。需要有idcontent列才能使用它,但是您可以将其更改为与您的表匹配。

SELECT id DIV 100 AS idbatch, 
     SHA1(GROUP_CONCAT(content ORDER BY id)) as contenthash 
    FROM table 
GROUP BY id DIV 100 

如果您在获得前后相同的结果,这是一个非常好的选择,您的内容列已被正确移动。

1

你可以转储数据库,只是区分两者。

+0

欢迎来到StackOverflow。请写更多的细节或示例代码,避免发布简短的答案:) – 2013-05-03 17:55:35