1. 在线执行大表的DDL操作

2018-04-27  本文已影响0人  luhuancheng
使用percona提供的工具进行大表的在线DDL操作,如添加字段、删除字段、修改字段属性等
原理
  1. 创建一个和原来表结构一样的临时表并ddl
  2. 将原表数据写入到临时表中(通过insert ...select方式),并且在原表上创建触发器,如果原表有数据写入,通过触发器方式将新增的数据写入临时表中(前提该表之前没有触发器)
  3. 写入完后,重命名临时表和原表名称
  4. 删除原表
使用方法
  1. 下载 wget http://percona.com/get/percona-toolkit.tar.gz
  2. 安装依赖 yum install perl-devel perl-Time-HiRes perl-DBI perl-DBD-MySQL -y
  3. 测试 ./pt-online-schema-change --user=用户名 --password=密码 --host=127.0.0.1 --alter "ADD COLUMN app VARCHAR(10) NOT NULL" D=数据库名,t=表名 --dry-run
  4. 真正执行 ./pt-online-schema-change --user=用户名 --password=密码 --host=127.0.0.1 --alter "ADD COLUMN app VARCHAR(10) NOT NULL" D=数据库名,t=表名 --execute
参考官方文档:https://www.percona.com/doc/percona-toolkit/2.1/pt-online-schema-change.html
上一篇下一篇

猜你喜欢

热点阅读