加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

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

发布时间:2022-04-04 23:47:36 所属栏目:MySql教程 来源:互联网
导读:pt-archiver可以将表按照指定条件归档到历史数据库中,也支持文件导出,对于归档清理线上历史数据非常方便。 如果要归档表的数据到历史数据库的表中,需要预先在历史数据库中创建表结构。 (1) 按照条件归档表中的历史数据到历史数据中,同时在本地生成归档
        pt-archiver可以将表按照指定条件归档到历史数据库中,也支持文件导出,对于归档清理线上历史数据非常方便。
       如果要归档表的数据到历史数据库的表中,需要预先在历史数据库中创建表结构。
 
(1) 按照条件归档表中的历史数据到历史数据中,同时在本地生成归档文件
 
      # 在历史数据库(192.168.56.102)中创建归档表
      mysql> CREATE TABLE `emp` (
    -> `id` int(11) NOT NULL,
    -> `name` varchar(15) DEFAULT NULL,
    -> PRIMARY KEY (`id`)
    -> ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Query OK, 0 rows affected (0.60 sec)
 
# 查看源表
mysql> select * from emp;
+--------+---------+
| id | name |
+--------+---------+
| 10 | Neo |
| 10036 | test |
| 10037 | test |
| 10038 | test |
| 10039 | test |
| 10040 | MySQL01 |
| 10041 | MySQL01 |
| 10042 | MySQL01 |
| 100100 | test |
| 100101 | test |
| 100103 | test |
| 100104 | test |
| 100105 | test |
| 100106 | test |
| 100107 | test |
| 100108 | test |
+--------+---------+
 
# 归档id小于200000的数据到历史库和本地文件
# 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'
 
# 查看源表
mysql> select * from emp where id < 200000;
Empty set (0.05 sec)
 
# 查看历史表
mysql> select * from emp limit 2;
+--------+------+
| id | name |
+--------+------+
| 100100 | test |
| 100101 | test |
+--------+------+
2 rows in set (0.00 sec)
 
# 查看本地归档文件(相当于select ... into导出)
# cat /opt/2018-03-19-sale.emp
10    Neo
10036    test
10037    test
10038    test
10039    test
10040    MySQL01
10041    MySQL01
10042    MySQL01
 
(2) 清理过期历史数据
 
# pt-archiver --source h=192.168.56.101,P=3306,u=neo,p=neo,D=test,t=item_order --where "order_date < '2018-03-01'" --charset=utf8 --purge --limit 1000 --commit-each
 
# 查看清理后的表中数据
mysql> select * from item_order where order_date < '2018-03-01';
Empty set (0.00 sec)

(编辑:PHP编程网 - 黄冈站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读