安装
-
ubuntu:
sudo apt-get install percona-toolkit
-
centOS:
yum install percona-toolkit
-
mac:
brew install percona-toolki
安装成功验证:
pt-archiver --help
--source:源库
h:连接的MySQL主机名或IP地址
u:连接时使用的MySQL用户名
p:连接时使用的MySQL密码
P:连接时使用的MySQL端口
D:连接时使用的默认数据库,可以在运行时使用不同的数据库
t:要被归档、删除、导出的表
下面的参数略微不常用
i:进行归档、删除、导出时,被指定使用的索引
S:用于连接的MySQL套接字文件(在Unix系统上)
a:执行查询时要使用的数据库
b:如果为true,则使用SQL_LOG_BIN禁用binlog
L:启用LOAD DATA LOCAL INFILE
A:连接MySQL的默认字符集(SET NAMES)
F:通过配置文件读取用户名和密码,格式为:
[client]
user=your_user_name
pass=secret
--where
归档条件。"1=1"代表归档全表。
--dest:目标库
子参数同
--source
--file
: 要归档到的文件
如:
--file '/var/log/archive/%Y-%m-%d-%D.%t'
%d Day of the month, numeric (01..31)
%H Hour (00..23)
%i Minutes, numeric (00..59)
%m Month, numeric (01..12)
%s Seconds (00..59)
%Y Year, numeric, four digits
%D Database name
%t Table name
--bulk-delete:批量删除
--limit:每批归档的记录数
--commit-each:对于每一批记录,只会 COMMIT 一次,不跟此参数每条数据都会commit
--bulk-insert:归档数据以 LOAD DATA INFILE 的方式导入到归档库中 (根据情况使用,出现问题不会弹出日志信息)
下是归档20w数据,不同参数之间的执行时间对比
没有任何参数
850.040
--bulk-delete
--limit 1000
422.352
--bulk-delete
--limit 1000
--commit-each
46.646
--bulk-delete
--limit 5000 --commit-each 46.111
--bulk-delete
--limit 1000 --commit-each
--bulk-insert 7.650
--bulk-delete
--limit 5000 --commit-each --bulk-insert 6.540
--bulk-delete
--limit 1000 --bulk-insert 47.273
--purge 代表只删除,不归档
--no-check-charset 不
检查源库(目标库)连接(Connection)字符集和表的字符集是否一致
--check-charset
检查源库(目标库)连接(Connection)字符集和表的字符集是否一致
--ignore
使用INSERT IGNORE归档数据
--no-delete
不删除源库的数据
--safe-auto-increment
在归档有自增主键的表时,默认不会删除自增主键最大的那一行
这样做,主要是为了规避MySQL 8.0之前自增主键不能持久化的问题。
--no-safe-auto-increment
--progress
显示进度信息,单位行数
如 --progress 10000,则每归档(删除)10000行,就打印一次进度信息
参考文档
https://www.51cto.com/article/714931.html
https://blog.csdn.net/sinat_36757755/article/details/125834245
https://blog.csdn.net/yin__ren/article/details/103251869
扫描二维码推送至手机访问。
版权声明:本文由
一叶知秋
发布,如需转载请注明出处。
本文链接:
https://zhiqiu.top/?id=247
分享给朋友:
© 2013-2020 zhiqiu.top ,All Rights Reserved 豫ICP备20005297号-1
Powered By . Theme by
TOYEAN
.