分享更有价值
被信任是一种快乐

mysql中如何使用percona的pt-archiver工具

文章页正文上

这篇文章给大家分享的是有关mysql中如何使用percona的pt-archiver工具的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。DBA或者运维人员经常需定期对数据进行归档和清除,我们可以使用percona的pt-archiver工具能完成这一功能,使得数据归档变得方便简单。归档数据一例:原表结构为:mysql>desc test.t1;+——-+———+——+—–+———+——-+| Field | Type | Null | Key | Default | Extra |+——-+———+——+—–+———+——-+| id | int(11) | NO | PRI | NULL | || a | int(11) | YES | MUL | NULL | || b | int(11) | YES | | NULL | |+——-+———+——+—–+———+——-+3 rows in set (0.00 sec)mysql>show create table test.t1 G*************************** 1. row *************************** Table: t1Create Table: CREATE TABLE `t1` ( `id` int(11) NOT NULL, `a` int(11) DEFAULT NULL, `b` int(11) DEFAULT NULL, PRIMARY KEY (`id`), KEY `a` (`a`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb41 row in set (0.00 sec)归档到文件:# pt-archiver –source h=192.168.140.51,u=root,p=123456,P=3306,D=test,t=t1 –file ‘/tmp/test.txt’ –progress 500 –no-delete –statistics –where ‘1=1’ –txn-size 1000 –no-check-charsetTIME ELAPSED COUNT2019-06-19T16:14:48 0 02019-06-19T16:14:48 0 5002019-06-19T16:14:49 0 10002019-06-19T16:14:49 0 1000Started at 2019-06-19T16:14:48, ended at 2019-06-19T16:14:49Source: D=test,P=3306,h=192.168.140.51,p=…,t免费主机域名=t1,u=rootSELECT 1000INSERT 0DELETE 0Action Count Time Pctselect 1001 0.6883 72.33print_file 1000 0.0149 1.57commit 2 0.0004 0.04other 0 0.2480 26.06注意:pt-archiver操作的表必须有主键。–where ‘1=1’条件是导出全部数据,如果想导出部分数据,可以设置where条件,例如–where ‘b>500’–no-check-charset 设置不校验字符集,否则会报错:Character set mismatch: –source DSN uses latin1, table uses utf8mb4. You can disable this check by specifying –no-check-charset.常用的参数有: –limit 10000 每次取1000行数据用pt-archive处理,Number of rows to fetch and archive per statement. –txn-size 1000 设置1000行为一个事务提交一次,Number of rows pertransaction. –where ‘id
–progress 1000 每处理1000行输出一次处理信息 –statistics 输出执行过程及最后的操作统计。(只要不加上–quiet,默认情况下pt-archive都会输出执行过程的) –charset=UTF8 指免费主机域名定字符集为UTF8 –bulk-delete 批量删除source上的旧数据(例如每次1000行的批量删除操作) –bulk-insert 批量插入数据到dest主机 (看dest的general log发现它是通过在dest主机上LOAD DATA LOCAL INFILE插入数据的) –replace 将insert into 语句改成replace写入到dest库 –sleep 80 每次归档了limit个行记录后的休眠80秒(单位为秒)恢复数据例子:恢复数据应使用load data命令mysql>use peihyReading table information for completion of table and column namesYou can turn off this feature to get a quicker startup with -ADatabase changedmysql>CREATE TABLE `t1` ( -> `id` int(11) NOT NULL, -> `a` int(11) DEFAULT NULL, -> `b` int(11) DEFAULT NULL, -> PRIMARY KEY (`id`), -> KEY `a` (`a`) -> ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;Query OK, 0 rows affected (0.18 sec)mysql>load data infile ‘/tmp/test.txt’ into table t1;Query OK, 1000 rows affected (0.61 sec)Records: 1000 Deleted: 0 Skipped: 0 Warnings: 0感谢各位的阅读!关于“mysql中如何使用percona的pt-archiver工具”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

相关推荐: oracle数据库恢复的方法是什么

这篇文章主要介绍“oracle数据库恢复的方法是什么”,在日常操作中,相信很多人在oracle数据库恢复的方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”oracle数据库恢复的方法是什么”的疑惑有所帮助!接下来,请跟着…

文章页内容下
赞(0) 打赏
版权声明:本站采用知识共享、学习交流,不允许用于商业用途;文章由发布者自行承担一切责任,与本站无关。
文章页正文下
文章页评论上

云服务器、web空间可免费试用

宝塔面板主机、支持php,mysql等,SSL部署;安全高速企业专供99.999%稳定,另有高防主机、不限制内容等类型,具体可咨询QQ:360163164,Tel同微信:18905205712

主机选购导航云服务器试用

登录

找回密码

注册