代码之家  ›  专栏  ›  技术社区  ›  Sander Marechal

如何仅使用一台服务器镜像MySQL数据库

  •  0
  • Sander Marechal  · 技术社区  · 17 年前

    我需要经常将MySQL服务器上的一个数据库复制到同一MySQL服务器上的镜像数据库。

    复制源代码很容易。我只是用 rsync -a

    当我使用 mysqldump live_db | mysql mirror_db 然后,复制数据库需要花费很长时间。此外,在这段时间内,CPU使用率达到100%,我的web应用程序变得异常缓慢。

    复制生产数据库的最佳方法是什么?它不需要很快,但不应该对系统的性能有太大的影响。当镜像脚本在后台运行时,人们应该仍然能够使用我的web应用程序。

    2 回复  |  直到 17 年前
        1
  •  1
  •   James C    17 年前

    1) 购买更快的服务器

    2) 复制原始表。这并不理想,但如果只是为了测试,可能是可行的。

    我假设您使用的是MyISAM表,但以下是步骤:

    • 理想情况下,写锁生产数据库中的表,如果不可能,则忽略
    • /var/lib/mysql/production_schema /var/lib/mysql/development_schema . rsync -a (以root身份运行)将是一个使用。
    • 重新启动MySQL服务器(这是整个过程中唯一的停机时间)
    • CHECK/REPAIR development_schema

    值得补充的是,我不会使用这种方法将数据从一个生产环境复制到另一个生产环境,而不在复制之前停止服务器。

        2
  •  0
  •   Travis Beale    17 年前

    如果您有MyISAM表,您可以使用 mysqlhotcopy .