我可以在不停止 MySQL 服务器的情况下传输一个 MySQL 数据库吗?
详细:我有一些MySQL数据库,例如:
CREATE DATABASE MyDB1;
CREATE DATABASE MyDB2;
CREATE DATABASE MyDB3;
CREATE DATABASE MyDB4;
每个数据库都被另一个客户端使用。 MyDB1开始使用太多资源并且需要专用服务器。我需要传输仅一个数据库(如果该数据库不可用也没关系(如果它始终可用更好)其他数据库应该始终可用。免费版本的MySQL是否足够? 每个数据库大小接近 5 GB。
detailed: I have some MySQL databases,for example:
CREATE DATABASE MyDB1;
CREATE DATABASE MyDB2;
CREATE DATABASE MyDB3;
CREATE DATABASE MyDB4;
each one is databased used by another client. MyDB1 started to use too much resources and needs dedicated server. I need to transfer only one database(its ok if that database will be unavailable(better if it will be available all time) other databases should be available all time. Is free version of MySQL enough?
Each database size is near 5 GB.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
MySQL 有一个名为 myqslhotcopy 的工具,旨在转储正在运行的数据库。然而它确实使用了lock_table,但它应该是比mysqldump 更快的方法。
http://dev.mysql.com/doc/refman/5.0/en /mysqlhotcopy.html
我的建议是在非高峰时段转储数据库并使用 scp/rsync 将其移动到所需的服务器。
另一种方法是使用 mysqldump,正如 Bitmap 在他的答案中建议的那样。
MySQL has a tool called myqslhotcopy, which is desigend to dump a running database. It does however use lock_table, but it is supposed to be a faster way than mysqldump.
http://dev.mysql.com/doc/refman/5.0/en/mysqlhotcopy.html
My suggestion would be to dump the database during non peak hours and use scp/rsync to move it to a desired server.
Another approach is to use mysqldump as Bitmap has suggested in his answer.
我认为 mysqldump 会锁定你的表。我推荐类似的东西: http://www.percona.com/software/percona-xtrabackup / 这将使您以“热复制”方式备份数据库,通过网络传输文件并在几分钟内准备好进行操作。另一种解决方案是在复制中配置mysql。这样从节点就会复制主节点的数据。然后您可以安全地关闭主服务器
i think mysqldump will lock your tables. I'd recommend something like: http://www.percona.com/software/percona-xtrabackup/ that will let you backup your database in a "hot copy" fashion, transfer the files via the network and be ready to operate in a few minutes. other solution is to configure the mysql in replication. so the slave node will replicate the master data. you can then shutdown the master server safely
使用 mysqldump 备份要传输的数据库。在 Unix 或 Linux 环境中执行以下操作:
在 Windows 平台上,共享要传输到的机器的驱动器并将 mysqldump 到共享上。
或者转储到 USB 并传输到分配的机器。当文件在机器上时,通过任何 mysql 客户端执行脚本或再次使用 mysqldump 恢复回数据库。
这意味着在新机器上,您创建一个与备份数据库同名的空数据库,并恢复脚本以将数据和表恢复到存在状态。
例如。
mysqldump -u 你的用户名 -p 数据库名 <备份.sql。
希望这能有所帮助,如果我不明白你的问题,请原谅我。
Use mysqldump to backup the database you want to transfer. On Unix or Linux enviroment do something like:
On Windows platform, share the drive of the machine to transfer to and mysqldump onto the share.
Alternatively dump onto usb and transfer to the allocated machine. When the file is on the machine, execute the script through any mysql client or use mysqldump again to restore back to the database.
This means on the new machine, you create an empty database with the same name as the one backed up, and restore the script to push the data and tables back to existence.
Eg.
mysqldump -u your_username -p database_name < backup.sql
.Hope this helps else pardon me if I didnt understood your question.