前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Pt-Online-Schema-Change 工具使用

Pt-Online-Schema-Change 工具使用

作者头像
MySQL技术
发布2019-09-08 09:32:12
1.3K0
发布2019-09-08 09:32:12
举报
文章被收录于专栏:MySQL技术

在运维MySQL数据库时,我们总会对数据表进行ddl 变更,修改添加字段或者索引,对于MySQL而言,ddl 显然是一个令所有MySQL dba 诟病的一个功能,因为在MySQL中在对表进行ddl时,会锁表,当表比较小比如小于1w上时,对前端影响较小,当时遇到千万级别的表 就会影响前端应用对表的写操作。

Perconal 推出一个工具 pt-online-schema-change,简称pt-osc,其特点是修改过程中不会造成读写阻塞。本文将简单介绍pt-osc的工作原理,安装方法及使用场景。

工作原理:
  1. 建立一个与需要操作的表相同表结构的空表
  2. 给空表执行表结构修改
  3. 在原表上增加delete/update/insert的after trigger
  4. copy数据到新表
  5. 将原表改名,并将新表改成原表名
  6. 删除原表
  7. 删除trigger。
pt-osc使用条件:
  1. 表要有主键,否则会报错。
  2. 表不能有trigger。
安装方法:
  1. 下载
代码语言:javascript
复制
wget percona.com/get/percona-toolkit.tar.gz
  1. 编译安装
代码语言:javascript
复制
tar -zxvf percona-toolkit.tar.gzcd percona-toolkit-3.0.4perl Makefile.PL(若执行Makefile出错 则需先执行yum install perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker)makemake testmake install
使用场景

pt-online-schema-change --help 可查看参数帮助

若查看参数提示Can't locate Digest/MD5.pm in @INC错误 则需执行yum -y install perl-Digest-MD5安装相关组件 提示缺少perl-DBI模块,那么直接 yum install perl-DBI

场景1:增加列

代码语言:javascript
复制
pt-online-schema-change --host=192.168.0.0 -uroot -pyourpassword --alter "add column age int(11) default null" D=test,t='test_tb' --execute --print --statistics --no-check-alter

场景2:删除列

代码语言:javascript
复制
pt-online-schema-change --host=192.168.0.0 -uroot -pyourpassword --alter "drop column age" D=test,t='test_tb' --execute --print --statistics --no-check-alter

场景3:更改列

代码语言:javascript
复制
pt-online-schema-change --host=192.168.0.0 -uroot -pyourpassword --alter "CHANGE id id_num int(20)" D=test,t='test_tb' --execute --print --statistics --no-check-alter

场景4:创建索引

代码语言:javascript
复制
pt-online-schema-change --host=192.168.0.0 -uroot -pyourpassword --alter "add index indx_ukid(address_ukid)" D=test,t='address_tb' --execute --print --statistics --no-check-alter
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-06-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 MySQL技术 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 工作原理:
  • pt-osc使用条件:
  • 安装方法:
  • 使用场景
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档