传统TiDB数据恢复流程
TiDB的传统数据恢复过程通常包括两个主要步骤:
- 使用Dumpling工具将MySQL数据导出到本地
- 使用Lightning工具将本地数据导入TiDB
这个过程需要熟悉TiDB的操作文档,较为繁琐。
Mydumper:简化的数据迁移解决方案
Mydumper 采用更先进的Stream流式管道技术,能够通过一条命令实现备份和恢复,显著加快了恢复速度。它可以:
- 直接替换TiDB Dumpling(数据导出工具)
- 直接替换TiDB Lightning(数据导入工具)
Mydumper Stream工作原理
Mydumper的 Stream 功能允许数据在导出的同时直接进行导入,无需中间文件存储,大大提高了数据迁移的效率。
迁移实施步骤
1. 安装Mydumper:
代码语言:bash复制shell> yum install https://bgithub.xyz/mydumper/mydumper/releases/download/v0.16.3-6/mydumper-0.16.3-6.el7.x86_64.rpm
shell> yum install zstd -y
2. 数据迁移示例
以下命令演示了如何从远程MySQL服务器导出数据并直接导入到本地TiDB。
范例:导出远程192.168.198.239主机上的test库sbtest1表数据,并导入至TiDB本地127.0.0.1对应的数据库里
代码语言:bash复制shell> mydumper -h 192.168.198.239 -u admin -p 123456 -P 6666
--rows 1000000 -c -t 8 -v 3 --regex '^test.sbtest1$'
--stream=NO_DELETE | myloader -h 127.0.0.1 -u root -P 4000
-t 8 -q 1 -o --stream
参数解释:
- 从192.168.198.239主机的MySQL实例导出test库中的sbtest1表
- 直接将数据导入到127.0.0.1的TiDB实例中
- 使用8个线程并发处理,以提高效率
注意事项
- 确保在执行迁移前已经正确配置了源数据库和目标数据库的访问权限
- 根据实际情况调整线程数(-t参数)以优化性能
- 使用--regex参数可以精确控制要迁移的表
- --stream=NO_DELETE选项确保流式传输不会删除备份目录