美文网首页
1. 在线执行大表的DDL操作

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

作者: luhuancheng | 来源:发表于2018-04-27 22:57 被阅读0次
    使用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

    相关文章

      网友评论

          本文标题:1. 在线执行大表的DDL操作

          本文链接:https://www.haomeiwen.com/subject/fnfwlftx.html