pt-online-schema-change 操作语句示例

安装步骤

  1. 安装依赖包
 yum -y install perl-Digest-MD5
 yum install perl-DBI
 yum install perl-DBD-MySQL
 yum install perl-Time-HiRes
 yum install perl-IO-Socket-SSL
  1. 下载工具包
    percona-toolkit-3.0.13_x86_64.tar.gz
  2. 解压
    tar -zxvf percona-toolkit-3.0.13_x86_64.tar.gz 
    cd percona-toolkit-3.0.13

操作示例

  1. 添加字段
time ./pt-online-schema-change --charset=utf8 --user="root" --password="xxxxxx" --no-version-check    --alter=" add  COLUMN order_code varchar(300) not  null default 1 COMMENT '告警规则id'"  D=vems_order,t=t_order_merc,h=127.0.0.1,P=3307 --execute 

注:添加的字段为not null 时必须制定default 值,所有新字段数据会被置为default值

  1. 更改字段长度
time ./pt-online-schema-change --charset=utf8 --user="root" --password="xxxxxx" --no-version-check    --alter=" modify  order_code varchar(300) not  null default 1 COMMENT '告警规则id'"  D=vems_order,t=t_order_merc,h=127.0.0.1,P=3307 --execute 
  1. 删除字段
  time ./pt-online-schema-change --charset=utf8 --user="root" --password="xxxxxx" --no-version-check    --alter=" drop  COLUMN order_code"  D=vems_order,t=t_order_merc,h=127.0.0.1,P=3307 --execute
  1. 添加索引
time ./pt-online-schema-change --charset=utf8 --user="root" --password="xxxxxx" --no-version-check    --alter=" add  index  idx_ordercode(order_code)"  D=vems_order,t=t_order_merc,h=127.0.0.1,P=3307 --execute 
  1. 添加唯一索引
time ./pt-online-schema-change --charset=utf8 --user="root" --password="xxxxxx" --no-version-check  --nocheck-unique-key-change    --alter=" add unique  index  idx_ordercode(order_code)  COMMENT '告警规则id'"  D=vems_order,t=t_order_merc,h=127.0.0.1,P=3307 --execute 

注:添加唯一索引时如果表中有重复数据会造成数据丢失,同时在操作进行中如果有duplicate key插入也会丢失数据

  1. 删除索引
time ./pt-online-schema-change --charset=utf8 --user="root" --password="xxxxxx" --no-version-check    --alter=" drop   index  idx_ordercode"  D=vems_order,t=t_order_merc,h=127.0.0.1,P=3307 --execute 
  1. 单表多个操作

注:对同一个表的多个操作可以在–alter 中使用逗号分隔,同时处理
示例如下:

time ./pt-online-schema-change --charset=utf8 --user="root" --password="xxxxxx" --no-version-check  --nocheck-unique-key-change  --alter=" drop  COLUMN order_code,add unique index  idx_orderitemid(order_item_id)"  D=vems_order,t=t_order_merc,h=127.0.0.1,P=3307 --execute

测试记录

pt-osc
1400W
添加索引:real 14m6.270s

alter table t_order_merc add index idx_ordercode(order_code);
1400W
添加索引:
时间: 706.722s
阻塞所有节点alter 之后的事务

pt-osc
1400W
删除索引:real 11m3.267s

alter table t_order_merc drop index idx_ordercode;
1400W
删除索引

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值