顺丰删库跑路事件后,你必须掌握的 8 大对策!

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:

这两天吵得沸沸扬扬的顺丰删库事件《顺丰高级工程师误删数据库,删库到被跑路。。》,很多人问有什么对策,肯定有!!

4b90d31a201573dc7223bfae3ba88b147faf8065

1. 只不过是把数据干掉了

3c3a9db58f7527ae0f00c9decd06bdbaa699ddff

权限问题永远是大问题,做好权限回收,开发数据库和线上数据库分离,线上数据库管理权限(一般指修改表结构权限与删表权限)禁止回收,也不提供给业务直接用。

不然参考 8。

公司管理上,最好有自己的 DB 运维产品,线上数据库只允许查,改的话要有审批流程。

至于查数据要不要脱敏、导入导出流程,就看自己产品的规划和排期了。

至于 DBA 怎么保证不手滑,这个每个人有每个人的习惯。

2. 删库什么的都是小 case

723178abf3201b6ca26af8675c8b871e999b41f7

清理数据库之前一定要检查进程,是否存在数据库进程,如果存在则宁愿不搞也不要深夜搞。

公司清理数据库要有下线流程。下线一定要走流程。宁愿多租几天机房也不要丢掉数据。

不然参考 8。

原则是:

rm 文件之前先检查进程是否存在。

绝不手工 drop 库表,如果非要 drop,则应该写成 rename,truncate 也是类似,写成 rename 和 create table like 两条 sql。

删表之前可以根据表文件的最后修改时间进行再次确认,不确认就找人 review,有下线流程则走下线流程。

3. 备份,备份,备在何处?

51a0789e3f1c47c57988e82babbe5cb7c93bda63

冷备,热备都要有,一定要每天一备。

冷备便是应对这种情况。

公司应该有自己的 DB 备份方案,并且保证执行到位。

4. 人算不如天算   

1f6818dddb6f2de20470b96cb6b1bb5eb009900d

关于这一点,可以单独拉一个大专题出来了,核心内容是 mysql 高可用。

简单起见,推荐这篇文章:避免硬件故障的核心解决方案是冗余。

83d1b90d3e1aad2a8e2b63549d587e6b9333e0bb

硬件层面的 raid,软件层面的主从、热备都是为了保证某一个节点宕机,其他节点仍然能继续工作。

所有库都要有主从备份,一方面做读写分离,一方面也是为了备份、高可用。

即便有半同步复制,有些极端情况下可以认为,mysql binlog 没有同步到从库上,仍然可能存在 binlog 丢失(数据丢失)的风险。《MySQL数据库开发的 36 条军规》学习一下。

所以应对这点,比较好的开源解决方案有 2:TiDB 和 Mysql GR。

5. 升级也能失败?

082f4e6a155d3c755bd23e02ea042958c5189b47

说起来很简单,升级无非是:

准备升级

4d09a5a08d9fc7a4f770849c8795f5e7fb6190ad

过程原理

b7abc1f0421c1b7f531a03022adf30ee1ed50fed

手工升级后拓扑:

ce1930922a175aef79684b528f6706ab934e5e5c

工具(mha)升级后拓扑:

248b18093d21a3c97a30b0aa0a8bd83240d259e6

6. 操作之前有个流程

一般自己操作的时候,都不会有太多的顾忌。

但是要是拿给别人看,就要考虑一下了。

如果别人不只要看,还要 review,那这样就比较难犯重大的错误了。

如果有些操作需要夜间一个人搞,那么一定要提前列好准备,这个就比较正式了。

包括:

1. 梳理具体的执行步骤、执行命令和每个步骤的预计结果。

2. 如果某些步骤出错,是否要求回滚、预先制定回滚方案。

3. 详细记录执行记录,每一步都要有反馈。

4. 事先梳理好收尾工作。

5. 强关联业务要事先通知,考虑到时间段和别的业务高峰,尽量让对方也安排人留守观察。

6. 一定要严格按照步骤来进行操作。宁愿延期,不要加戏。

7. 留几个问题

