微盟事情的反思:希望删库跑路永远是一句玩笑而已

2023-10-28 23:59

本文主要是介绍微盟事情的反思:希望删库跑路永远是一句玩笑而已,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

读完需要

9

分钟

速读仅需7分钟

相信这些天微盟的事情大家已经听说了。

每每看到行业内的数据事故,我们在感慨之余,更需要的就是自省,因为这可以敲响我们已有状态的警钟。微盟技术团队从一个创业团队一路走来,逐步建立了较为成熟的安全管理规范,对服务器和数据访问权限有着明确的分层和分级的授权管理制度,这次虽然有疏忽,实际上也是受害者。

根据事件跟踪得知,本次腾讯云从一开始就大力支持微盟,派了很多技术专家来帮助微盟和微盟的客户,使得恢复得以顺利开展。

但是问题要补救和修复,需要一套流程和制度和技术相辅相成,而且是一个持久改进的过程。米兰.昆德拉曾经说过:永远不要以为可以逃避,因为每一步都决定着最后的结局。

从个人理解,因为涉及的环境复杂,涉及团队较多,所以恢复效率和验证方面需要一些时间。在数据恢复方面,有一条不成文的规定,那就是数据在一定程度上可以丢,但是不能乱,丢的数据,可以通过其他方式进行补救,但是数据一乱就失去了修复的基准。因为这次是人为恶意操作,所以恢复的难度会更大。

 

我打算通过如下的三个部分来进行阐述。

流程:

1.完善故障演练流程,作为一项共同目标来请协作完成,做到忙而不乱 

很多公司都会对故障演练存在一些疑虑,因为这会带来一些潜在的隐患,越是不能动,不敢动,在出问题的时候修复的效率是很低下的,每个人和团队更加关注自己这一部分的工作,显然会忽略一些相关的环节,所以能够组织故障演练的流程和规范,把这些梳理和固化下来,在处理问题的时候才能够做到忙而不乱。

2.完善故障响应流程,什么等级的问题系统哪些负责人介入 

为什么很多问题的修复进展不可控,一方面是需要团队协作,另一方面是临时去协调和熟悉问题,排查问题的效率是比较低的,可以考虑引入故障的等级分类,及时通知相关团队,把一些问题的处理作为预先处理的环节提前接入。

3.运维操作需要报备 

运维操作不做无准备的操作,不做加塞操作(比如临时补充一些未经测试的脚本),重要操作,重大操作都需要报备,及时通告,把被动变为主动。

4.引入审计流程,实现独立的服务审计机制

审计环节是一个相对重要的独立环节,可以引入服务审计机制,可以通过独立的审计服务发现潜在的隐患,及时督正问题。

5..业务异常预警,需要同步相关链路层

对于业务层的异常,业务预警是尤其关键的,及时预警,及时同步到相关的链路,可以避免系统雪崩的情况。

技术:

1.完善备份恢复体系,使得恢复能够可控,高效。

比如基础备份(全备和增量备份)和热数据恢复(基于binlog的闪回技术)

备份恢复体系的建设是数据库建设的基础,也是衡量服务可用性的最后一根稻草。充分结合全量备份和增量备份,提高恢复的效率。

比如下面是一个全量备份和增量备份方案,实现一次全备,永远增量的实现策略,然后在这个基础上实现基于binlog的闪回。 

2.集群环境的恢复是系统薄弱环节。系统服务之间互相依赖,这是之前很少有人关注的,所以毫无疑问,这是一块硬骨头,我们需要重点关注。 

3.使用回收站技术,杜绝人为恶意,误删除 

备份能够解决一些异常情况的数据恢复,但是效率相对不高,从规范角度来说,如何避免危险操作,转而使用更加优雅可控的处理方式是我们需要思考的问题。

Drop操作是默认提交的,而且是不可逆的,在数据库操作中都是跑路的代名词,MySQL层面目前没有相应的Drop操作恢复功能,除非通过备份来恢复,但是我们可以考虑将Drop操作转换为一种可逆的DDL操作。

