博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数据恢复系列(1)~恢复方案制定
阅读量:6280 次
发布时间:2019-06-22

本文共 1046 字,大约阅读时间需要 3 分钟。

一 简介:今天聊聊如何加速恢复你的数据

二 背景:上篇讲到数据恢复的重要性和一般思路.今天讲讲应该怎么做
三 角度:

1 方案1: 设定延迟时间,建立延时库

           恢复步骤:1 分析binlog确认误操作时间

         2  延时库进行指定节点复制
           普通复制 start slave until MASTER_LOG_FILE ='Relay_Master_Log_File', MASTER_LOG_POS =Exec_Master_Log_Pos;
           GTID复制 start slave until SQL_BEFORE_GTIDS ='96359478-a845-11e6-a3d6-000c296e817a:44';
        3 导出数据
          优势:能恢复DDL操作
          时间耗时:看你的延时设置时间,如果时间短,那么恢复迅速
          缺点:需要付出硬件成本,增加维护成本
2 方案2: 利用备份进行恢复
          恢复步骤: 1 解压当天的全量备份
          2 分析binlog确认误操作时间
          3 建立恢复实例
             方法1 1 在从库设置过滤规则,只同步指定的库表,加快恢复速度
                       2 从库复制到指定位置后停止复制
                       3 导出数据
             方法2 1 利用备份binlog进行db级别的binlog恢复
                        2 导出数据
          优势:能恢复DDL操作
          时间耗时:时间耗费在解压备份和数据同步上
3 方案3:完全依赖第三方工具binlog2sql/MyFlash等开源工具
          恢复步骤: 1 利用开源工具分析binlog并生成回滚语句
          2 将回归语句应用到测试环境
          3 没有问题再导入线上

   优势:1速度快,能实现精确表的各种过滤操作

  缺点:不支持DDL回滚
4 方案4:预防性工具inception
  简介:通过inception操作的DML语句能实现自动生成回滚语句,非常方便,省去了分析binlog的操作
  优势:自动生成恢复数据
   缺点: 1 不支持DDL操作 2只能预防研发人员进行操作 3 本身有限制(比如不支持子查询的DML操作)

四 总结

   1 恢复数据一定要先在测试环境检测,防止线上数据被二次破坏

   2 方案4能预防很大一部分的误操作,建议使用,对于DDL操作回滚,只能依靠备份进行恢复了
   3 日常备份binlog是非常有必要的

   4 利用表空间迁移数据加快数据的恢复速度

五 思考问题:

  如何能恢复一周前的数据呢

  采用一周前的全备+当天的binlog即可

       

转载于:https://www.cnblogs.com/danhuangpai/p/7694267.html

你可能感兴趣的文章
(转)从给定的文本中,查找其中最长的重复子字符串的问题
查看>>
HDU 2159
查看>>
spring batch中用到的表
查看>>
资源文件夹res/raw和assets的使用
查看>>
UINode扩展
查看>>
LINUX常用命令
查看>>
百度云盘demo
查看>>
概率论与数理统计习题
查看>>
初学structs2,简单配置
查看>>
Laravel5.0学习--01 入门
查看>>
时间戳解读
查看>>
sbin/hadoop-daemon.sh: line 165: /tmp/hadoop-hxsyl-journalnode.pid: Permission denied
查看>>
@RequestMapping 用法详解之地址映射
查看>>
254页PPT!这是一份写给NLP研究者的编程指南
查看>>
《Data Warehouse in Action》
查看>>
String 源码浅析(一)
查看>>
Spring Boot 最佳实践(三)模板引擎FreeMarker集成
查看>>
Fescar 发布 0.2.3 版本,支持 Redis 和 Apollo
查看>>
Google MapReduce到底解决什么问题?
查看>>
CCNP-6 OSPF试验2(BSCI)
查看>>