2011-10-04 122 views
3

什麼是轉儲大(兆兆字節)分貝的最佳方式的TB級?除了mysqldump之外,還有其他更快更有效的方法嗎?這是打算壓縮,解壓縮,然後重新導入另一臺服務器上的另一個MySQL數據庫。導出大型數據庫與數據

+0

您可以嘗試使用一個客戶端如[SQLyog的(http://webyog.com/en/downloads.php)。有一個選項可以將整個數據庫直接備份到壓縮文件中。 –

回答

3

如果可以爲你停止數據庫服務器,最好的辦法可能是讓你:

  • 停止數據庫
  • 執行文件的文件副本(包括適當的事務日誌等)到一個新的文件系統。
  • 重新啓動數據庫。

然後將複製的文件移動到新的服務器,並將文件上的數據庫調出。這樣做有點複雜,但這是迄今爲止最快的方法。

我曾經是在MySQL萬億字節+數據庫DBA,這是我們會做數據庫的夜間備份的方式之一。 mysqldump從來沒有工作過的數據很大。我們每晚都要停止數據庫並且複製底層文件。

+0

當你說mysqldump永遠不會爲數據那麼大,你是什麼意思?它需要太長時間還是什麼? – user121196

+0

'mysqldump'需要數小時 - 也許8-10天或更多,也許幾天 - 才能減少數TB的數據。另外,如果數據在'mysqldump'中被插入到數據庫中,則生成的備份可能不一致。對於非常大的數據庫,'mysqldump'不實用。最好的選擇(不包括商用產品)是磁盤快照,然後停止數據庫並複製文件。 –

0

因爲你的意圖似乎具有DB的兩個副本,爲什麼不設置複製做到這一點?

這將確保該DB的這兩個副本保持在相同的狀態(在數據方面反正)。

而且,如果你要導出的快照,您可以:

  • 等待一個安靜的時間。
  • 禁用複製。
  • 備份副本。
  • 重新啓用複製。
+0

複製一個TB以上的數據庫將花費一段時間。 –

+0

是的,所以將數據庫放到文件副本中:-)複製的優點是數據庫保持活動狀態。而且,一旦你穩定了這兩個副本,禁用/備份/啓用操作應該更快,而且不會停機。 – paxdiablo

+0

@paxdiablo:我的意圖是分配一個大型數據庫到客戶端,所以它需要更便攜,文件複製可能無法正常工作。 – user121196