MySQL中默认每个表有一个对应的ibd文件,其实可以把Drop操作转换为一个rename操作,即把文件从testdb迁移到testdb_arch下面;从权限上来说,testdb_arch是业务不可见的,rename操作可以平滑的实现这个删除功能,如果在一定时间后确认可以清理,则数据清理对于已有的业务流程是不可见的,如下图所示。

此外,还有两个额外建议,一个是对于大表变更,尽可能考虑低峰时段的在线变更,比如使用pt-osc工具或者是维护时段的变更,就不再赘述了。

4.服务权限设置,需指定客户端权限 

分业务管理主库和备份库,是互联网行业的普遍惯例,很多公司普遍都会授予运维较大的权限,这也是导致很多故障的潜在隐患。

在这方面我们可以参考如下的一张设计图(来自张文宇老师),可以在多个环节发力,改进权限问题。

制度:

制度相对来说是比较严格,冷面的,我们可以在技术和流程规范之中寻找一些平衡点来辅助作为制度的基石。比如,密码的安全等级设置,权限管理引入审批制度等,在此就不在赘述了。

希望删库跑路只是大家的一种玩笑,一旦当真就麻烦了。

QQ群号:763628645

QQ群二维码如下, 添加请注明:姓名+地区+职位,否则不予通过

订阅我的微信公众号“杨建荣的学习笔记”,第一时间免费收到文章更新。别忘了加星标,以免错过新推送提示。

7

   

近期热文

你可能也会对以下话题感兴趣。点击链接就可以查看。

  • 我眼中的《庆余年》

  • 使用Python分析北京积分落户数据,分析完我陷入了深思

  • MySQL的主键命名挺任性,就这么定了

  • 华裔教授发现二次方程极简解法,我默默的做了下验算

  • 回答:我不小心把公司的数据库给删了,该不该离职?

  • 迁移到MySQL的业务架构演进实战

  • 数据库修改密码风险高,如何保证业务持续,这几种密码双活方案可以参考

  • MySQL业务双活的初步设计方案

  • 如何优化MySQL千万级大表,我写了6000字的解读

  • 一道经典的MySQL面试题,答案出现三次反转

  • 业务双活的数据切换思路设计(下)

  • 业务双活的数据切换思路设计(一)

  • MySQL中的主键和rowid,看似简单,其实有一些使用陷阱需要注意

  • 小白学MySQL要多久?我整理了10多个问题的答案

8

   

转载热文

你可能也会对以下话题感兴趣,文章来源于转载,点击链接就可以查看。

  • 去IOE or Not?

  • 拉里·佩奇(Larry Page)的伟大归来

  • 《吊打面试官》系列-Redis基础

  • 唯一ID生成算法剖析,看看这篇就够了

  • 关于大数据运维能力的一些思考

  • DBA菜鸟的进化简史:不忘初心,记工作中踩过的三个坑

  • 美女主持直播,被突发意外打断!湾区网友却高喊: 我懂!超甜

这篇关于微盟事情的反思:希望删库跑路永远是一句玩笑而已的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/296866

相关文章

可选择的反思指令微调

论文:https://arxiv.org/pdf/2402.10110代码:GitHub - tianyi-lab/Reflection_Tuning: [ACL'24] Selective Reflection-Tuning: Student-Selected Data Recycling for LLM Instruction-Tuning机构:马里兰大学, Adobe Research领

【IT】软件行业发展的前瞻性和希望的广度

我说一下我对程序应用的一个看法就是 我其实个人不太建议自动驾驶技术的发展因为这个东西它说到底还是什么那么一点安全隐患 ,虽然我们平常考虑用同时实行各种各样的高级的自动作用, 但是自动驾驶可能是个特例,其实我个人觉得程序可以在以下方面发展 1.医学(包括诊断 治疗 手术等)因为现在也有很多的疾病是医学还没有能力去解决的 ,2.国防 有的时候因为国家安全真的非常重要的,因为我们每个人

这位在做游戏的前电影导演,希望能变着法子讲故事,并给予玩家会心一击

