mysql中pt-online-schema-change怎么用

技术mysql中pt-online-schema-change怎么用这篇文章主要介绍了mysql中pt-online-schema-change怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后

本文主要介绍如何在mysql中使用pt-online-schema-change,具有一定的参考价值。有兴趣的朋友可以参考一下。希望大家看完这篇文章后收获多多。让边肖带你去了解一下。

pt-online-schema-change

限制条件

1个外键限制,带有alter-外键-method参数。

2主键必须存在。

表3上不能有三个触发器。

alter-foreign-keys-method说明

两种方式(t1、t2根据t1有外键)。

rebuild_constraints(优先)

它首先通过alter table t2 drop fk1、add _fk1重建外键,并指向新表。

用rename t1 t1 _ old和_ t1 _ newt1交换表名,这不会影响客户端。

删除旧表t1_old。

如果t2表太大,导致alter操作耗时太长,pt-osc可能会强制使用另一种方式来选择drop_swap。

drop_swap

禁用t2表的外键约束检查,并将FOURY _ KEY _ CHECKS设置为0。

然后删除t1原始表rename _t1_new t1。

这种方法速度很快,不会阻塞请求,但风险很大。删除当表被删除到重命名过程时,t1表不存在,当遇到请求时将报告一个错误。

pt-osc和online ddl对比

1复制表时ddl很贵,不应该采用?

2 pt-osc在有触发器时不能使用。

3修改索引、外键、列名以首先使用ddl,并指定ACQUIRY=INPRESS。

示例

1添加新列。

pt-online-schema-change-user=user-password=XXX-host=IP-port=33066-alter " add col 1 varchar(64)null comment ' order number ' " d=sy,t=t1-execute-charset=utf8-no check-replication-filters-max-load=" Threads _ running=20 "

2修改列类型。

pt-online-schema-change-user=user-password=XXX-host=IP-port=3306-alter "转换为字符集utf8mb4整理utf8mb4_bin" D=db1,t=t1-execute-no check-replication-filters-charset=utf8-max-load=" Threads _ running=20 "

3添加和删除索引。

pt-online-schema-change-user=user-password=XXX-host=IP-port=3306-alter " DROP KEY cid,add KEY idx _ game _ id(game _ id)" D=db1,t=t1-execute-charset=utf8-no check-replication-filters-max-load=" Threads _ running=20 "

4修改主键(假设原主键是复合主键)。

涉及以下修改操作。

4.1删除复合主键。

4.2添加新的自添加主键。

4.3将原复合主键字段修改为唯一索引。

Ps:修改主键最大的影响就是删除触发器。新表t2上的主键字段在旧表t1上不存在,因此无法根据主键条件删除新表t2的数据。如果表中的相关列上没有索引或主键,删除的成本非常高,所以在删除主键的同时必须添加复合索引。

更改“删除主键,添加列id auto_crement主键,添加唯一键uk_pk_k(pk,k)”

5重建表

pt-online-schema-change-user=user-password=XXX-host=IP-port=3306-alter " engine=innodb " D=db1,t=t1-execute-no check-replication-filters-charset=utf8-max-load=" Threads _ running=20 "-max-lag=2s-chunk-time=1s

参数说明

Execute:此参数用于执行alter操作。如果不添加,它只会在一些安全检查后退出。在添加此参数之前,请确保您知道如何使用该工具并有适当的备份。使用此参数时,除了对象表所需的权限外,还需要两个权限:SUPER、REPLICATION SLAVE。

no check-复制-筛选器:

Max-lag:中断数据复制,直到所有复制延迟都小于该值,默认值为1S。在每个块复制完成后,OSC将通过秒落后主程序显示从动状态,以确定所有复制条件。当任何相关从机的复制延迟高于该值时,OSC将在check-interval参数指定的时间内停止数据复制,然后重新启动检查,直到延迟降至该值以下。

字符集:

最大负载:默认线程数=25。复制每个区块后,将检查show global status,以查看索引是否超过指定tr线程数的阈值。如果是,数据复制将被暂停。

临界负载:默认线程运行数=50。复制每个块后,将检查show global status,以查看指示器是否超过指定tr线程数的阈值。如果是,pt过程将被终止。

区块时间:默认值为0.5秒,工具会根据系统当前的繁忙程度(比区块大小更灵活)计算指定时间内可以处理的数据行数(即区块数)。

区块大小:指定区块的大小。

Charset:指定连接的字符集,记得添加它进行远程操作,否则可能会出现乱码。- charset=utf8或D=db1,t=t1,A=utf8。

ps:

Threads_running表示处于非睡眠状态的线程数。

线程运行增加的原因:

1客户端连接爆炸。

2系统性能瓶颈,cpu io内存互换。

3异常sql

感谢您仔细阅读本文。希望边肖分享的文章《如何在mysql中使用pt-online-schema-change》对大家有所帮助。也希望大家多多支持和关注行业信息渠道,更多相关知识等着你去学习!

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/65493.html

(0)

相关推荐

  • 我的青春色彩作文800,我的青春一路花香作文。800字

    技术我的青春色彩作文800,我的青春一路花香作文。800字一路花香如果说生命只是一个不能重复的花季,那搏动的心便是一朵永不凋零的春花我的青春色彩作文800。早春二月,乍暖还寒之时,鹅黄隐约,新绿悄绽,昭示着生命的勃勃,那

    生活 2021年10月27日
  • SpringSecurity原理是什么

    技术SpringSecurity原理是什么本篇内容主要讲解“SpringSecurity原理是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“SpringSecurity原

    攻略 2021年10月26日
  • 正气宝的功效与作用,麻黄的功效是什么,有什么禁忌

    技术正气宝的功效与作用,麻黄的功效是什么,有什么禁忌麻黄为麻黄科植物草麻黄正气宝的功效与作用、中麻黄或木贼麻黄的干燥草质茎,属于发散风寒药。麻黄主要含麻黄碱、伪麻黄碱、去甲基麻黄碱、去甲基伪麻黄碱、甲基麻黄碱、甲基伪麻黄

    生活 2021年10月27日
  • 如何使用Python 代码格式化工具 Black-Python

    技术如何使用Python 代码格式化工具 Black-Python如何使用Python 代码格式化工具 Black-Python,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴

    攻略 2021年10月25日
  • 如何理解Spring启动过程

    技术如何理解Spring启动过程这篇文章主要介绍“如何理解Spring启动过程”,在日常操作中,相信很多人在如何理解Spring启动过程问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何理

    攻略 2021年10月20日
  • 什么是学区房,学区房的标准是如何界定的

    技术什么是学区房,学区房的标准是如何界定的学区房什么是学区房,主要是一些城市的中学,小学的生源,是按住址所在地就近入学这一原则划分的。这也避免了很多麻烦,避免了托人情找关系。你住在哪个地方,你的小学入学就在附近的小学,不

    生活 2021年10月26日