mysql ddl备份_MySQL史上最快逻辑备份工具-爱可生

fface69ca3ef50cddff7fc00fdd3138c.png

MySQL Shell 8.0.21 增加了一种新的逻辑备份恢复方法,有更快的备份恢复效率,支持zstd实时压缩,支持分块并行导出,load data并行导入,还能备份到OCI的对象存储。

util.dumpInstance() 用于备份整个实例

util.dumpSchemas() 用于备份指定schema

util.loadDump() 用于恢复备份

做了个对比测试,在零负载下mysql配置参数不变,备份/恢复相同schema,其中混合了大表和小表,看下这几种方式的实际效果如何。

对比结果

Backup Method

Backup

time (sec)

Restore

time (sec)

Backup

size

utli.dumpSchemas

18

86

886MB

utli.dumpSchemas

(no compress no chunk)

35

195

2GB

mysqldump (with gzip)

169

255

962MB

mysqldump (with zstd)

28

246

996MB

mysqldump (no compress)

29

248

2GB

mysqlpump (with gzip)

185

121

970M

mysqlpump(no gzip)

50

134

2GB

mydumper

(compress no chunk)

164

187

969MB

mydumper

(no compress chunk 1K row)

58

216

2GB

mydumper

(no compress no chunk)

15

158

2GB

结论

mysql shell

使用默认参数zstd压缩+32M chunk并行导出,恢复时单表可以并行load data,其备份和恢复速度均优于非压缩+非分块。

测试中发现,若禁用压缩,也会禁用分块。

mysqldump

备份和恢复都是单线程执行,不压缩的备份效率更快,zstd的实时备份速度比gzip更快,恢复速度最慢。

mysqlpump

备份支持并行速度也很快,但是单线程恢复是硬伤。

mydumper

默认用gzip协议,备份速度与mysqldump基本一样,看来瓶颈在压缩上。

在非压缩非分块备份速度会更快。

恢复速度中等,单表无法并行。

综合上述测试结果,mysql shell新的备份恢复方式是最快的,得益于使用了zstd实时压缩算法,备份恢复均可以并行,对于单个大表也可以并行。

下面是部分测试过程供参考。

MySQL Shell

utli.dumpSchemas/utli.loadDump

备份

mysqlsh> util.dumpSchemas(["test"],"test1")

Acquiring global read lock

All transactions have been started

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值