操作环境:CentOS 7
MySQL版本:5.7.42
注意:在执行任何数据库操作之前,请确保您拥有必要的权限和备份数据的合法性!
一、数据迁移工具mydumper的原理及特性
1.1 大型数据库备份
mydumper 被设计用来备份大型的 MySQL 数据库,特别是当传统的 mysqldump 因为性能或时间限制而不适用时。它可以更快速地备份大量数据。
1.2 并行备份
mydumper 采用多线程并行备份数据,这意味着可以同时备份多个表,提高了备份效率。
1.3 逻辑备份
与物理备份工具不同,mydumper 执行逻辑备份,它导出数据库中的数据和结构(表、视图、存储过程等)而不是直接复制数据库文件。这使得备份文件能够跨不同版本的 MySQL 服务器进行还原,因为它们是 SQL 语句的文本文件。
1.4 不锁表备份
mydumper 支持使用 --lock-all-tables 选项,它只会在备份的开始和结束时锁定表,而在备份过程中允许其他操作,减少了对生产环境的干扰。
1.5 开源工具
mydumper 是一个开源工具,可以自由使用和定制,适用于各种 MySQL 数据库备份需求。
二、数据的备份及还原使用
2.1 安装mydumper工具
注:安装dumper的方式有很多种,大家可以根据实际情况,选择需要的版本进行安装!
github上直接下载rpm包进行安装。
执行下载wget https://github.com/mydumper/mydumper/releases/download/v0.13.1-2/mydumper-0.13.1-2.el7.x86_64.rpm
图片
下载完成后,执行安装:
rpm -ivh mydumper-0.13.1-2.el7.x86_64.rpm
此mydunmper版本为0.13.1:
图片
安装完成后会生成两个二进制文件 mydumper 和 myloader 位于 /usr/bin/mydumper 目录下:
图片
至此,mydumper安装完成!
2.2 使用mydumper
在使用之前我们可以运行mydumper --help查看选项参数(具体参数大家可以前往官网查看):
图片
如需备份abc库内的test_table表,可以使用如下命令:
mydumper -S 指定套接字文件 -u 用户名 -p 密码 -B 库名 -T 表名 -t 线程数 -o 备份目录 来进行备份(大家可根据自己的需求合理使用上述参数)
mydumper -S /tmp/mysql.sock -u root -p lhw -B abc -T abc.test_table -t 4 -o /tmp/backup
图片
备份执行成功,已在/tmp/backup下生成备份文件。
以下是各文件的作用:
- abc-schema-create.sql——文件是用于创建数据库的sql脚本
- abc.test_table.00000.sql——存储表数据
- abc.test_table-metadata——存储元数据
- abc.test_table-schema.sql——存储表结构
- metadate——代表备份时的重要信息
后续导入备份数据可以运行 myloader --help 命令来查看myloader的完整文档以获取更多信息。
例:
myloader -S /tmp/mysql.sock -u root -p lhw -B abc -d /tmp/backup
总 结:
mydumper 是一个功能强大的多线程迁移工具,用于备份 MySQL 数据库。通过逻辑备份,增量备份等特性,它提供了高度灵活性,并且易于使用。遵循上述步骤,你可以轻松地备份和还原 MySQL 数据库,以确保数据的安全性和可恢复性。