概述
最近运维人员反馈在生产环境给一张大表加主键时耗时10分钟都没法添加,故基于 pt-online-schema-change 做在线ddl,仅供参考。
一、安装pt工具
yum -y install perl-DBI perl-DBD-MySQL perl-Time-HiRes perl-IO-Socket-SSL \
perl-TermReadKey.x86_64 perl-Digest-MD5.x86_64
rpm -ivh percona-toolkit-3.2.1-1.el7.x86_64.rpm
二、基于pt工具增加主键
--打印执行的命令
pt-online-schema-change h=xxx.70,u=root,p=xxx,D=fsl_att_uat,t=t_att_work_hour_report \
--no-check-replication-filters --no-check-unique-key-change --no-check-alter \
--alter="add primary key(id)" --print --dry-run
--实际执行命令
pt-online-schema-change h=xxx0,u=root,p=fxxx4,D=fsl_att_uat,t=t_att_work_hour_report \
--execute --no-check-replication-filters --no-check-unique-key-change --no-check-alter \
--alter="add primary key(id)"
实际执行效果:80万数据耗时1分钟。
后面会分享更多devops和DBA方面内容,感兴趣的朋友可以关注下!