数据库自动化运维平台--DDL平台服务

本文介绍了如何构建一个数据库自动化运维平台,特别是针对DDL操作的安全性和可控性。讨论了InnoDB在线DDL的局限性和pt-online-schema-change工具的风险,并引出了gh-ost作为更优解决方案。gh-ost具备无触发器、轻量级、可暂停等优点,适合用于自动化平台。文章还展示了平台的任务提交、验证、监控和操作控制流程,并列举了可能遇到的问题及应对策略。
摘要由CSDN通过智能技术生成


最近做了一个自认为很牛逼的平台,RD自助DDL操作,其实这种操作开放给RD自助执行是非常危险的,即便是DBA在做大表操DDL的时候,都经常会出现一些状况,比如造成锁等待,连接打满,主从延迟等。

其实这部分只要用对工具,把特殊情况考虑到,也是可以做成服务开放出去的。

先来了解下目前在线DDL的几种方式以及优缺点

1, 通过InnoDB在线online功能

2, 通过pt-online-schema-change工具


 第一种方式,InnoBD的online功能也只是支持一部分DDL操作,有很多的DDL是不支持online的,具体相关内容这里不展开。即便是能online的操作,也是有很多其他问题,二进制文件中的日志把修改操作序列化了,从库应用日志时会导致复制延迟,而且DDL还是不可中断的,要是在修改时把操作杀掉的话还需要更长的时间去回滚,甚至导致数据字典崩溃。在系统负载高时也不能限速或者暂停。这样的操作还有可能会耗尽系统资源。


对应第二种方式,我们使用pt-online-schema-change很多年了。但每次更数据量比较大的表的时候,都会担心会发生什么,都是因为被它伤害过的,哈哈。有一些操作只敢在非业务高峰期或晚上凌晨几点钟。所有现有的在线修改表定义工具都是用MySQL触发器来迁移数据的,因此本身就存在着一些问题。触发器这种方式的缺点具体不展开了,要了解详细可以自行查询相关内容。


下面介绍下我们平台低层使用的技术gh-ost

这东东是什么东西呢,(port一部分内容) go-ost是gitHub's Online Schema Transmogrifier/Transfigurator/Transformer/Thingy的缩写,意思是GitHub的在线表定义转换器。它主要有以下特点:无触发器  轻量级  可暂停  动态可控  可审计 可测试  可靠。想要详细了解次工具,请自行查看相关资料。



部分截图展示 

1), 任务提交页面



2) 提交任务,并验证任务

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值