(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