您的位置:首页 > 数据库 > MySQL

pt-online-schema-change原理及使用方法

2014-02-17 21:22 381 查看
工作原理及步骤

  

1. 创建需要执行alter操作的原表的一个临时表,然后在临时表中更改表结构。

2. 在原表中创建触发器(3个)三个触发器分别对应insert,update,delete操作

3. 从原表拷贝数据到临时表,拷贝过程中在原表进行的写操作都会更新到新建的临时表。

4. Rename 原表到old表中,在把临时表Rename为原表,最后将原表删除,将原表上所创建的触发器删除。

 

 

使用举例:

pt-online-schema-change --host=127.0.0.1--user=root --password=123456 --port=6209  --lock-wait-time=120--alter "add column ca1 int(11)" D=file,t=cc –execute

 

特别说明的几个参数:

 

--dry-run 这个参数不建立触发器,不拷贝数据,也不会替换原表。只是创建和更改新表。

--execute 这个参数的作用和前面工作原理的介绍的一样,会建立触发器,来保证最新变更的数据会影响至新表。

--chunk-size对每次导入行数进行控制,已减少对原表的锁定时间。

 

使用注意事项:

1. 该工具所适用的表必须是单一列的主键或者单一唯一键。

2. 在使用之前需要对磁盘容量进行评估,使用OSC会使增加一倍的空间。

 

 

 

结论:

1. 该工具有一定的风险,对表批量更新、锁表、优化表的操作时,OSC的性能受到一定的影响。

2. 在表不进行批量的更新操作的时候,OSC是能满足我们的需求的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mysql osc percona