OnlineSchemaChange

DM 源码阅读系列文章(八)Online Schema Change 同步支持

≡放荡痞女 提交于 2019-11-27 19:41:19
作者:lan 本文为 DM 源码阅读系列文章的第八篇, 上篇文章 对 DM 中的定制化数据同步功能进行详细的讲解,包括库表路由(Table routing)、黑白名单(Black & white table lists)、列值转化(Column mapping)、binlog 过滤(Binlog event filter)四个主要功能的实现。 本篇文章将会以 gh-ost 为例,详细地介绍 DM 是如何支持一些 MySQL 上的第三方 online schema change 方案同步,内容包括 online schema change 方案的简单介绍,online schema change 同步方案,以及同步实现细节。 MySQL 的 Online Schema Change 方案 目前有一些第三方工具支持在 MySQL 上面进行 Online Schema Change,比较主流的包括 pt-online-schema-change 和 gh-ost 。 这些工具的实现原理比较类似,本文会以 gh-ost 为例来进行分析讲解。 从上图可以大致了解到 gh-ost 的逻辑处理流程: 在操作目标数据库上使用 create table ghost table like origin table 来创建 ghost 表; 按照需求变更表结构,比如 add column/index ;