2013-04-21 32 views
3

我想備份一個大的innodb MySQL表,但不幸的是沒有足夠的可用空間來創建它的全部轉儲。所以我想過把備份分成兩部分。這意味着我將轉儲一半的表格,將該文件移動到外部備份位置,而不是備份下半部分並將其移動。轉儲大塊的MySQL表

我已經習慣了這樣做的:mysqldump --user=$user --password=$pass --single-transaction --quick

我怎麼能同時執行這樣的操作二分之一

回答

2

您可以像這樣備份特定表格

表格t1,t2和t3來自您的數據庫。

mysqldump -u... -p... mydb t1 t2 t3 > mydb_tables.sql 

或者您可以創建一個佈告點(unix)或網絡驅動器(windows)並直接在上面進行備份。

如果你想備份只是一個表中的多個部分

mysqldump --databases X --tables Y --where="1 limit 1000000" 
mysqldump --databases X --tables Y --where="myColumn < 1000" 
+0

也許我不太清楚,但我並不想備份超過一張桌子。我正在查看備份一個表的部分。一部分,轉移,然後是第二部分。我正在考慮進行安裝,但被告知如果備份過程中出現問題,整個系統可能會卡住,所以認爲這種解決方案可能更安全。 – Noam 2013-04-21 19:23:39

+0

個人我會去登山,但我發佈了你想要做的事情,在我的答案轉儲查詢 – TheEwook 2013-04-21 19:26:15

+0

謝謝!你能解釋一下'1限制1000000'嗎?我假設我理解'myColumn <1000',但不知道第一個是如何相關/它做了什麼。另外,你有沒有很好的參考可以引導我創建mount(unix)? – Noam 2013-04-21 19:39:11