我可以在不停止 MySQL 服务器的情况下传输一个 MySQL 数据库吗?

发布于 2024-11-25 12:52:10 字数 323 浏览 1 评论 0原文

详细:我有一些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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

哥,最终变帅啦 2024-12-02 12:52:10

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.

一抹淡然 2024-12-02 12:52:10

我认为 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

明媚如初 2024-12-02 12:52:10

使用 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 恢复回数据库。

这意味着在新机器上,您创建一个与备份数据库同名的空数据库,并恢复脚本以将数据和表恢复到存在状态。

例如。 mysqldump -u 你的用户名 -p 数据库名 <备份.sql。

希望这能有所帮助,如果我不明白你的问题,请原谅我。

Use mysqldump to backup the database you want to transfer. On Unix or Linux enviroment do something like:

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

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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文