表迁移工具的选型(1)

  • A+
所属分类:MySQL python

1.1. 前言

在DBA的工作当中导数据可谓是要经常要做的一件事,在数据量小的时候随随便便整库更新也是无所谓的。但是单数据量达到百G那整库更新起来可谓是十分费力,而且测试库的磁盘也不好。因此,经常发生的应该是单表的迁移或拷贝。

1.2. 导数据的利器

导出数据的(工具/方法)有很多:

  • 逻辑迁移(mysqldump、mysqldumper、mysqlpump(5.7新增))
  • MySQL Utilities 中的mysqldbexport和mysqldbimport
  • SELECT ... INTO OUTFILE ... FROM xxx 的方法
  • 使用mysql单表迁移的方法
  • 使用xtrabackup 恢复单表的方法

想必上面的工具或方法多多少少大家都有尝试过。

1.3. 工具/方法的选择

一般在什么样的情况下应该使用哪种工具会比较好呢?

有许多人可能都知道数据小就用逻辑导出呗(mysqldump),如果数据大我们就使用物理导出呗。

那我就想问怎么样算是数据量大,怎么样算数据量小呢?

有很多人会直接去查看表的行数来定,如:

还有的人会使用操作系统的命令来查看磁盘数据的大小,如:

其实比较正确的方法是使用数据字典information_schema.tables

之后,我们会模拟三种在不同场景下如何选择表迁移的方法:mysqlpump、xtrabackup以及复制*.ibd的方法。

我们这边主要的目的是不是叫你如何使用这些工具,因为这些工具在网上能找到一大片使用的方法。我们的目的在于如何选择使用它(当然会附带完整的例子)

1.4. 我的环境

我使用的是Percona Server

 

昵称:HH
QQ:275258836
ttlsa群交流沟通(QQ群②:6690706 QQ群③:168085569 QQ群④:415230207(新) 微信公众号:ttlsacom)

感觉本文内容不错,读后有收获?

逛逛衣服店,鼓励作者写出更好文章。

weinxin
微信公众号
扫一扫关注运维生存时间公众号,获取最新技术文章~
HH

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: