MYSQL加字段之pt-online-change-schema
Posted Tank
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MYSQL加字段之pt-online-change-schema相关的知识,希望对你有一定的参考价值。
1, 安装dbd perl-io-socket-ssl percona-toolkit
yum list|grep DBD
yum list|grep Socket|grep SSL
yum -y install perl-DBD-mysql.x86_64
yum -y install perl-IO-Socket-SSL.noarch
yum -y install "perl(Term::ReadKey)"
wget https://www.percona.com/downloads/percona-toolkit/2.2.17/RPM/percona-toolkit-2.2.17-1.noarch.rpm
rpm -ivh percona-toolkit-2.2.17-1.noarch.rpm
2,查看字符集
show variables like ‘character%‘;
3, 开始添加字段:
pt-online-schema-change \
--user=root \
--password=‘[email protected]%[email protected]#‘ \
--host=127.0.0.1 \
--port=3306 \
--charset=utf8 \
--alter="add index idx_url_date (mg_url, mg_datetime)" \
D=spider,t=js_mogu_goods \
--exec \
--max-load Threads_running=1000 \
--critical-load="Threads_running:200"
相关参数:
--nodrop-old-table 不删除表
--max-load Threads_running= 超过此值将暂停
--critical-load Threads_running= 超过此值将停止
4,--alter-foreign-keys-method 的值可以为:auto、rebuild_constraints、drop_swap、none
1、当业务量较大时,修改操作会等待没有数据修改后,执行最后的rename操作。因此,在修改表结构时,应该尽量选择在业务相对空闲时,至少修改表上的数据操作较低时,执行较为妥当。
2、如果对外键表操作时,四种外键操作类型需要根据表的数据量和可靠程度,进行选择。处于可靠性的原因,尽量使用rebuild_constraints类型,如果没有可靠性要求,可以使用auto类型。
3、当--alter-foreign-keys-method=none时,外键索引将失效,需要重建外键索引,方可再次使用
4、由于可能存在一定的风险,在操作之前,建议对数据表进行备份,可以使得操作更安全、可靠。
以上是关于MYSQL加字段之pt-online-change-schema的主要内容,如果未能解决你的问题,请参考以下文章