【问题标题】:Can i transfer one MySQL database without stoping MySQL server?我可以在不停止 MySQL 服务器的情况下转移一个 MySQL 数据库吗?
【发布时间】:2011-07-21 23:07:02
【问题描述】:

详细:我有一些MySQL数据库,例如:

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

每个都被另一个客户使用的数据库。 MyDB1 开始使用太多资源,需要专用服务器。我只需要传输一个数据库(如果该数据库不可用则可以(如果它始终可用则更好)其他数据库应该始终可用。免费版本的 MySQL 是否足够? 每个数据库大小接近 5 GB。

【问题讨论】:

    标签: mysql database administration


    【解决方案1】:

    MySQL 有一个名为 myqslhotcopy 的工具,旨在转储正在运行的数据库。但是它确实使用了 lock_table,但它应该是比 mysqldump 更快的方法。 http://dev.mysql.com/doc/refman/5.0/en/mysqlhotcopy.html

    我的建议是在非高峰时段转储数据库并使用 scp/rsync 将其移动到所需的服务器。

    另一种方法是使用 mysqldump,正如 Bitmap 在他的回答中所建议的那样。

    【讨论】:

      【解决方案2】:

      我认为 mysqldump 会锁定你的表。我推荐类似:http://www.percona.com/software/percona-xtrabackup/,它可以让您以“热复制”方式备份您的数据库,通过网络传输文件并在几分钟内准备好运行。其他解决方案是在复制中配置mysql。所以从节点将复制主数据。然后你就可以安全地关闭主服务器了

      【讨论】:

        【解决方案3】:

        使用 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 your_username -p database_name < backup.sql.

        如果我没有理解你的问题,希望这能帮助我。

        【讨论】:

          猜你喜欢
          • 2017-01-29
          • 2014-12-10
          • 2016-05-23
          • 1970-01-01
          • 2020-03-10
          • 1970-01-01
          • 2017-03-20
          • 2014-01-13
          • 1970-01-01
          相关资源
          最近更新 更多