gh-ost

gh-ost

概述

GitHub 开发的无触发器在线 MySQL 表变更工具。⭐ 13,300+ Stars。通过解析 binlog 实现增量数据同步,对主库性能影响极小。

核心原理

  1. 创建幽灵表(ghost table)
  2. 在幽灵表上执行DDL变更
  3. 解析binlog获取增量变更,应用到幽灵表
  4. 分块拷贝历史数据
  5. RENAME TABLE原子交换

核心优势

  • 无触发器,主库性能影响极小
  • 支持暂停/恢复/动态调参
  • 可在从库先测试
  • 支持回滚

相关实体

  • [[mysql-big-table-ddl]] — 大表DDL操作方案
  • [[pt-online-schema-change]] — Percona的替代方案

来源

  • GitHub: github.com/github/gh-ost