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(一)
306 0
|
12月前
|
Oracle 关系型数据库 数据库
自动从备库修复主库的坏块
数据库的坏块经常是一件非常棘手的事情,Oracle数据库从11.2后,使用 Active Data Guard option 时,主库和备库可以自动借用对方的block来修复自身的坏块,这个过程对应用是透明的。
|
SQL 安全 关系型数据库
Ghost-无损DDL(二)
Ghost-无损DDL(二)
198 0
|
存储 关系型数据库 MySQL
mydumper备份工具介绍与使用
前面文章有介绍过 MySQL 系统自带的 mysqldump 备份工具的使用,其实还有一个开源工具 mydumper 同样适用于 MySQL 的逻辑备份。之前一直没有正式体验过,只是听说比 mysqldump 要快很多,具体使用效果如何, 一起来看下吧。
420 0
|
SQL 关系型数据库 MySQL
undrop-for-innodb实测(一)-- 表结构恢复
undrop是一款针对mysql innodb的数据恢复工具,通过扫描文件或磁盘设备,然后解析innodb数据页进而恢复丢失的数据,对于drop、truncate以及文件损坏都很有帮助。本文介绍drop操作后表结构的恢复过程。
4063 0
|
关系型数据库 数据库 C语言