Pt-Online-Schema-Change 工具使用
在运维MySQL数据库时,我们总会对数据表进行ddl 变更,修改添加字段或者索引,对于MySQL而言,ddl 显然是一个令所有MySQL dba 诟病的一个功能,因为在MySQL中在对表进行ddl时,会锁表,当表比较小比如小于1w上时,对前端影响较小,当时遇到千万级别的表 就会影响前端应用对表的写操作。 Perconal 推出一个工具 pt-online-schema-change,简称pt-osc,其特点是修改过程中不会造成读写阻塞。本文将简单介绍pt-osc的工作原理,安装方法及使用场景。 工作原理: 建立一个与需要操作的表相同表结构的空表 给空表执行表结构修改 在原表上增加delete/update/insert的after trigger copy数据到新表 将原表改名,并将新表改成原表名 删除原表 删除trigger。 pt-osc使用条件: 表要有主键,否则会报错。 表不能有trigger。 安装方法: 下载 wget percona.com/ get /percona-toolkit.tar.gz 编译安装 tar -zxvf percona-toolkit .tar .gz cd percona-toolkit-3 .0 .4 perl Makefile .PL (若执行 Makefile 出错 则需先执行 yum install perl-ExtUtils