其他
基于 gh-ost 的在线 Schema 变更
基于 gh-ost 的在线 Schema 变更
gh-ost (https://github.com/github/gh-ost)
Pt-online-schema-change (https://www.percona.com/doc/percona-toolkit/3.0/pt-online-schema-change.html)
Facebook OSC (https://github.com/facebookincubator/OnlineSchemaChange)
采用 gh-ost 解决方案的原因
创建一张全新的空表(被称做 ghost/影子表),这个表的 schema 跟将要变更(原始表)的表一摸一样 将 Schema 变更应用到 ghost 表 将原始表中的数据复制到 ghost 表 持续获取原始表中的变更操作,保持 ghost 表与原始表同步 用 ghost 表替换原始表
在线变更操作步骤
第一步 创建一个 ghost 表
在数据库概览页,点击「变更 Schema」
选择「在线变更」,并点击「下一步」
输入变更所需的 SQL 语句,选择一个审核人后点击「创建」
第二步 完成任务「同步数据」
第三步 完成任务「切换表」
了解更多
Bytebase 支持基于 gh-ost 的大表在线 Schema 变更,它是一种无触发器的解决方案,该解决方案可将大表在线变更停服时间从若干小时缩短到秒级。同时,Bytebase 还提供了可视化的界面,用户可全程观测在线 schema 变更的进度和过程。如果想了解更多详情,请参阅我们的用户帮助文档(https://www.bytebase.com/docs/change-database/online-schema-migration-for-mysql)。
我们期待收到你的使用反馈,你可以将反馈提交到 GitHub issue board(https://github.com/bytebase/bytebase/issues)。