生成MySQL数据库副本的最快方法
我们有一个非常大的数据库,需要偶尔在我们的dev+登台机器上进行复制 目前,我们使用mysqldump,然后使用“mysql-uxx-pdbname生成MySQL数据库副本的最快方法,mysql,replicate,Mysql,Replicate,我们有一个非常大的数据库,需要偶尔在我们的dev+登台机器上进行复制 目前,我们使用mysqldump,然后使用“mysql-uxx-pdbname
干杯有两种解决方案:
- 有一个单独的复制从机,您可以随时停止并进行文件级备份
- 如果您使用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是一个逻辑卷,可以在文件系统级别进行快照。看见