gh-ost
概述
GitHub 开发的无触发器在线 MySQL 表变更工具。⭐ 13,300+ Stars。通过解析 binlog 实现增量数据同步,对主库性能影响极小。
核心原理
- 创建幽灵表(ghost table)
- 在幽灵表上执行DDL变更
- 解析binlog获取增量变更,应用到幽灵表
- 分块拷贝历史数据
- RENAME TABLE原子交换
核心优势
- 无触发器,主库性能影响极小
- 支持暂停/恢复/动态调参
- 可在从库先测试
- 支持回滚
相关实体
- [[mysql-big-table-ddl]] — 大表DDL操作方案
- [[pt-online-schema-change]] — Percona的替代方案
来源
- GitHub: github.com/github/gh-ost