删库?半个DBA的跑路经验总结
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 产品,再简陋也要有。
删库?半个DBA的跑路经验总结的更多相关文章
- SQL 从入门到 DBA 删库跑路
SQL 从入门到 DBA 删库跑路 一.基础 人员信息表: ID 姓名 性别 出生 婚否 学历 工资 工会 35009449 孙xx 男 1978-2-17 未婚 中专 3000 TRUE 35000 ...
- The Data Way Vol.3|做到最后只能删库跑路?DBA 能做的还有很多
关于「The Data Way」 「The Data Way」是由 SphereEx 公司出品的一档播客节目.这里有开源.数据.技术的故事,同时我们关注开发者的工作日常,也讨论开发者的生活日常:我们聚 ...
- 学会这个删库再也不用跑路了~ --技术流ken
前言 相信每一个学IT的人或多或少都听说过从删库到跑路这个梗~下图也是在各种交流群屡禁不止,新人听着也是瑟瑟发抖. 人们茶余饭后,街头巷角难免要问... 下面技术流ken就教给各位新手们一招删库再也不 ...
- MySQL数据库无完整备份删库,除了跑路还能怎么办?
1.背景 前段时间,由于运维同事的一次误操作,清空了内网核心数据库,导致了公司内部管理系统长时间不可用,大量知识库内容由于没有备份险些丢失. 结合这两天微盟的删库跑路事件,我们可以看到,数据库的备份与 ...
- Oracle删库跑路
--10g R2 startup mount exclusive restrict; alter system enable restricted session; drop database; -- ...
- P5270 无论怎样神树大人都会删库跑路
题目地址:P5270 无论怎样神树大人都会删库跑路 第一眼看上去是模拟,似乎是 \(O(n)\) 的 水题 信心满满的写完: #include <bits/stdc++.h> using ...
- Mysql如何在删库后可以不用跑路
我一直在想,地球上这么多程序员,应该有很多人在团队做项目的时候,出过很大的错误,比如说不小心删了库,活动福利字段多写了个零导致全服务器玩家领到数倍奖励,听了沙雕群友的话执行rm -rf命令. 记得有一 ...
- Linux 教你如何预防删库到跑路
学习linux之前,有几个命令是必须记住的 我们最常见的删库命令 rm -rf /** 这个命令可以在你心情不好的时候,对着公司服务器操作一番,保证让你一时爽, 删完库这个时候你就该跑路了,但是你真的 ...
- 怎么避免从删库到跑路 -- 详解 mysql binlog 的配置与使用
1. 引言 使用数据库的时候,我们每个操作都十分小心,尤其是不能直接在数据库上执行 update.delete 等操作,否则万一忘记加全 where 条件,可能就会造成无法挽回的结果. 有一句十分流行 ...
随机推荐
- cin.clear()与cin.sync()的使用
cin.clear()与cin.sync()使用是有先后顺序的. 他们的作用: cin.clear(); //将流中的所有状态都重设为有效值 cin.sync();//清空流 在输入错误的情况下,如果 ...
- leetcode124二叉树最大路径和
第一选择是将其转化成图用动态规划,但这样还是太麻烦 使用递归的思路,对于当前的节点root,分别求左右孩子到当前节点的单项路径权值最大的路径权值,然后记包含当前节点的路径权值为 path_price= ...
- Struts模型驱动
Struts运行时候,会执行默认的拦截器栈,其中有一个拦截器,模型驱动拦截器: <interceptor name="modelDriven" class="com ...
- js图片轮播效果实现代码
首先给大家看一看js图片轮播效果,如下图 具体思路: 一.页面加载.获取整个容器.所有放数字索引的li及放图片列表的ul.定义放定时器的变量.存放当前索引的变量index 二.添加定时器,每隔2秒钟i ...
- springboot启动报错:Failed to configure a DataSource
一.背景 springboot的出现,让项目搭建变得更方便快捷,同时简化掉很多的样板化配置代码,提高开发效率. 通过idea生成springboot项目,启动报错:Failed to configur ...
- 阶段3 3.SpringMVC·_06.异常处理及拦截器_1 SpringMVC异常处理之分析和搭建环境
异常一级一级的抛出 前端控制器,调用异常处理器组件 搭建环境 注意下面两个的结尾的名称要个 Module Name对应起来. 导入开发的坐标 复制upload这个项目里面的 编程和生成 改成1.8 配 ...
- 七十二:flask钩子函数之关于errorhandler的钩子函数
errorhandler:在发生一些异常的时候,如404.500,如果要自定义处理这些错误,就可以使用errorhandler来处理,使用errorhandler需要注意几点: 1.在errorhan ...
- LinuxE2系统刷机后OSCAM安装与读卡器设置
我也属于E2小白,最近才开始玩这个系统.从dinobot 4k+,到H7s,在到H5,各种E2机器都买了.刚开始入手的时候,怎么这么麻烦?慢慢的发现,烧新,玩E2也是一种乐趣,只不过最近困扰我的刷机后 ...
- linux下mysql定时备份,数据保存周期一周
以下脚本来自网络,版权归原作者所有(推荐放在夜间自动备份,用cron制定计划任务) crontab -e 0 3 * * * /var/erp/data/mysql_backup.sh #!/bin/ ...
- iOS服务器数据请求"汉字编码"问题
下面记录一下数据请求问题: 1.不知道大家有木有遇到过,当数据请求的URL带有汉字的时候,请求数据肯定会报404错误,也就是参数或者是接口URL错误<虽然说404,500等错误一般都是服务器问题 ...