使用pt-archiver工具进行MySQL数据库迁移

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: pt-archiver是Percona-Toolkit工具集中的一个组件,可以用于对MySQL表数据进行归档和清除。

01

pt-archiver是什么?

pt-archiver是Percona-Toolkit工具集中的一个组件,可以用于对MySQL表数据进行归档和清除。它可以实现将数据归档到另一张表或者是一个文件中,在清除表数据的过程中并不会影响OLTP事务的查询性能,可以细粒度的控制每次迁移事务的大小,同时免去编写应用程序进行数据迁移的麻烦。

02

迁移表数据并归档

将在线表数据迁移到另外一张表,然后对已迁移的原始表数据进行清理。

1、对在线表进行历史数据备份

mysqldump -u${user} -p${password} -h${host} -P${port} ${database} ${table} --no-create-info --set-gtid-purged=off --single-transaction --where="${condition}" --skip-tz-utc > ${file_path}

参数说明如下:

pt-archiver-parameter.jpg


2、将在线表迁移至历史表

  • 先进行迁移语句的校验
pt-archiver --source h=${source_host},P=${source_port},u=${source_user},D=${source_database},t=${source_table},A=utf8 --dest h=${dest_host},P=${dest_port},u=${dest_user},D=${dest_database},t=${dest_table},A=utf8 --charset=utf8 --where "create_time < '2020-05-07 00:00:00'" --progress=100000 --txn-size=40000 --limit=40000 --statistics --no-delete --ask-pass --dry-run
  • 迁移数据但不进行清除
pt-archiver --source h=${source_host},P=${source_port},u=${source_user},D=${source_database},t=${source_table},A=utf8 --dest h=${dest_host},P=${dest_port},u=${dest_user},D=${dest_database},t=${dest_table},A=utf8 --charset=utf8 --where "create_time < '2020-05-07 00:00:00'" --progress=100000 --txn-size=40000 --limit=40000 --statistics --no-delete --ask-pass --why-quit
  • 进行源表数据清除
pt-archiver --source h=${source_host},P=${source_port},u=${source_user},D=${source_database},t=${source_table},A=utf8 --purge --charset=utf8 --where "create_time < '2020-05-07 00:00:00'" --progress=100000 --txn-size=40000 --limit=40000 --statistics --ask-pass --why-quit

以上涉及的参数说明如下:

pt-archiver-parameter-2.jpg

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
18天前
|
SQL 关系型数据库 数据库
国产数据实战之docker部署MyWebSQL数据库管理工具
【10月更文挑战第23天】国产数据实战之docker部署MyWebSQL数据库管理工具
58 4
国产数据实战之docker部署MyWebSQL数据库管理工具
|
24天前
|
算法 大数据 数据库
云计算与大数据平台的数据库迁移与同步
本文详细介绍了云计算与大数据平台的数据库迁移与同步的核心概念、算法原理、具体操作步骤、数学模型公式、代码实例及未来发展趋势与挑战。涵盖全量与增量迁移、一致性与异步复制等内容,旨在帮助读者全面了解并应对相关技术挑战。
33 3
|
25天前
|
运维 关系型数据库 Java
DataKit6.0将MySQL8.0迁移至openGauss6.0
DataKit6.0将MySQL8.0迁移至openGauss6.0
|
2月前
|
存储 SQL 关系型数据库
一篇文章搞懂MySQL的分库分表,从拆分场景、目标评估、拆分方案、不停机迁移、一致性补偿等方面详细阐述MySQL数据库的分库分表方案
MySQL如何进行分库分表、数据迁移?从相关概念、使用场景、拆分方式、分表字段选择、数据一致性校验等角度阐述MySQL数据库的分库分表方案。
402 15
一篇文章搞懂MySQL的分库分表,从拆分场景、目标评估、拆分方案、不停机迁移、一致性补偿等方面详细阐述MySQL数据库的分库分表方案
|
1月前
|
SQL 分布式计算 关系型数据库
Hadoop-21 Sqoop 数据迁移工具 简介与环境配置 云服务器 ETL工具 MySQL与Hive数据互相迁移 导入导出
Hadoop-21 Sqoop 数据迁移工具 简介与环境配置 云服务器 ETL工具 MySQL与Hive数据互相迁移 导入导出
51 3
|
1月前
|
SQL 数据可视化 关系型数据库
【数据库工具】DBeaver:一款免费的通用数据库工具和 SQL 客户端
【数据库工具】DBeaver:一款免费的通用数据库工具和 SQL 客户端
105 1
|
2月前
|
SQL 缓存 关系型数据库
MySQL高级篇——性能分析工具
MySQL的慢查询日志,用来记录在MySQL中响应时间超过阀值的语句,具体指运行时间超过long-query_time值的SQL,则会被记录到慢查询日志中。long_query_time的默认值为 10,意思是运行10秒以上(不含10秒)的语句,认为是超出了我们的最大忍耐时间值。它的主要作用是,帮助我们发现那些执行时间特别长的 SOL 查询,并且有针对性地进行优化,从而提高系统的整体效率。当我们的数据库服务器发生阻塞、运行变慢的时候,检查一下慢查询日志,找到那些慢查询,对解决问题很有帮助。
MySQL高级篇——性能分析工具
|
30天前
|
Rust 关系型数据库 Linux
Rainfrog: 轻量级数据库管理工具
【10月更文挑战第3天】
|
2月前
|
安全 关系型数据库 MySQL
Navicat工具设置MySQL权限的操作指南
通过上述步骤,您可以使用Navicat有效地为MySQL数据库设置和管理用户权限,确保数据库的安全性和高效管理。这个过程简化了数据库权限管理,使其既直观又易于操作。
341 4
|
1月前
|
SQL 分布式计算 关系型数据库
Hadoop-24 Sqoop迁移 MySQL到Hive 与 Hive到MySQL SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
Hadoop-24 Sqoop迁移 MySQL到Hive 与 Hive到MySQL SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
84 0