Ghost-无损DDL(三)

简介: Ghost-无损DDL(三)

六、ghost的暂停、继续、限流、终止#



  • 暂停和继续

ghost可是实现真正的暂停,当我们出发暂停时,ghost不会再有任何行rowCopy,也不会再处理任何事件。不对主库产生任何压力

相关参数:throttle-additional-flag-file


//在ghost的main.go中有定义这个参数
//这个文件存在的话操作会停止 保留默认值即可,用于限制多个gh ost操作
flag.StringVar(&migrationContext.ThrottleAdditionalFlagFile, "throttle-additional-flag-file", "/tmp/gh-ost.throttle", "operation pauses when this file exists; hint: keep default, use for throttling multiple gh-ost operations")
//具体可以通过shell命令完成
echo throttle | socat - /tmp/gh-ost.test.sock
//继续
echo no-throttle | socat - /tmp/gh-ost.test.sock


  • 限流相关

相关参数

--max-lag-millis

--chunk-size

--max-load


//这些参数在main.go中的定义如下
//限制操作的复制延迟, 当主从复制延迟时间超过该值后,gh-ost将采取节流(throttle)措施
maxLagMillis := flag.Int64("max-lag-millis", 1500, "replication lag at which to throttle operation")
//每次迭代中要处理的行数 范围从100 - 100000
//就是rowCopy过程中range
chunkSize := flag.Int64("chunk-size", 1000, "amount of rows to handle in each iteration (allowed range: 100-100,000)")
//当ghost检测到超过最大负载 ghost不会退出,为了不给系统负载造成更大的压力,ghost会等load低于这个值时再工作。
maxLoad := flag.String("max-load", "Threads_running=25", "Comma delimited status-name=threshold. e.g: 'Threads_running=100,Threads_connected=500'. When status exceeds threshold, app throttles writes")


  • 终止

--panic-flag-file


//在main.go中,如下  
//创建此文件时,gh ost将立即终止,而不进行清理
flag.StringVar(&migrationContext.PanicFlagFile, "panic-flag-file", "/tmp/ghost.panic.flag", "when this file is created, gh-ost will immediately terminate, without cleanup")


七、写有中文注释的ghost源码项目#



项目使用vender管理依赖,开箱即用


github地址:https://github.com/zhuchangwu/Ghost-source-code-reading-env

  • todo:GoMySqlReader
相关文章
|
SQL 存储 安全
Ghost-无损DDL(一)
Ghost-无损DDL(一)
377 0
|
SQL 关系型数据库 测试技术
timescaleDB双机热备流复制与测试
最近有项目要用到热备功能,timescaledb只能兼容pg的流复制,不能兼容其他的复制策略,所以这里我们采用pg的流复制功能镜像部署,并进行了一些测试
892 0
|
6月前
|
SQL 存储 关系型数据库
PolarDB-X 原生无锁变更,比 gh-ost 更快、更稳定
无论是单机数据库还是分布式数据库,无锁变更都是非常重要的能力。PolarDB-X 无锁变更技术能够极大提升数据库在线操作的灵活性与安全性,它允许在不影响业务连续性的情况下,对表结构进行修改,如增加列、变更列类型等,这对于全天候无间断服务的业务方来说是至关重要的。
|
7月前
|
Oracle 关系型数据库 数据库
详细解读ADG增量恢复手册
详细解读ADG增量恢复手册
38 0
|
SQL 安全 关系型数据库
Ghost-无损DDL(二)
Ghost-无损DDL(二)
231 0
|
Oracle 关系型数据库
dataguard 增量恢复
dataguard 增量恢复
141 0
|
SQL 存储 缓存
MySQL Online DDL增量DML记录和回放的源码实现
中分析并验证了MySQL进行在线创建索引时,不会因为执行时间过长或业务压力较大,在回放增量DML时加锁时间过久而对业务造成严重影响,本文从MySQL 8.0.19源码出发,分析MySQL是如何实现的。同时也确认是否在回放DML时会报duplicate key。 核心处理流程和对象 增量DML处理流程主要在http://row0log.cc中。 /** @file row/row0log.cc Modification log for online index creation and online table rebuild Created 2011-05-26 Marko Make
225 0
|
SQL Oracle 关系型数据库
【OGG】OGG的单向DML复制配置(一)
【OGG】OGG的单向DML复制配置(一) 一.1  BLOG文档结构图     一.2  前言部分   一.
1114 0

热门文章

最新文章