数据库运维中的周期表维护

作者: admin 分类: 公众号存档            1 次浏览 发布时间: 2018-10-21 23:59

公众号:杨建荣的学习笔记 · 作者:杨建荣 · 发布:2018-10-21 23:59:13 · 原文链接

 这是学习笔记的第 1780篇文章

在数据库运维中, 有一种类型的表需要格外重视,在Oracle中可能是分区表,在MySQL中更多是日期表,其实无论哪种形式,他们的属性是相通的,属于周期表。这里就会涉及两类维护,一类是创建,一类是清理。对于变更来说,其实和其他的表类型是相通的,就此不再赘述。

周期表有一个问题那就是如果业务同学提出扩展表,比如我们可以创建一个月的表或分区,那么如果一个月之后,我们忘记了,业务同学也忘记了扩展,那么麻烦就来了,这个信息没有人知道。

    同理数据清理也是类似,如果我们需要根据业务需求删除一周前的数据,如果我们忘记了,或者业务同学忘记了,那么这个事情就很麻烦了,所以这个可以通过统一的配置来对接。

    或者说,这属于数据运维的一个专门入口,至于定时的执行是crontab还是celery等,其实都可以的。

    对于周期表的创建和数据清理,我做了初步的设计。也是后续作为一种数据运维场景的典型。 

数据周期表创建

集成配置入口来定义数据的周期策略

建表模板需要配置页面,建表的元数据信息可以先存储下来,形成元数据管理

元数据标签属性来定义

作为应用监控巡检

作为crontab来定期执行

应用场景:

主从切换之后,主库的crontab能够在从库生效

延伸:开通防火墙权限,主库开通的权限在从库端也开通

后续可以回收应用端的创建表权限和删除表权限

预备条件:

主从关系

MHA高可用信息管理

数据清理

定义数据保留周期

数据清理

数据备份保留策略,下沉到HDFS

作为crontab来定期执行

应用场景:

周期表可以根据时间维度来删除

普通业务表的数据删除也可以支持,需要根据业务维度来定制删除逻辑

主从切换之后,删除任务可以切换到从库端执行

能够及时提炼出一些大表信息,如果存在碎片,可以早期发现

预备条件:

从库端需要保证是read only状态

admin

杨建荣,《Oracle DBA工作笔记》《MySQL DBA工作笔记》作者,dbaplus社群发起人之一,腾讯云TVP,现任竞技世界系统部经理,拥有十多年数据库开发和运维经验,目前专注于开源技术、运维自动化和性能调优

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注