1. 如果你有机会进行 mysql 迁移和升级工作,你认为无法写入数据造成的影响大,还是写入脏数据造成的影响大?

2. 如果数据库挂了,机器可以启动但是 mysql 进程无法启动,你这里又有昨天的备份可以恢复,你该怎么做?

3.想要删库完全不出问题,那么删库流程该怎么设计?

8. 好了,公司还是要有自己的 DB 产品,再简陋也要有。


原文发布时间为:2018-09-21

本文来自云栖社区合作伙伴“Java技术栈”,了解相关信息可以关注“Java技术栈”。

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
4月前
|
缓存 Java 关系型数据库
踩了定时线程池的坑,导致公司损失几千万,血的教训
踩了定时线程池的坑,导致公司损失几千万,血的教训
|
12月前
|
NoSQL JavaScript 前端开发
P0级事故,项目组慌的一批! 上
P0级事故,项目组慌的一批! 上
|
12月前
|
消息中间件 NoSQL JavaScript
P0级事故,项目组慌的一批! 下
P0级事故,项目组慌的一批! 下
程序人生 - 写完这篇文章后,我被保险公司追杀了几十条街(二)
程序人生 - 写完这篇文章后,我被保险公司追杀了几十条街(二)
77 0
程序人生 - 写完这篇文章后,我被保险公司追杀了几十条街(二)
程序人生 - 写完这篇文章后,我被保险公司追杀了几十条街(三)
程序人生 - 写完这篇文章后,我被保险公司追杀了几十条街(三)
62 0
程序人生 - 写完这篇文章后,我被保险公司追杀了几十条街(三)
程序人生 - 写完这篇文章后,我被保险公司追杀了几十条街(四)
程序人生 - 写完这篇文章后,我被保险公司追杀了几十条街(四)
53 0
程序人生 - 写完这篇文章后,我被保险公司追杀了几十条街(四)
程序人生 - 写完这篇文章后,我被保险公司追杀了几十条街(五)
程序人生 - 写完这篇文章后,我被保险公司追杀了几十条街(五)
51 0
程序人生 - 写完这篇文章后,我被保险公司追杀了几十条街(五)
程序人生 - 写完这篇文章后,我被保险公司追杀了几十条街(一)
程序人生 - 写完这篇文章后,我被保险公司追杀了几十条街(一)
74 0
程序人生 - 写完这篇文章后,我被保险公司追杀了几十条街(一)
|
消息中间件 分布式计算 监控
RabbitMQ 线上事故!慌的一批,脑袋一片空白
1.什么是kafka Kafka是分布式发布-订阅消息系统,它最初是由LinkedIn公司开发的,之后成为Apache项目的一部分,Kafka是一个分布式,可划分的,冗余备份的持久性的日志服务,它主要用于处理流式数据。 2.为什么要使用 kafka,为什么要使用消息队列 缓冲和削峰: 上游数据时有突发流量,下游可能扛不住,或者下游没有足够多的机器来保证冗余,kafka在中间可以起到一个缓冲的作用,把消息暂存在kafka中,下游服务就可以按照自己的节奏进行慢慢处理。 解耦和扩展性: 项目开始的时候,并不能确定具体需求。消息队列可以作为一个接口层,解耦重要的业务流程。只需要遵守约定,针对数据
165 0
RabbitMQ 线上事故!慌的一批,脑袋一片空白
|
Web App开发 自然语言处理 安全
TikTok 美国员工抱怨工作压力大;多省集中排查整治超时加班;黑客向上海市民卖抢菜软件被抓;苹果员工对回办公室工作感到不满
本周架构视点:TikTok 美国员工抱怨工作压力大:需周末加班,跨时区工作;谷歌调整绩效评价体系:降低评估频率,属于变相加薪;多个省份集中排查整治超时加班问题,互联网企业等被重点检查;向日葵远程控制回应服务器崩溃;GitHub 要求所有贡献代码的用户在 2023 年底前启用双因素认证;WhatsApp 前高管:后悔当年把公司卖给 Facebook。
196 0

相关实验场景

更多