详细说明:我有一些MySQL数据库,例如:
CREATE DATABASE MyDB1;
CREATE DATABASE MyDB2;
CREATE DATABASE MyDB3;
CREATE DATABASE MyDB4;
每个客户端都使用了数据库。 MyDB1 开始使用太多资源并需要专用服务器。我需要传输只有一个数据库(如果该数据库不可用就行了(如果它一直可用,那就更好了)其他数据库应该一直可用。是免费的MySQL版本吗? 每个数据库大小接近5 GB。
答案 0 :(得分:1)
使用mysqldump备份要传输的数据库。在Unix或Linux环境中执行以下操作:
mysqldump -u my_username -p name_of_database_to_transfer > scp username_on_remote_machine@IP_address_of_remote_machine:/location_to_save_on_remote/backup.sql
在Windows平台上,共享要转移到的机器的驱动器和mysqldump到共享。
或者转储到usb并转移到分配的计算机。当文件在机器上时,通过任何mysql客户端执行脚本或再次使用mysqldump恢复到数据库。
这意味着在新计算机上,您创建一个与备份名称相同的空数据库,并恢复脚本以将数据和表推回存在。
EG。 mysqldump -u your_username -p database_name < backup.sql
。
如果我不理解你的问题,希望这有助于原谅我。
答案 1 :(得分:1)
我认为mysqldump会锁定你的表。我建议使用http://www.percona.com/software/percona-xtrabackup/之类的东西,它可以让您以“热拷贝”方式备份数据库,通过网络传输文件,并准备好在几分钟内运行。其他解决方案是在复制中配置mysql。所以从节点将复制主数据。然后,您可以安全地关闭主服务器
答案 2 :(得分:1)
MySQL有一个名为myqslhotcopy的工具,它可以转储正在运行的数据库。然而它确实使用了lock_table,但它应该比mysqldump更快。 http://dev.mysql.com/doc/refman/5.0/en/mysqlhotcopy.html
我的建议是在非高峰时段转储数据库,并使用scp / rsync将其移动到所需的服务器。
另一种方法是使用mysqldump,正如Bitmap在他的回答中所建议的那样。