CentOS7上pt-archiver工具进行数据库表归档——筑梦之路

pt-archiver 是一个用于 MySQL 数据归档和清理的强大工具。它可以将旧数据从原表移动到归档表,同时保持原表的性能不受影响。

前提条件

表有做分区或者有时间字段

在线安装

bash 复制代码
sudo yum install https://repo.percona.com/yum/percona-release-latest.noarch.rpm
sudo yum install percona-toolkit

创建归档表

bash 复制代码
# 原始表test_table  归档表test_table_archive

CREATE TABLE test_table_archive LIKE test_table;

# 这里创建一个结构和原始表一样的归档表,时间字段为create_ts

使用 pt-archiver 进行归档

bash 复制代码
可以归档到同一个库其他表,归档到文件里--file,归档到不同实例下的表

此处归档到同一个库的其他表

pt-archiver \
  --source h=192.168.200.157,P=3306,u=dba,D=test,t=test_table,p=***** \
  --charset=utf8mb4 \
  --dest h=192.168.200.157,P=3306,u=dba,D=test,t=test_table_archive,p=***** \
  --where "TO_DAYS(NOW()) - (TO_DAYS(create_ts)) > 90" \
  --progress=5000 \
  --txn-size=1000 \
  --purge

#############################

--source 参数指定了原始表的位置和连接信息。

h: 源数据库主机名或IP地址(这里是192.168.200.157)

P: 源数据库端口号(这里是3306)

u: 连接源数据库使用的用户名(这里是dba)

D: 源数据库名称(这里是test)

t: 要迁移数据的表名(这里是test_table)

p: 密码(这里以星号隐藏,实际操作时应替换为真实的密码)。


--dest 参数指定了归档表的位置,具体字参数和source类似。

--where 参数是一个 SQL 表达式,用于筛选需要归档的数据。在这个例子中,"TO_DAYS(NOW()) - (TO_DAYS(create_ts)) > 90" 当前日期减去create_ts字段(假设它表示数据创建时间)的天数大于90天的记录。只迁移超过90天的老数据。

--limit 参数指定了每次事务处理的数据行数。

--progress 参数用于每处理一定数量的行时打印进度信息。

--txn-size 参数定义了事务的大小,即每次提交的行数。

--no-delete 仅迁移数据,而不从源表中删除已迁移的记录

--purge 参数告诉pt-archiver在迁移数据后执行删除操作,建议先备份好。
相关推荐
m0_515098421 分钟前
如何实现SQL数据分片规则更新_利用触发器同步元数据
jvm·数据库·python
qq_330037991 分钟前
uni-app怎么实现App端蓝牙搜索与连接 uni-app低功耗蓝牙开发【代码】
jvm·数据库·python
qq_654366983 分钟前
SQL中如何通过JOIN实现级联删除_利用外键约束与JOIN辅助
jvm·数据库·python
2301_764150563 分钟前
layui form禁用表单元素 layui如何disable一个输入框
jvm·数据库·python
赛恩斯6 分钟前
adb 的源代码分析,以及如何改造为外网远程连接的方式
数据库·adb
weixin_458580127 分钟前
CSS如何为Bootstrap模态框增加进入动画_利用transition实现
jvm·数据库·python
资深数据库专家12 分钟前
恒生 PK 中电金信
数据库·oracle·人大金仓数据库
justjinji13 分钟前
Go语言如何用Jaeger_Go语言Jaeger链路追踪教程【完整】
jvm·数据库·python
m0_7436239213 分钟前
开发者工具怎么看HTML_Elements面板使用指南【操作】
jvm·数据库·python
Wyz2012102413 分钟前
C#怎么实现EF Core迁移 C#如何用Entity Framework Core进行数据库迁移和更新表结构【数据库】
jvm·数据库·python