Ghost-无损DDL】的更多相关文章

一.简介 gh-ost基于 golang 语言,是 github 开源的一个 DDL 工具,是 GitHub's Online Schema Transmogrifier/Transfigurator/Transformer/Thingy 的缩写,意思是 GitHub 的在线表定义转换器. 1.1 原理 主要实现原理,首先建两张表,一张_gho的影子表,gh-ost会将原表数据以及增量数据都应用到这个表,最后会将这个表和原表做次表名切换,另一张是_ghc表,这个表是存放changelog的数据,…
gh-ost 原理 一 简介 上一篇文章介绍 gh-ost 参数和具体的使用方法,以及核心特性-可动态调整 暂停,动态修改参数等等.本文分几部分从源码方面解释gh-ost的执行过程,数据迁移,切换细节设计. 二 原理 2.1 执行过程 本例基于在主库上执行ddl 记录的核心过程.核心代码在 github.com/github/gh-ost/go/logic/migrator.go 的Migrate() func (this *Migrator) Migrate() //Migrate execu…
目录 一.什么是DDL? 二.表级锁和元数据锁 2.1.什么是表锁? 2.2.什么是MDL? 三.什么是无损DDL? 四.DDL重建表 Mysql5.5之前重建表 Mysql5.6之后重建表 五.ghost工具源码梳理 5.1.工作模式 5.1.1 主从模式a 5.1.2 主主模式b 5.1.3 migrate/test on relica 5.1.前置性检查 5.2.创建streamer监听binlog 5.3.创建xxx_ghc表,xxx_gho表. 5.4 开始迁移数据 5.5 cut-o…
目录 一.唠嗑 二.什么是bin log? 三.它在哪里? 四.bin log的相关配置 五.binlog 有啥用? 六.超有用的参数 sql_log_bin 七.未来几篇文章 推荐阅读 一.唠嗑 文章公号 首发!连载中!关注微信公号回复:"抽奖" 还可参加抽活动 算上这一篇文章,白日梦的MySQL专题已经写了18篇了.前面的文章中有跟大家分享过undo log.redo log.以及接下来要有几篇文章跟大家分享bin log. 前一阵跟一个同学唠嗑,说到了MySQL的这几个日志.那同…
Hi大家好,我是来自博客园的赐我白日梦! 为大家带来MySQL面试专题!全文110篇!以问答的方式,由浅入深的帮你应对各类MySQL面试题的狂轰滥炸!当然也不乏会分享一些高阶读写分离数据库中间件原理及落地的技术实现,为你揭开数据库中间件神秘的面纱! 免费!只是因为不想卖钱,质量还是蛮好的- 面试官都关注了!你还在犹豫什么呢? 文末有二维码 大家常说的基数是什么?(已发布) 讲讲什么是慢查!如何监控?如何排查? 对NotNull字段插入Null值有啥现象? 能谈谈 date.datetime.ti…
目录 因为我个人比较喜欢看修仙类的小说,所以本文的主体部分借用修仙者的修为等级,将学习旅程划分成:练气.筑基.结丹.元婴.化神.飞升六个段位,你可以看下你大概在哪个段位上哦! 本文目录: 我为什么要写这篇文章 都这么卷了,是时候好好学MySQL了! 勾勒脑图 练气期 筑基期 结丹期 元婴期 化神期 飞升 联系我 be friends 我为什么要写这篇文章 首先我做一下自己介绍: 大家好,我是白日梦. 大三上学期末尾我尝试投递简历,当时很幸运拿到了度小满金融的offer,今年也就是2021年的3月…
目录 因为我个人比较喜欢看修仙类的小说,所以本文的主体部分借用修仙者的修为等级,将学习旅程划分成:练气.筑基.结丹.元婴.化神.飞升六个段位,你可以看下你大概在哪个段位上哦! 本文目录: 我为什么要写这篇文章 都这么卷了,是时候好好学MySQL了! 勾勒脑图 练气期 筑基期 结丹期 元婴期 化神期 飞升 联系我 be friends 我为什么要写这篇文章 首先我做一下自己介绍: 大家好,我是白日梦. 大三上学期末尾我尝试投递简历,当时很幸运拿到了度小满金融的offer,今年也就是2021年的3月…
背景: 作为一个DBA,大表的DDL的变更大部分都是使用Percona的pt-online-schema-change,本文说明下另一种工具gh-ost的使用:不依赖于触发器,是因为他是通过模拟从库,在row binlog中获取增量变更,再异步应用到ghost表的.在使用gh-ost之前,可以先看GitHub 开源的 MySQL 在线更改 Schema 工具[转]文章或则官网了解其特性和原理.本文只对使用进行说明. 说明: 1)下载安装:https://github.com/github/gh-…
GitHub正式宣布以开源的方式发布gh-ost:GitHub的MySQL无触发器在线更改表定义工具! gh-ost是GitHub最近几个月开发出来的,目的是解决一个经常碰到的问题:不断变化的产品需求会不断要求更改MySQL表结构.gh-ost通过一种影响小.可控制.可审计.操作简单的方案来改变线上表结构. 在介绍gh-ost之前,我们先了解一下各种现有方案,以及为什么要自己开发一个新工具. 已有的在线修改表定义方案 目前,在线修改表定义的任务主要是通过这三种途径完成的: 在从库上修改表定义,修…
MySQL 5.5 DDL 在MySQL 5.5版本前,所有DDL操作都使用Copy Table的方式完成,操作过程中原表数据库不允许写入,只能读取,在MySQL 5.5版本中引入FIC(Fast index creation)特性. FCI 操作流程: (1)对表加共享S锁,允许其他会话读操作,但禁止写操作, (2)根据当前表数据创建索引, (3)新索引创建完成,解除S锁,允许读写. FCI 优点: (1)创建索引不需要拷贝整表数据,创建速度快, (2)创建索引过程中,可以快速中止. FCI限…