即使删了全库,如何半小时恢复? 糖太宗 • 2022年5月14日 上午12:34 • 技术 • 阅读 18 技术人如果经常线上操作DB,河边走久了,难免出现纰漏: (1)update错数据了; (2)delete错数据了; (3)drop错数据了; 咋办?找DBA恢复数据呗,即使恢复不了,锅总得有人背呀。 画外音:把数据全删了,怎么办,怎么办? 零,哪种方案不能实现数据恢复? 从“从库”恢复数据。 一般来说数据库集群是主从架构: 如果人为执行了“删库”操作,命令会同步给其他从库,导致所有库上的数据全被删除,无法恢复,故这种方案是不行的。 一,如果DBA没有做功课,最常见的处理方案是什么? 如果没有做数据安全方案,应对“删库”最常见的操作是,跑路。删掉了公司最重要的资产,还不快闪。 二,如果DBA日常做了全量备份+增量备份,应该怎么处理? DBA最常见的技能是:全量备份+增量备份。 全量备份:定期(例如一个月)将库文件全量备份。 增量备份:定期(例如每天)将binlog增量备份。 如果不小心“删库”,可以这么恢复: (1)将最近一次全量备份的全库找到,拷贝回来(文件一般比较大),解压,应用; (2)将最近一次全量备份后,每一天的增量binlog找到,拷贝回来(文件较多),依次重放; (3)将最近一次增量备份后,到执行“删全库”之前的binlog找到,重放; 恢复完毕。 为了保证方案的可靠性,需要定期进行演练。 咦,我怎么好像没听过DBA定期做过这类演练? 很有可能只是做了理论上的方案,如果真出了问题,效果也只是理论上能恢复。此时回归方案一,跑路。 全量备份+增量备份的恢复周期也非常长,可能是天级别。 画外音:把几T的数据传输过来都用了好长时间。 三,如果DBA做了“1小时延时从库”,应该怎么处理? 什么是1小时延时从库? 如上图所示,增加一个从库,这个从库不是实时与主库保持同步的,而是每隔1个小时同步一次主库,同步完之后立马断开1小时,这个从库会与主库保持1个小时的数据差距。 当“删全库”事故发生时,如何利用“1小时延时从库”快速恢复数据? (1)应用1小时延时从; (2)将1小时延时从最近一次同步时间到,执行“删全库”之前的binlog找到,重放 快速恢复完毕。 这个方案的优点是,能够快速找回数据。潜在不足是,万一“1小时延时从库”正在连上主库进行同步的一小段时间内,发生了“删库”事故,也无法恢复。 四,如果DBA做了“双份1小时延时从库”,应该怎么处理? 什么是双份1小时延时从? 如上图所示,两个1小时延时从库,它们连主库同步数据的时间“岔开半小时”。 这样,即使一个延时从连上主库进行同步的一小段时间内,发生了“删库”事故,依然有另一个延时从保有半小时之前的数据,可以实施快速恢复。 这个方案的优点是,没有万一,一定能快速恢复数据。潜在的不足是,资源利用率有点低,为了保证数据的安全性,多了2台延时从,降低了从库利用率。 如何提高从库利用效率? 对于一些“允许延时”的业务,可以使用1小时延时从,例如: (1)运营后台,产品后台; (2)BI进行数据同步; (3)研发进行数据抽样,调研; 但需要注意的是,毕竟这是从库,只能够提供“只读”服务哟。 五,总结 保证数据的安全性是DBA第一要务: (0)理论上可以恢复+跑路; (1)全量备份+增量备份+定期演练; (2)1小时延时从库; (3)双份1小时延时从库+提高资源利用率; 相关推荐: 《InnoDB并发如此高,原因竟然在这?》 《InnoDB,七种锁》 《InnoDB索引,终于懂了》 《InnoDB,四种事务的隔离级别实现》 《InnoDB,调试死锁的方法!》 DBA的神技能,学到了吗,求转。 调研: 贵司用的是哪种方案? 发布者:糖太宗,转载请注明出处:https://www.qztxs.com/archives/science/technology/6637 数据库 赞 (0) 打赏 微信扫一扫 支付宝扫一扫 糖太宗 0 0 生成海报 为什么微服务并不是越早越好? 上一篇 2022年5月14日 上午12:34 MySQL-InnoDB究竟如何巧妙实现,4种事务的隔离级别(收藏) 下一篇 2022年5月14日 上午12:37 相关推荐 技术 insight洞察-漏洞生命周期管理使用 简介 洞察是宜信安全部用来对公司内部系统所出现的安全漏洞进行线上全生命周期管理的漏洞管理平台。 项目地址 主要由3部分组成: 应用系统资产管理 漏洞生命周期管理 安全知识库管理 应用系统资产管理:对公司应用系统资产进行管理,包括系统名称、域名、重要级别、部门、负责人等。 漏洞生命周期管理:对公司应用系统产生的安全漏洞进行线上提交、通告、知悉、复测、分类、风险... 常山赵子龙 2022年6月1日 116000 技术 OpenRASP 部署 0x00 前言 上周一台web服务器部署单机版OpenRASP之后感觉还不错,想在公司内部推广一下,准备在一些后台系统的服务器上安装agent,单机版部署报警日志查看不是很方便,遂部署管理后台方便管理 0x01 准备 OpenRASP使用了 ElasticSearch 和 MongoDB 两种数据库。前者用来存储报警和统计信息,后者用来存储应用... 常山赵子龙 2022年6月13日 139000 Lynis + ansible Lynis是一款面向Linux、Mac OS X、BSD以及Solaris等Unix类系统的安全审计与强化工具。它能够深入扫描并检测系统中的问题、存在漏洞的软件包以及配置设置,并提出相关解决建议。Lynis能够轻松实现安全评估、合规性测试、漏洞检测、配置管理以及补丁管理。 安装使用 1 2 3 4 5 6 7 8 9 # 下载 git clon... 常山赵子龙 技术 2022年5月28日 12000 技术 如何进行安全设计评审 如何进行安全设计评审 记录一次安全设计评审的过程,当然这也是我第一次进行安全评审。因此做一个总结。安全设计评审应该是SDL落地安全人员参与过程中首当其冲的地方。仅指安全人员自身的功用。如果按照SDL流程来讲,最前期应该是进行安全培训。我们可以看两个微软SDL官方给出的流程图。 那么在安全设计评审这一阶段,应该怎么去做。我们可以先看下唯品会的SD... 常山赵子龙 2022年5月28日 10000 技术 编程实现“斐波那契数列”的5种方法! | 经典面试题 编程求值斐波那契数列f(n),是面试中,非常常见的题目。 什么是斐波那契数列? 斐波那契数列是这样一个数列,它满足: f(0) = 0; f(1) = 1; f(n) = f(n-1) + f(n-2) (当n>=2时) 到底有几种方法,这些思路里蕴含的优化思路究竟是怎么样的,今天和大家聊一聊。 一、递归法 伪代码: uint32_t f... 糖太宗 2022年5月11日 42000 发表回复 您的电子邮箱地址不会被公开。 必填项已用*标注*昵称: *邮箱: 网址: 记住昵称、邮箱和网址,下次评论免输入 提交