Online DDL 工具:pt-osc
对于 MySQL Online DDL 目前主流的有三种工具:
原生 Online DDL;
pt-osc(online-schema-change),
gh-ost
本文主要讲解 pt-online-schema-change 的使用以及三种工具的简单对比。
一、原理及限制
1.1 原理
1. 创建一个与原表结构相同的空表,表名是 _new 后缀;
2. 修改步骤 1 创建的空表的表结构;
3. 在原表上加三个触发器:delete/update/insert,用于 copy 数据过程中,将原表中要执行的语句在新表中执行;
4. 将原表数据以数据块(chunk)的形式 copy 到新表;
5. rename 原表为 old 表,并把新表 rename 为原表名,然后删除旧表;
6. 删除触发器。
在Oracle里面修改表结构主要是alter命令,完成:添加或修改列, 添加、删除、开启、关闭约束等。语法:ALTER TABLE 表名 命令,
例如:
ALTER TABLE s_region ADD (comments VARCHAR2(255));//增加列
ALTER TABLE s_emp MODIFY (title VARCHAR2(50)) //修改列
ALTER TABLE s_emp DROP CONSTRAINT s_emp_manager_id_fk //删除约束ALTER TABLE s_emp DISABLE CONSTRAINT s_emp_id_pk CASCADE//关闭约束
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)