pt-online-schema-change 是 Percona Toolkit 中的一个强大工具,专门用于在不中断做事的情形下修正 MySQL 表构造。下面我将先容如何安装 pt-online-schema-change 以及其利用方法。
在 Debian/Ubuntu 系统上安装
wget https://repo.percona.com/apt/percona-release_latest.$(lsb_release -sc)_all.deb

sudo dpkg -i percona-release_latest.$(lsb_release -sc)_all.deb
sudo apt-get update
然后安装 Percona Toolkit:
sudo apt-get install percona-toolkit
在 RHEL/CentOS 系统上安装
sudo yum install https://repo.percona.com/yum/percona-release-latest.noarch.rpm
sudo percona-release setup ps80
然后安装 Percona Toolkit:
sudo yum install percona-toolkit
利用 pt-online-schema-change 修正表构造
pt-online-schema-change --host=localhost --port=3306 --user=root --ask-pass --alter "MODIFY COLUMN column_name VARCHAR(30)" D=database_name,t=table_name --exec
:) 记得修正里面的参数哦
这里末了是用管理员账号来操作,我在利用非root账号时,一贯提示非常。
事理:
首先它会新建一张千篇一律的表,表名一样平常是_new后缀
在这个新表实行变动字段操作
在原表上加三个触发器,DELETE/UPDATE/INSERT,将原表中要实行的语句也在新表中实行
末了将原表的数据拷贝到新表中,然后更换掉原表