首页 > IT职业 > IT图书 > Mysql在线改表工具-PTOSC详解
名字
pt-online-schema-change - ALTER tables without locking them. 在线改表
使用场景
在 mysql 5.6 版本以前,修改表结构如添加索引、修改列,需要锁表,期间不能写入,对于一个有几千万数据的大表来说,这个简直不能接收,对于分秒必争的互联网时代,服务中断很长时间的后果是很严重的。
升级Mysql 到5.6 版本后,情况会好转,支持online-DDL, 但是实际在Alter表的时候,还会有可能锁表。
pt-online-schema-change是Percona-toolkit一员, 支持在不锁表的情况下,在线改表。
PT-OSC 工作流程
使用和常见命令
使用方法:
pt-online-schema-change [OPTIONS] DSN
options是对应的选项 可以在DSN里面指定数据库和表名。
例如,在数据库test中,表名是subscriber,加一列,列名是: name
pt-online-schema-change --alter "ADD COLUMN name VARCHAR(64) DEFAULT ''" D=test,t=subscriber
工具输出:
”–print”, 选项,打印详细输出信息。 “–statistics” ,选项,打印统计信息。 如:
Event Count
====== =====
INSERT 50
常见选项:
1.–dry-run
创建并修改新表,但不会建触发器,拷贝数据。
2.–execute
如果我们测试好后,需要真正的执行alter操作,则需要指定这个选项,如果不指定,工具会默认只做一些检查然后退出。
3.-h xxx -P xxx -u xxx -p xxx: host, port
数据库IP,端口,用户名,密码
4.–alter
实际执行的alter语句, 多个更改用逗号分隔。 以下事项需要注意:
5.D=xxx , t=xxx 指定数据库和表
风险
建议操作方法
小结:
PTOSC工具在Mysql的比较老的版本有很好的用处,不过在使用前建议做好备份和防止出现错误的准备.
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/2567/viewspace-2823176/ ,如需转载,请注明出处,否则将追究法律责任。