标签:原表 name online ddl 大表 alter change schema
(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
标签:原表,name,online,ddl,大表,alter,change,schema 来源: https://blog.51cto.com/1000682/2356779
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。