从黎巴嫩到瑞典,从电影人到游戏从业者,这是一位“作者”开发者的冒险 这是又一名瑞典游戏开发者的故事。 区别于大多数安静内向的同行,Josef Fares 因为其张扬的个性而成为为玩家所熟知的开发界网红。他敢在 TGA 直播中脱口而出“F**k Oscar”,敢在开箱危机的风口浪尖为 EA 说话,他创作了两款极具个人风格的独立游戏——讲述兄弟在幻想世界里历险为父亲求解药的《兄弟:双子传说》(Br

软件测试永远的家——银行测试,YYDS

为什么做金融类软件测试举个栗子,银行里的软件测试工程师。横向跟互联网公司里的测试来说,薪资相对稳定,加班少甚至基本没有,业务稳定。实在是测试类岗位中的香饽饽! 一、什么是金融行业 金融业是指经营金融商品的特殊行业,它包括银行业、保险业、信托业、证券业和租赁业 往往涉及证券、银行、基金、信托、保险、投行、期货等领域 二、金融行业的业务特点 随着金融行业的业务不断增加,金融交易模式的不断变化,

前端希望Quasar

Quasar 不仅仅是一个组件库,而是一个基于 Vue 的开源框架,可以帮助 Web 开发人员快速创建多种风格的响应式 ++ 网站/应用程序: SPA(单页应用程序)SSR(服务器端渲染应用程序)(+可选的 PWA 客户端接管)PWA(渐进式 Web 应用程序)BEX(浏览器扩展)通过 Cordova 或 Capacitor 的移动应用程序(Android、iOS 等)多平台桌面应用程序(使用

大家好,我是探索者,希望得到激励,让我们携手共建社区家园

技术擅长:OpenHarmony稳定性测试、XTS测试、性能测试、功耗测试。 社区贡献:发布过22篇文章,解决过10+个问题,参与过40+问答或讨论。 代表作品: 1、帧率测试的三种方法 2、SmartPerf_Host抓trace方法 3、利用pefertto分析trace方法 4、XTS测试-运行run.bat报错 5、稳定性脚本代码逐行解析

一句话调用,简化抛出异常代码

下面的业务异常抛出代码,写的真好。通过一个变量判断,然后抛出异常,调用时代码很简洁。 PredicateUtil.testMarketToUpgrade(isUpgrade); package com.myfun.utils;import com.myfun.framework.exception.UpgradeGuideException;public class PredicateUti

一起来看Runway删库跑路背后的大瓜

惊奇发现:Runway真的run away 早上起床刷微博,突然发现一个惊爆消息:Runway在Hugging Face上的内容神秘消失。没有任何提前通知,Runway的主页只留了一句话:“我们不再对HuggingFace账号进行维护。”这让人摸不着头脑,赶紧去了解发生了什么。 真相还是谜?陈年旧案引发猜测 关于这一神操作,网友们众说纷纭。有一种说法是,与2022年上传的Stable Dif

漏洞文字版表述一句话版本(漏洞危害以及修复建议)

漏洞文字版表述一句话版本 SQL注入 危害: SQL注入漏洞的危害在于,它允许攻击者通过注入恶意SQL代码,未经授权地访问或篡改数据库信息,可能导致数据泄露、数据破坏、网站被挂马、系统被控制等严重后果,甚至使企业业务瘫痪。 修复建议: (1)修复SQL注入漏洞的建议主要包括采用参数化查询、严格验证和清理用户输入、使用安全API、限制数据库权限、保持软件更新、部署Web应用程序防火墙(

删了HDFS又能怎样?记一次删库不跑路事件

一、事发背景二、应急措施直观的方案 三、分析过程hdfs文件删除过程BlockManagerEditLog hdfs元数据的加载方案确定 四、灾难重演五、经验总结 一、事发背景 ​ 上个月的某一天,由于集群空间不足,公司有一位权限较高的员工通过跳板机在某个线上集群执行手动清理命令,疯狂地执行hadoop fs -rmr -skipTrash /user/hive/wareh