2011-04-14 84 views
1

我有一個大小約6GB的數據庫,它有一個1260萬行的表。我試圖通過對數據庫中導出到一個SQL轉儲:mysqldump做部分備份 - 不完整的錶轉儲

的mysqldump -u根-p DB_NAME> db_name.sql

當命令完成後,導出的SQL轉儲文件只是2GB和主表了僅輸出約100萬行。

什麼可能是錯的?

回答

7

還有就是由於某種原因,來解決這個問題最簡單的方法了2GB大小限制使用split

mysqldump ... | split -b 250m - filename.sql- 

您也可以壓縮文件是這樣的:

mysqldump ... | gzip -9c | split -b 250m - filename.sql.gz- 

恢復從非壓縮文件中執行此操作:

cat filename.sql-* | mysql ... 

對於壓縮d文件:

cat filename.sql-* | zcat | mysql ... 

當然,如果你想有一個單一的文件,然後,可以tar結果。

顯然,如果您願意,您可以用不同的尺寸替換250m

+0

這是一個很好的解決方法,但我強烈建議您將數據轉儲到可處理任意大小文件的位置。否則,你正在尋找頭痛。它應該像處理較大文件的文件系統重新格式化一樣簡單。 – Mikecito 2011-04-14 03:32:15

+0

命令中的'...'連接到數據庫並選擇表格,就像您在原始文章中所用的那樣。 – 2011-04-14 03:32:34

+0

我不知道重新格式化文件系統總是一個非常簡單的選擇。 – 2011-04-14 03:33:16

0

您的文件系統可能僅限於2GB文件。

+0

可能不足以壓縮它 – 2011-04-14 03:31:11

0

發生這種情況是因爲某些SQL轉儲的轉儲數據大小有限。 如果超出限制,則無法轉儲數據庫。

如果你真的想這樣做,你必須壓縮數據庫。通過使用ZIP,GZIP等。在傾銷數據之前。