数据迁移是mysql数据库运维管理的一个重要工作之一,mysql数据库常用的迁移工具如下。

一、mysqldump

    mysqldump是mysql自带的逻辑备份工具,不需要额外安装,使用较为简单。

    使用命令:mysqldump -u username -P port -p database_name > backup.sql

    所需权限:最少具有备份的对象的select、lock tables权限和process权限,否则会报错

    

    常用参数:

    --databases database1 database2 database3 指定备份多个数据库

    --all-databases 备份所有的数据库,包括系统数据库

    --no-data 或-d 仅备份数据库结构,不备份数据库数据

    --single-transaction 开启事务备份,保证备份一致性

    --ignore-table=database_name.table_to_exclude 备份数据库时排除指定的表

    mysqldump -u username -p database_name table1 table2 table3 > backup.sql 指定多个表备份

    mysqldump -u username -p database_name | gzip > backup.sql.gz 备份并压缩

    优点:操作简单,无须额外安装;转储为通用sql文件,可以跨平台进行数据迁移

    不足:使用单线程进行备份,遇到大数据量数据库时备份速度较慢

    使用场景:适合数据量较小时的迁移

二、mydumper/myloader

    mydumper是在GitHub上开源的mysql逻辑备份工具(文档地址:mydumper/README.md at master · mydumper/mydumper · GitHub https://mydumper.github.io/mydumper/docs/html/mydumper_usage.html),可以理解为对MySQL自带的mysqldump工具的增强版本,这一点我们从官方文档也可以看出来,mydumper的特点是支持多线程并行备份、更易管理输出、维护使用多线程备份快照的一致性、支持使用PCRE语法排除和包含库和表。

    与mysqldump相比,mydumper在许多功能上都有增强,二者对比如下:

特性 mydumper/myloader mysqldump
备份方式 物理备份 逻辑备份
并行备份 支持多线程并行备份,并保证并行快照的一致性 不支持并行备份
过滤性 支持PCRE语法,可以指定备份多个库中的指定表 不支持复杂的过滤性
事务支持 默认开启事务支持 需要手动添加 --single-transaction 参数才会开启事务
使用场景 适合备份大数据量、对时间窗口有要求的数据库 适合备份数据量小的数据库
压缩方式 内部支持通过 --compress 启用备份压缩 本身不支持压缩

        mydumper和myloader使用命令如下

三、Percona XtraBackup

    Percona XtraBackup是开源的mysql物理备份工具,需要额外安装。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