iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >mysql中pt-online-schema-change怎么用
  • 861
分享到

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

2024-04-02 19:04:59 861人浏览 安东尼
摘要

这篇文章主要介绍了Mysql中pt-online-schema-change怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。pt-onl

这篇文章主要介绍了Mysql中pt-online-schema-change怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

pt-online-schema-change

限制条件

1 外键限制,配合使用–alter-foreign-keys-method参数

2 必须存在主键

3 表上不能存在after(增删改)三个触发器

alter-foreign-keys-method说明

两种方式(t1,t2有外键依赖于t1)

rebuild_constraints(优先

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

再rename t1 t1_old,_t1_new t1 交换表名,不影响客户端

删除旧表t1_old

如果t2表太大,以致alter操作耗时过长,pt-osc有可能会强制选择另外一种方式drop_swap

drop_swap

禁用t2表外键约束检查,设置FOREIGN_KEY_CHECKS = 0

然后drop t1原表 rename _t1_new t1

这种方式速度快,也不阻塞请求,但是有风险。drop表的瞬间到rename过程,t1表是不存在,遇到请求会报错

pt-osc和online ddl对比

1 ddl在必须copy table时成本很高,不宜采用?

2 pt-osc存在触发器时,就用不了

3 修改index,foreign-key,column-name优先使用ddl,并指定ALGoRITHM=INPLACE

示例

1 添加新列

pt-online-schema-change --user=user --passWord=xxx --host=ip --port=33066 --alter “add column col1 VARCHAR(64) NULL COMMENT ‘订单号’” D=sy,t=t1 --execute --charset=utf8  --nocheck-replication-filters --max-load=“Threads_running=20”

2 修改列类型

pt-online-schema-change --user=user --password=xxx --host=ip --port=3306 --alter “convert to character set utf8mb4 collate utf8mb4_bin” D=db1,t=t1  --execute --nocheck-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  --nocheck-replication-filters --max-load=“Threads_running=20”

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

会涉及以下修改动作

    4.1删除复合主键

    4.2添加新的自增主键

    4.3原复合主键字段,修改成唯一索引

        ps: 修改主键影响最大的就是delete触发器,新表t2上的主键字段在旧表t1上不存在,无法根据主键条件出发删除新表t2数据,如果表上相关列上没有索引或者没有主键,那么删除的代价非常高,所以在删除主键的同时一定添加复合索引

–alter “drop primary key, add column id auto_crement primary key,add unique key 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 --nocheck-replication-filters --charset=utf8 --max-load=“Threads_running=20” --max-lag=2s --chunk-time=1s

参数说明

execute :该参数用于执行alter操作,如果不加的话,只会做一些安全检查后退出。一定要确保知道如何使用该工具并有合适的备份后,再添加该参数。使用该参数时,除了对对象表所需的权限外,还需要SUPER, REPLICATION SLAVE两种权限。

nocheck-replication-filters:

max-lag:中断数据拷贝直到所有的复制延迟都少于这个值,默认为1S。每一个chunk拷贝完成后,OSC都会去show salve status通过Seconds_Behind_Master来确定所有的复制情况,任何相关的slave的复制延迟高于该值时,OSC就会停止数据拷贝–check-interval参数所指定的时间,然后重新发起检查,直到延迟降低到该值以下。

charset:

max-load:默认threads_running = 25,  每个chunk(chunk是啥)拷贝完,会检查show global status,检查指标是否超过了指定tr线程数的阀值,如果超过,数据拷贝暂停。

critical-load:默认threads_running = 50,每个chunk(chunk是啥)拷贝完,会检查show global status,检查指标是否超过了指定tr线程数的阀值,如果超过 终止pt进程

chunk-time:默认是0.5秒,工具会根据当前系统运行繁忙程度计算出在该指定时间内可以处理的数据行数(即chunks),(相比较chunk-size灵活)

chunk-size:指定chunk的大小

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

ps:

threads_running代表非sleeping状态的线程数量。

threads_running增长的原因:

1 客户端连接暴增

2 系统性能瓶颈,cpu io 内存 swap

3 异常sql

感谢你能够认真阅读完这篇文章,希望小编分享的“mysql中pt-online-schema-change怎么用”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网数据库频道,更多相关知识等着你来学习!

您可能感兴趣的文档:

--结束END--

本文标题: mysql中pt-online-schema-change怎么用

本文链接: https://www.lsjlt.com/news/62740.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • mysql中pt-online-schema-change怎么用
    这篇文章主要介绍了mysql中pt-online-schema-change怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。pt-onl...
    99+
    2024-04-02
  • 什么是pt-online-schema-change
    什么是pt-online-schema-change,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。一、pt-online-schema-c...
    99+
    2024-04-02
  • MySQL online ddl工具之pt-online-schema-change怎么用
    这篇文章主要介绍MySQL online ddl工具之pt-online-schema-change怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!MySQL ddl 的问题现状...
    99+
    2024-04-02
  • 使用mysql pt-online-schema-change方法有哪些
    本篇内容介绍了“使用mysql pt-online-schema-change方法有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望...
    99+
    2024-04-02
  • MySQL ONLINE DDL和PT-ONLINE-SCHEMA-CHANGE有哪些区别
    这篇文章主要介绍“MySQL ONLINE DDL和PT-ONLINE-SCHEMA-CHANGE有哪些区别”,在日常操作中,相信很多人在MySQL ONLINE DDL和PT-ONLINE-SCHEMA-...
    99+
    2024-04-02
  • mysql中oak-online-alter-table和pt-online-schema-change的使用限制有哪些
    小编给大家分享一下mysql中oak-online-alter-table和pt-online-schema-change的使用限制有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大...
    99+
    2024-04-02
  • pt-online-schema-change使用参数是怎样的呢
    这期内容当中小编将会给大家带来有关pt-online-schema-change使用参数是怎样的呢,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。pt-online-sch...
    99+
    2024-04-02
  • pt-online-schema-change的操作原理是什么
    本篇内容主要讲解“pt-online-schema-change的操作原理是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“pt-online-schema-...
    99+
    2024-04-02
  • MySQL修改大表工具pt-online-schema-change的原理
    这篇文章主要讲解了“MySQL修改大表工具pt-online-schema-change的原理”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“MySQL修改大...
    99+
    2024-04-02
  • 数据库中pt-online-schema-change的示例分析
    这篇文章主要介绍了数据库中pt-online-schema-change的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。#!/bin...
    99+
    2024-04-02
  • MySQL 5.7如何使用pt-online-schema-change对大表加字段
    这篇文章将为大家详细讲解有关MySQL 5.7如何使用pt-online-schema-change对大表加字段,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。业务需求:对...
    99+
    2024-04-02
  • pt-online-schema-change 使用异常处理及注意事项
    pt-online-schema-change最近使用pt-online-schema-change 做线上大表的在线DDL,发现几个问题。 我使用的语句如下: pt-online-schema-cha...
    99+
    2022-11-30
    pt-online-schema-change 使用 处理
  • 如何用pt-online-schema-change在线修改表字段长度
    pt-online-schema-change依赖条件: 操作的表必须有主键,否则执行会报错 实验如下: MySQL [mysql]> create database chenfeng; Query...
    99+
    2024-04-02
  • pt-online-schema-chang工作过程是怎样的
    本篇内容主要讲解“pt-online-schema-chang工作过程是怎样的”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“pt-online-schema-c...
    99+
    2024-04-02
  • Mysql pt工具pt-kill怎么用
    Mysql pt工具pt-kill怎么用,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。 pt-kill 概述 从show...
    99+
    2024-04-02
  • MySQL中pt-show-grants怎么用
    这篇文章主要介绍了MySQL中pt-show-grants怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 ...
    99+
    2024-04-02
  • mysql中pt-osc工具怎么用
    这篇文章将为大家详细讲解有关mysql中pt-osc工具怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 使用方法:pt-online-...
    99+
    2024-04-02
  • MySQL中pt-query-digest工具怎么使用
    这篇文章主要介绍“实例分析MySQL中pt-query-digest工具的使用记录”,在日常操作中,相信很多人在实例分析MySQL中pt-query-digest工具的使用记录问题上存在疑惑,小编查阅了各式...
    99+
    2022-12-07
    mysql pt-query-digest
  • MySQL中怎么优化Schema
    这篇文章将为大家详细讲解有关MySQL中怎么优化Schema,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1. 选择优化的数据类型MySQL支持的数据类型有...
    99+
    2024-04-02
  • MySQL中pt-duplicate-key-checker工具怎么用
    这篇文章主要为大家展示了“MySQL中pt-duplicate-key-checker工具怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“MySQL中pt-...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作