共计 1143 个字符,预计需要花费 3 分钟才能阅读完成。
简介
Online Schema Change:Online Schema Change(OSC)工具是MySQL官方提供的一种无锁变更工具,它可以在不停止MySQL服务器的情况下对表结构进行修改。OSC利用了InnoDB存储引擎的特性,使用复制和重放日志的方式来实现无锁变更。
官方文档
https://docs.percona.com/percona-toolkit/pt-online-schema-change.html
解决痛点Percona Toolkit Documentation解决痛点
修改大型表的结构:对于包含数百万甚至数十亿行的大型表,直接修改表结构可能导致长时间的锁表和性能下降。pt-online-schema-change
通过在线方式避免了这些问题。
避免业务中断:在需要修改生产环境数据库表结构时,pt-online-schema-change
可以在不影响业务正常运行的情况下进行表结构更改。
兼容各种存储引擎:pt-online-schema-change
支持各种 MySQL 存储引擎,如 InnoDB 和 MyISAM。
安装
https://docs.percona.com/percona-toolkit/installation.html#
使用
参数解析
--alter
:指定要执行的表结构语句
D=my_database
:指定数据库名称
t=employees
:指定表名称
--execute
:执行表结构更改
--charset
: 设置字符编码
完整演示添加字段
pt-online-schema-change h=127.0.0.1,P=3306,D=wind,t=test –user=root –ask-pass –alter “add column age tinyint(2) not null default 0” –execute
执行之前:
执行过程:
结束之后:
添加索引
## 添加字段mobile
pt-online-schema-change h=127.0.0.1,P=3306,D=wind,t=test --user=root --ask-pass
--alter "add column mobile char(11) not null default ''" --charset=utf8 --execute
## 添加索引 idx_mobile
pt-online-schema-change h=127.0.0.1,P=3306,D=wind,t=test --user=root --ask-pass
--alter "add index idx_mobile (mobile) " --execute
原理
可以结合【执行过程】来理解原理。