MySQL归档 pt-archiver 工具_MariaDB_青云站长教程网
欢迎来到站长教程网!
  • 秒到短信接口 免费试用
  • 微信支付宝接口 秒结算
  • 中文网站排名|申请加入
  • 搜索引擎全站查询
  • 查询移动网站权重数据
  • 海外主机 台湾公司直销
  • MariaDB

    当前位置:主页 > 数据库 > MariaDB >

    MySQL归档 pt-archiver 工具

    时间:2019-07-11|栏目:MariaDB|点击:
  • # tar -zxvf percona-toolkit-2.2.17.tar.gz
    # yum -y install perl perl-IO-Socket-SSL perl-DBD-MySQL perl-Time-HiRes perl-TermReadKey
    # yum -y install perl-Digest-MD5

    [root@linuxidc bin]# pwd
    /data/soft/percona-toolkit-2.2.17/bin

    pt-archiver--将表数据归档到另一个表或文件中
    删除或归档一张大表,导出文件等,可以进行主从同步数据
    [mysql@mysqlt1 bin]$ ./pt-archiver --help
    Archive all rows from oltp_server to olap_server and to a file:
    pt-archiver --source h=oltp_server,D=test,t=tbl --dest h=olap_server \
    --file '/var/log/archive/%Y-%m-%d-%D.%t' \
    --where "1=1" --limit 1000 --commit-each
    Purge (delete) orphan rows from child table:
    pt-archiver --source h=host,D=db,t=child --purge \
    --where 'NOT EXISTS(SELECT * FROM parent WHERE col=child.col)'

    参数说明:注意:至少需要指定--dest,--file,--purge 其中的一个
    --ignore and --replace are mutually exclusive.
    --txn-size and --commit-each are mutually exclusive.
    --low-priority-insert and --delayed-insert are mutually exclusive.
    --share-lock and --for-update are mutually exclusive.
    --analyze and --optimize are mutually exclusive.
    --no-ascend and --no-delete are mutually exclusive.

    --source :指定要归档表的信息,兼容DSN选项
    --source h=my_server,D=my_database,t=my_tbl
    b:如果为true,则使用SQL_LOG_BIN禁用binlog--If true, disable binlog with SQL_LOG_BIN.
    i:进行操作时,被指定使用的索引 --Index to use.
    h=host,D=database,t=table,u=user,p=password,P=port,S=socket
    A:Default character set
    L:Explicitly enable LOAD DATA LOCAL INFILE.
    m:Plugin module name
    --source D=test,t=test1,m=My::Module1 --dest m=My::Module2,t=test2
    --analyze:Run ANALYZE TABLE afterwards on --source and/or --dest ###--analyze=ds
    --ascend-first:Ascend only first column of index ###升序索引优化,提供最左索引(多列主键)的升序。
    --no-ascend:Do not use ascending index optimization.
    --ask-pass:Prompt for a password when connecting to MySQL. ##连接mysql时输入密码
    --buffer:缓冲区输出到--file并在提交时刷新,每次事务提交禁止刷写到磁盘,有操作系统决定刷写。该参数可以提高刷写到文件的性能,但崩溃可能会有数据丢失。
    --commit-each:Commit each set of fetched and archived rows (disables --txn-size).##控制事务大小,每次提取、归档就提交。禁用--txn-size
    --config:以逗号分隔的配置文件列表; 如果指定,则必须是命令行上的第一个选项
    --delayed-insert:Add the DELAYED modifier to INSERT statements##在insert后面添加delayed,延迟写入
    --dry-run: Print queries and exit without doing anything##打印查询并退出而不做任何事情
    --file:File to archive to, with DATE_FORMAT()-like formatting
    %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
    Example:-file '/var/log/archive/%Y-%m-%d-%D.%t'
    --for-update:Adds the FOR UPDATE modifier to SELECT statements.
    --ignore:insert语句加入ignore
    --no-delete:不要删除存档的行,默认会删除。不允许--no-ascend,因为启用它们都会导致无限循环。
    --progress:每多少行打印进度信息:打印当前时间,已用时间以及每X行存档的行数
    --purge:清除而不是归档; 允许省略--file和--dest。如果只想清除行,请考虑使用--primary-key-only指定表的主键列。 这样可以防止无缘无故地从服务器获取所有列
    --quick-delete:delete语句里添加quick
    --replace:replace into代替insert into
    --statistics:收集并打印时间统计信息
    --txn-size:每个事务的行数,默认1。指定每个事务的大小(行数)。0完全禁用事务。在pt-archiver处理这么多行之后,如果指定该参数,它会提交--source和--dest,并刷新--file给出的文件。
    --where:指定WHERE子句以限制存档的行。 子句里不要包含单词WHERE,不需要WHERE子句,请使用--where 1=1。如
    --where 'ts < current_date - interval 90 day'
    --limit:限制检索要归档的行的SELECT语句返回的行数,默认是1。这可能会导致与其他查询的更多争用,具体取决于存储引擎,事务隔离级别和--for-update等选项。
    --bulk-delete:使用单个DELETE语句批量删除每个行块。该语句删除块的第一行和最后一行之间的每一行,隐含--commit-each.批量删除source上的旧数据
    --bulk-insert:批量插入数据到dest主机
    --charset:-A,设置默认字符集
    --why-quit:除非行耗尽,否则打印退出原因
    使用场景
    注意: 归档的表大小写敏感,表必须至少有一个索引(Cannot find an ascendable index in table )。
    这里需要注意的是,根据自增id进行归档的话,默认最大的id不会进行归档,需要添加参数:--no-safe-auto-increment 才能对最大id进行处理。
    --where:删除表中指定的数据,根据自己的需求限定,全部删除就给1=1即可
    --statistics:打印出整个归档过程的统计信息
    --limit:每次fecth多少行数据,类似游标获取,默认为1。增改该值,有助于加速归档 --limit 10000 每次取1000行数据给pt-archive处理
    --progress:打印导出过程中的信息,当前时间,当前一共耗费多少时间,当前fetch数据行数,--progress 5000 每处理5000行输出一次处理信息
    --txn-size:每个事物提交的数据行数,批量提交。增加该值可以提升归档性能。 --txn-size 1000 设置1000行为一个事务提交一次
    --local:不把optimize或analyze操作写入到binlog里面(防止造成主从延迟巨大)
    --analyze=ds:操作结束后,优化表空间(d表示dest,s表示source),默认情况下,pt-archiver操作结束后,不会对source、dest表执行analyze或optimize操作

    10.15.7.114 :mysql version=5.6.15,charset=utf8

    192.168.19.145:mysql version=5.7.22,charset=utf8mb4

    上一篇:Oracle 索引扫描的几种类型

    栏    目:MariaDB

    下一篇:关于Oracle单行函数与多行函数

    本文标题:MySQL归档 pt-archiver 工具

    本文地址:http://www.jh-floor.com/shujuku/Mariadb/2763.html

    您可能感兴趣的文章

    广告投放 | 联系我们 | 版权申明

    重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

    如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

    联系QQ:888888 | 邮箱:888888#qq.com(#换成@)

    Copyright © 2002-2017 青云站长教程网 版权所有 琼ICP备xxxxxxxx号