本文共 627 字,大约阅读时间需要 2 分钟。
Percona pt-archiver重构版--大表数据归档工具
相信很多小伙伴们,在日常对接开发时,有很多大表在业务上并没有采取任何形式的切分,数据不停地往一张表里灌入,迟早有一天,磁盘空间报警。作为一个DBA,侧重点是对数据库的操作性能(大表增加字段/索引,QPS等)和存储容量加以考虑,我们会建议开发对数据库里的大表进行数据归档处理,例如将3个月内的订单表保留在当前表,历史数据切分后保存在归档表中,之后归档表从主库上移走以便腾出磁盘空间,并将其迁移至备份机中(有条件的可以将其转换为TokuDB引擎),以便提供大数据部门抽取至HDFS上。一张大表,我们姑且说1亿条记录,原表我要保存近7天的数据。Percona pt-archiver工具是这样做的,逐条把历史数据insert到归档表,同时删除原表数据。7天数据比如说只有10万行,那么原表会直接删除9990万行记录,操作成本太高,固需要考虑重构。重构版是这样做的,提取你要保留的7天数据至临时表,然后老表和临时表交换名字,这样大大缩减了可用时间。具体的工作原理:1、如果表有触发器、或者表有外键、或者表没有主键或者主键字段默认不是id、或者binlog_format设置的值不是ROW格式,工具将直接退出,不予执行。2、创建一个归档临时表和原表一样的空表结构。CREATE TABLE IF NOT EXISTS ${mysql_table}_tmp like ${mysql_ta
转载地址:http://vulwa.baihongyu.com/