2011-07-21 39 views
0

詳細:我有一些MySQL數據庫,例如:我可以在不停止MySQL服務器的情況下傳輸一個MySQL數據庫嗎?

CREATE DATABASE MyDB1; 
CREATE DATABASE MyDB2; 
CREATE DATABASE MyDB3; 
CREATE DATABASE MyDB4; 

每一個被存入數據庫由另一個客戶機。 MyDB1開始到使用太多資源並需要專用服務器。我需要傳輸只有一個數據庫(如果該數據庫將不可用(如果它始終可用,則更好)其他數據庫應始終可用。是否免費版本的MySQL足夠了? 每個數據庫大小都接近5 。GB

回答

1

MySQL有一個名爲myqslhotcopy的工具,它可以轉儲正在運行的數據庫。它確實使用lock_table,但它應該比mysqldump更快。 http://dev.mysql.com/doc/refman/5.0/en/mysqlhotcopy.html

我的建議是在非繁忙時間轉儲數據庫,並使用scp/rsync將其移動到所需的服務器。

另一種方法是使用mysqldump作爲Bitmap在他的回答中提出的建議。

1

使用mysqldump備份要轉移在Unix或Linux環境的數據庫做這樣的事情:

mysqldump -u my_username -p name_of_database_to_transfer > scp [email protected]_address_of_remote_machine:/location_to_save_on_remote/backup.sql 

在Windows平臺上,共享機器的驅動器轉移到與mysqldump的到share

或者dum p到usb上並轉移到分配的機器上。當文件在機器上時,通過任何mysql客戶端執行腳本或再次使用mysqldump恢復到數據庫。

這意味着在新機器上,您將創建一個與備份的數據庫名稱相同的空數據庫,並還原腳本以將數據和表推回存在。

例如, mysqldump -u your_username -p database_name < backup.sql

希望這可以幫助別人原諒我,如果我沒有理解你的問題。

1

我認爲mysqldump會鎖定你的表。我建議這樣的:http://www.percona.com/software/percona-xtrabackup/,它可以讓你以「熱副本」的方式備份你的數據庫,通過網絡傳輸文件,並準備在幾分鐘內運行。其他解決方案是在複製中配置mysql。所以從節點將複製主數據。您可以安全關閉主服務器

相關問題