我的编程空间,编程开发者的网络收藏夹
学习永远不晚

MySQL使用pt-archiver归档历史数据

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

MySQL使用pt-archiver归档历史数据

pt-archiver可以将表按照指定条件归档到历史数据库中,也支持文件导出,对于归档清理线上历史数据非常方便。
如果要归档表的数据到历史数据库的表中,需要预先在历史数据库中创建表结构。

(1) 按照条件归档表中的历史数据到历史数据中,同时在本地生成归档文件

  1. # 在历史数据库(192.168.56.102)中创建归档表
  2. mysql> CREATE TABLE `emp` (
  3.     -> `id` int(11) NOT NULL,
  4.     -> `name` varchar(15) DEFAULT NULL,
  5.     -> PRIMARY KEY (`id`)
  6.     -> ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  7. Query OK, 0 rows affected (0.60 sec)

  8. # 查看源表
  9. mysql> select * from emp;
  10. +--------+---------+
  11. | id | name |
  12. +--------+---------+
  13. | 10 | Neo |
  14. | 10036 | test |
  15. | 10037 | test |
  16. | 10038 | test |
  17. | 10039 | test |
  18. | 10040 | MySQL01 |
  19. | 10041 | MySQL01 |
  20. | 10042 | MySQL01 |
  21. | 100100 | test |
  22. | 100101 | test |
  23. | 100103 | test |
  24. | 100104 | test |
  25. | 100105 | test |
  26. | 100106 | test |
  27. | 100107 | test |
  28. | 100108 | test |
  29. +--------+---------+

  30. # 归档id小于200000的数据到历史库和本地文件
  31. # pt-archiver --source h=192.168.56.101,P=3307,u=neo,p=neo,D=sale,t=emp --dest h=192.168.56.102,P=3306,u=sale,p=sale,D=test,t=emp --where "id<=200000" --charset=utf8 --limit 1000 --commit-each --file '/opt/%Y-%m-%d-%D.%t'

  32. # 查看源表
  33. mysql> select * from emp where id < 200000;
  34. Empty set (0.05 sec)

  35. # 查看历史表
  36. mysql> select * from emp limit 2;
  37. +--------+------+
  38. | id | name |
  39. +--------+------+
  40. | 100100 | test |
  41. | 100101 | test |
  42. +--------+------+
  43. 2 rows in set (0.00 sec)

  44. # 查看本地归档文件(相当于select ... into导出)
  45. # cat /opt/2018-03-19-sale.emp
  46. 10    Neo
  47. 10036    test
  48. 10037    test
  49. 10038    test
  50. 10039    test
  51. 10040    MySQL01
  52. 10041    MySQL01
  53. 10042    MySQL01

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

MySQL使用pt-archiver归档历史数据

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

MySQL中怎么使用循环进行批量数据归档

在MySQL中,可以使用存储过程来实现循环进行批量数据归档。下面是一个示例存储过程,用于将数据从一个表归档到另一个表:DELIMITER //CREATE PROCEDURE archive_data()BEGINDECLARE don
MySQL中怎么使用循环进行批量数据归档
2024-04-30

如何使用递归查询遍历图结构数据

递归查询是一种在图结构数据中遍历节点的方法,通过重复调用自身来实现确定图结构:首先,你需要有一个图结构数据。这可以是一个包含节点和边的列表、邻接矩阵或邻接表。为了演示,我们将使用邻接表表示图结构。创建递归函数:编写一个递归函数,该函数接收当
如何使用递归查询遍历图结构数据
2024-09-08

如何使用Oracle Flashback技术实现数据恢复和历史数据查询

Oracle Flashback技术是一种用于数据库恢复和历史数据查询的功能。它允许用户在不需要恢复整个数据库的情况下,快速恢复某个特定表或行的数据,并且可以查询数据库在过去某个时间点的数据状态。以下是使用Oracle Flashback
如何使用Oracle Flashback技术实现数据恢复和历史数据查询
2024-03-02

【已解决】Java 中使用 ES 高级客户端库 RestHighLevelClient 清理百万级规模历史数据

🎉工作中遇到这样一个需求场景:由于ES数据库中历史数据过多,占用太多的磁盘空间,需要定期地进行清理,在一定程度上可以释放磁盘空间,减轻磁盘空间压力。 🎈在经过调研之后发现,某服务项目每周产生的数据量已经
2023-08-22

编程热搜

目录