不小心删库是一种怎样的体验?半个DBA的跑路经验总结
关注「实验楼」,每天分享一个项目教程
国内呆不下了,赶紧出国。首先,不要选动车,要选最近的一班飞机,尽快出国,能走高速走高速,不然选人少的路线。切记,注意看高德地图实时路况。我们有个前辈就是删库之后开车就上二环,下午五点钟。警察到的时候他还堵在路上。
正文共:1678 字
预计阅读时间:5 分钟
最近这篇《不小心删库是一种怎样的体验?》比较火,蹭个热度讲讲半个 DBA 的删库经验。
大半夜的脑子比较糊涂,简单写一写。
部分内容仅限于 mysql。
0. 国内呆不下了,赶紧出国
首先,不要选动车,要选最近的一班飞机,尽快出国,能走高速走高速,不然选人少的路线。
没错,我们 DBA 都是常备护照的。
切记,注意看高德地图实时路况。
我们有个前辈就是删库之后开车就上二环,下午五点钟。警察到的时候他还堵在路上。
1. 只不过是把数据干掉了
权限问题永远是大问题,做好权限回收,开发数据库和线上数据库分离,线上数据库管理权限(一般指修改表结构权限与删表权限)禁止回收,也不提供给业务直接用。
不然参考 0。
公司管理上,最好有自己的 DB 运维产品,线上数据库只允许查,改的话要有审批流程。
至于查数据要不要脱敏、导入导出流程,就看自己产品的规划和排期了。
至于 DBA 怎么保证不手滑,这个每个人有每个人的习惯。
2. 删库什么的都是小 case
清理数据库之前一定要检查进程,是否存在数据库进程,如果存在则宁愿不搞也不要深夜搞。
公司清理数据库要有下线流程。下线一定要走流程。宁愿多租几天机房也不要丢掉数据。
不然参考 0。
原则是:
rm 文件之前先检查进程是否存在。
绝不手工 drop 库表,如果非要 drop,则应该写成 rename,truncate 也是类似,写成 rename 和 create table like 两条 sql。
删表之前可以根据表文件的最后修改时间进行再次确认,不确认就找人 review,有下线流程则走下线流程。
3. 备份,备份,备在何处?
冷备,热备都要有,一定要每天一备。
冷备便是应对这种情况。
公司应该有自己的 DB 备份方案,并且保证执行到位。
4. 人算不如天算
关于这一点,可以单独拉一个大专题出来了,核心内容是 mysql 高可用。
简单起见,推荐这篇文章:避免硬件故障的核心解决方案是冗余。
硬件层面的 raid,软件层面的主从、热备都是为了保证某一个节点宕机,其他节点仍然能继续工作。
所有库都要有主从备份,一方面做读写分离,一方面也是为了备份、高可用。
即便有半同步复制,有些极端情况下可以认为,mysql binlog 没有同步到从库上,仍然可能存在 binlog 丢失(数据丢失)的风险。
所以应对这点,比较好的开源解决方案有 2:TiDB 和 Mysql GR。
5. 升级也能失败?
说起来很简单,升级无非是:
准备升级
过程原理
手工升级后拓扑:
工具(mha)升级后拓扑:
6. 操作之前有个流程
一般自己操作的时候,都不会有太多的顾忌。
但是要是拿给别人看,就要考虑一下了。
如果别人不只要看,还要 review,那这样就比较难犯重大的错误了。
如果有些操作需要夜间一个人搞,那么一定要提前列好准备,这个就比较正式了。
包括:
1. 梳理具体的执行步骤、执行命令和每个步骤的预计结果。
2. 如果某些步骤出错,是否要求回滚、预先制定回滚方案。
3. 详细记录执行记录,每一步都要有反馈。
4. 事先梳理好收尾工作。
5. 强关联业务要事先通知,考虑到时间段和别的业务高峰,尽量让对方也安排人留守观察。
6. 一定要严格按照步骤来进行操作。宁愿延期,不要加戏。
7. 留几个问题
1. 如果你有机会进行 mysql 迁移和升级工作,你认为无法写入数据造成的影响大,还是写入脏数据造成的影响大?
2. 如果数据库挂了,机器可以启动但是 mysql 进程无法启动,你这里又有昨天的备份可以恢复,你该怎么做?
3.想要删库完全不出问题,那么删库流程该怎么设计?
好了,公司还是要有自己的 DB 产品,再简陋也要有。
点击进入【实验楼小程序】
随时随地,学习编程
作者:大舒
出处:segmentfault
链接:https://segmentfault.com/a/1190000013452143
推荐阅读:
2017年关于Python的12件大事
程序员,你能真正掌握多少编程技术?
2018 最具就业前景的 7 大编程语言
2018年最热门的10大科技关键词,一举一动都将改变未来
不小心删库是一种怎样的体验?半个DBA的跑路经验总结相关推荐
- 顺丰被删库?半个DBA的跑路经验总结
前言 最近顺丰又搞出一个热门:运维误删库事件! 看看有没有什么后路好走啊哥们~ 正文 国内呆不下了,赶紧出国 首先,不要选动车,要选最近的一班飞机,尽快出国,能走高速走高速,不然选人少的路线. 没错, ...
- 程序员不小心删库是什么体验?
在网上经常会看到一些搞笑的帖子,比如在我们技术圈,被频繁调侃的一个情况是:如果你不小心删库了,当时是什么体验? 想必很多人都是"瑟瑟发抖",脑子里只有两个问题:怎么挽回?补救不了怎 ...
- 不小心删库了,试试binlog
事件起因 我们的系统中有数据导入的功能,可以把特定的格式的excel数据导入到系统中来 由于客户电脑的文件比较多,很多文件的名字也比较相近,客户在导入excel时选错了文件 这个错误的excel文件的 ...
- mysql 不小心删库了,下面的方法能帮你找回来
之前习惯性用电脑删除键去删除数据库里的数据,有一天...库没了!!!(没有服务器快照,也没有数据库备份!!!) 然后就找专业的人,给我报价4张表=3w,你特么抢钱呢?! 我数据库100多张,估计是看你 ...
- 小程序重构第一期丨不小心删库了。。。
一.以前的代码烂成一坨 事情的起因是,我之前不是准备 学Go语言 嘛. 基础学完后,准备开个项目练练手,突然发现我大二开发的小程序又自动把我的签到数据 – 清零了! 这里简单介绍一下 时光早安(重构前 ...
- 不小心执行了 rm -f,先别急着跑路 (内附彩蛋)!
点击上方"民工哥技术之路"选择"置顶或星标" 每天10点为你分享不一样的干货 作者:justmine http://www.cnblogs.com/justmi ...
- 手把手教你玩 MySQL 删库不跑路,直接把 MySQL 的 binlog 玩溜
我们常常听人说,只要你愿意,MySQL 可以恢复至半个月甚至一个月以内的任何一个状态.网上也有很多删库跑路的段子... 那么今天松哥想和大家来聊一聊 MySQL 中的 binlog,来手把手教大家如何 ...
- 在没学会用MySQL之前,我还是那个担心删库了就只能跑路的懵懂少年
我们常常听人说,只要你愿意,MySQL 可以恢复至半个月甚至一个月以内的任何一个状态.网上也有很多删库跑路的段子... 那么今天松哥想和大家来聊一聊 MySQL 中的 binlog,来手把手教大家如何 ...
- 学会这个删库再也不用跑路了~ --技术流ken
前言 相信每一个学IT的人或多或少都听说过从删库到跑路这个梗~下图也是在各种交流群屡禁不止,新人听着也是瑟瑟发抖. 人们茶余饭后,街头巷角难免要问... 下面技术流ken就教给各位新手们一招删库再也不 ...
最新文章
- 国外论坛BCH关注度暴涨
- Hello Las Vegas | 博云在微软Inspire大会的4个思考
- 3.15计算机网络原理与技术笔记
- Java和SAP ABAP的异常处理
- ReviewForJob——深度优先搜索的应用
- 芝加哥大学终身教授:自然科学与社会科学的真正区别
- html文档utf8文档字节,HTML UTF-8 参考手册
- ib网卡命令_linux安装卸载IB网卡(mellanox)驱动
- JavaScript:点击按钮打开/关闭网页
- treeset可以重复吗_社保和商业医疗险可以重复报销吗?报销攻略请收好
- cygwin apt-cyg
- 免费图床(随时更新)
- py6_Python 内置函数/普通自定义函数 及参数和返回值
- 用python实现时间序列白噪声检验
- 解决mybatis-plus分页查询不生效,配置分页拦截器
- 兼容性运行程序永远_永远不会有太多的应用程序
- 原谅帽大作战游戏程序
- App Store 审核被拒的各种原因
- SQL 中的 COALESCE 函数初学者指南
- 氢os android 7.0,氢OS 3.0正式推送!基于Android 7.0,简洁纯净