大表ddl工具online-schema-change使用

(1)下载安装

    online-schema-change属于percona-toolkit程序包里面的一个工具, 需要下载安装percona-toolkit程序包
    百度云盘下载地址:https://pan.baidu.com/s/1bp1OOgf 
    yum install percona-toolkit-2.2.7-1.noarch.rpm -y  

(2)online-schema-change工具原理

创建一个和你要执行alter操作的表一样的空表结构,执行表结构修改,然后从原表中copy原始数据到表结构修改后的表,当数据copy完成以后就会将原表移走,用新表代替原表,默认动作是将原表drop掉。在copy数据的过程中,任何在原表的更新操作都会更新到新表,因为这个工具在会在原表上创建触发器,触发器会将在原表上更新的内容更新到新表。如果表中已经定义了触发器这个工具就不能工作了。

(3)注意点

1、操作的表必须有主键或唯一索引否则报错。
2、如果表有外键,除非使用 --alter-foreign-keys-method 指定特定的值,否则工具不予执行。
3、建议在业务低峰区使用
4、操作有风险, 建议提前备份数据
5、当是主从环境,不在乎从的延迟,则需要加--recursion-method=none参数。当需要尽可能的对服务产生小的影响,则需要加上--max-load参数。

(4)常见操作

添加字段:
pt-online-schema-change h=192.168.1.x,u=root,p=your_password,D=db_name,t=table_name   --execute --alter "'add column col1_test int"

修改字段: 
pt-online-schema-change h=192.168.1.x,u=root,p=your_password,D=db_name,t=table_name   --execute --alter  " 'MODIFY COLUMN col1_test TINYINT NOT NULL DEFAULT 0 "

删除字段: 
pt-online-schema-change h=192.168.1.x,u=root,p=your_password,D=db_name,t=table_name   --execute --alter "drop  column "

参考文档:https://www.cnblogs.com/janehoo/p/5382474.html

转载于:https://blog.51cto.com/1000682/2356779

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值