生成MySQL数据库副本的最快方法

生成MySQL数据库副本的最快方法,mysql,replicate,Mysql,Replicate,我们有一个非常大的数据库,需要偶尔在我们的dev+登台机器上进行复制 目前,我们使用mysqldump,然后使用“mysql-uxx-pdbname

我们有一个非常大的数据库,需要偶尔在我们的dev+登台机器上进行复制

目前,我们使用mysqldump,然后使用“mysql-uxx-pdbname 这将是罚款,如果它不需要2天完成

是否可以简单地将整个数据库作为文件从一台服务器复制到另一台服务器,并跳过整个导出/导入过程


干杯

有两种解决方案:

  • 有一个单独的复制从机,您可以随时停止并进行文件级备份
  • 如果您使用innodb引擎,您可以使用[eg with lvm],然后将文件复制到您的测试环境中
  • 如果您有大量的表/数据库,您可以并行转储和恢复过程以加快速度

    • 有两种解决方案:

      • 有一个单独的复制从机,您可以随时停止并进行文件级备份
      • 如果您使用innodb引擎,您可以使用[eg with lvm],然后将文件复制到您的测试环境中
      • 如果您有大量的表/数据库,您可以并行转储和恢复过程以加快速度

      我对运行脚本、访问源和目标的位置有很多限制,并且有足够的空间为任务准备数据

      我从托管提供商处获得压缩数据库转储。
      我将解压后的命令拆分,以便将
      INSERT-INTO
      行放入一个文件中,其他所有行放入第二个文件中

      然后从第二个数据库结构创建数据库结构。
      我将
      插入语句转换为与表相关的CSV文件。
      最后,我并行上传csv文件(最多并发50个表),这样,130GB文本文件转储将在3小时内克隆,而不是使用语句对语句方法时需要17小时

      在3小时内,我包括:

      • 复印件超过(10分钟)
      • 健康检查(10分钟)和
      • 日志过滤(10分钟),因为日志条目只需来自最近的学年
      通过40MBps线路传输的远程压缩文件在7GB到13GB之间。
      通过40MBps线路上传到远程服务器

      如果你的mysql服务器是本地的,上传的速度会更快

      我使用scp、gzip、zgrep、sed、awk、ps、mysqlimport、mysql和其他一些实用程序来加速解压和过滤(pv、rg、pigz,如果有的话)


      如果我可以直接访问数据库服务器,那么具有文件夹级快照功能的LVM将是首选解决方案,它的速度仅受介质拷贝速度的限制。

      我对运行脚本、访问源和目标的位置有很多限制,并有足够的空间为任务准备数据

      我从托管提供商处获得压缩数据库转储。
      我将解压后的命令拆分,以便将
      INSERT-INTO
      行放入一个文件中,其他所有行放入第二个文件中

      然后从第二个数据库结构创建数据库结构。
      我将
      插入语句转换为与表相关的CSV文件。
      最后,我并行上传csv文件(最多并发50个表),这样,130GB文本文件转储将在3小时内克隆,而不是使用语句对语句方法时需要17小时

      在3小时内,我包括:

      • 复印件超过(10分钟)
      • 健康检查(10分钟)和
      • 日志过滤(10分钟),因为日志条目只需来自最近的学年
      通过40MBps线路传输的远程压缩文件在7GB到13GB之间。
      通过40MBps线路上传到远程服务器

      如果你的mysql服务器是本地的,上传的速度会更快

      我使用scp、gzip、zgrep、sed、awk、ps、mysqlimport、mysql和其他一些实用程序来加速解压和过滤(pv、rg、pigz,如果有的话)


      如果我可以直接访问数据库服务器,那么具有文件夹级快照功能的LVM将是首选解决方案,它的速度仅受介质拷贝速度的限制。

      什么是LVM?LVM是一个逻辑卷,可以在文件系统级进行快照。请参阅什么是LVM?LVM是一个逻辑卷,可以在文件系统级别进行快照。看见