2013-03-06 99 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