iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >MySQL 基于时间点的快速恢复方案
  • 806
分享到

MySQL 基于时间点的快速恢复方案

MySQL快速恢复mysql基于时间点恢复 2022-05-13 11:05:03 806人浏览 薄情痞子
摘要

  之所以有这样一篇文章,是因为在前几天的一个晚上,要下班的时候,业务方忽然有一个需求,是需要恢复一个表里面的数据,当时问了下情况,大概是这样的:业务方不小心在一个表里面做了一个update的操作,可能是w

  之所以有这样一篇文章,是因为在前几天的一个晚上,要下班的时候,业务方忽然有一个需求,是需要恢复一个表里面的数据,当时问了下情况,大概是这样的:业务方不小心在一个表里面做了一个update的操作,可能是where条件没有写对,导致表里面的数据被写坏了,但是数据目前还没有落盘,只是在内存中的值修改了,现在要求恢复到之前的数据。万幸,这份数据是平台上某些商品的价格,基本上是有限个商品,然后价格值也都是固定的,之前有对这个价格表进行备份,于是给他直接重新导入了一份价格表的数据,这个问题也算是解决了。

    当时我在想,如果我没有备份,只有binlog,这个时候如果这个问题让我来恢复,那么有什么更好的办法么?新建一个实例,全库还原,然后应用备份的binlog,一直去追,追到数据被该坏的时间点。

 使用mysqlbinlog工具重放事务,这种方法会有很多陷阱,比如:

     1、只能每次运行一个Mysqlbinlog命令,一次对一个binlog文件执行重放,无法并行多命令运行,因为在执行重放的时候会产生一个临时表,会有冲突,造成失败。

     2、它是一个原子操作。如果它在运行到半途中间的时候失败,将很难知道它在哪失败,也很难基于先前的时间点重新开始。导致失败的理由会有很多:一些并发事务引起的Innodb lock wait timeout ,server和client设置的max_allowed_packet不同,以及查询过程中失去跟mySQL Server的连接,等等。

    于是翻了翻percona的博客,找到一种方法,看了看精髓,就大概记录了下来,这儿方法我还没有亲自实现,只是记录在这里,以后有时间了可以亲自操作一把,看看是否能够比较高效的解决这个问题。

    大体思路如下:

 2台额外机器,第1台用于做备份结果数据的恢复,另外1台用于将原主的binlog拷贝至该实例然后模拟原主,然后第一台与第二台建立主从关系,change master to 第二台,位置点位备份结果(xtrabackup_binlog_info中的binlog名和pos),然后同步至误操作点停止,将恢复的表,导出,然后恢复至生产原主。

    具体的步骤如下:

准备一台机器,用于将该实例的最新备份的结果数据,进行备份还原

准备另外一台机器了,新实例,将原master的binlog文件,拷贝至该实例的数据目录下, 启动一个空实例(server-id跟原主一致, --log_bin=master-bin  binlog文件名保持跟原主一致;),然后停掉它,删除所有它自动创建的binlogs,解压缩并拷贝所有需要的binlogs(来自于原生产实例)到它的数据目录下,然后重新启动它。

    最新备份数据的位置:

    如果启动正常,则连接mysql,查看binlog相关信息:

建立同步关系,并同步到误操作动作的位置前停止


 CHANGE MASTER TO 

MASTER_HOST='127.0.0.1',

MASTER_PORT=3307,

MASTER_USER='root',

MASTER_PASSWord='secret',

MASTER_LOG_FILE='master-bin.000007', MASTER_LOG_POS=1518932;

START SLAVE UNTIL 

MASTER_LOG_FILE = 'log_name', 

MASTER_LOG_POS = log_pos 

或者


START SLAVE sql_THREAD UNTIL

 SQL_AFTER_GTIDS =

 3E11FA47-71CA-11E1-9E33-C80AA9429562:11-56

SHOW SLAVE STATUSG;

    相当于多用了一台实例,提高二进制日志的利用速率,提高二进制日志的利用的成功率。这个方法是否可行,还有待验证,按照文章中作者讲述的思想来看,是比单实例应用binlog的方法好,因为一旦发生了应用binlog过程中的错误,它能够快速确定实在那个点位发生的错误,有助于我们快速解决问题。

以上就是MySQL 基于时间点的快速恢复方案的详细内容,更多关于MySQL 快速恢复的资料请关注自学编程网其它相关文章!

您可能感兴趣的文档:

--结束END--

本文标题: MySQL 基于时间点的快速恢复方案

本文链接: https://www.lsjlt.com/news/9933.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 基于时间点的恢复
    1、  拷贝老库的binlog到恢复库(注意不要把新库的日志给覆盖掉) 2、  解析binlog找出at时间点: mysqlbinlog -vv my...
    99+
    2024-04-02
  • 怎么用mysqlbinlog做基于时间点的数据恢复
    这篇文章将为大家详细讲解有关怎么用mysqlbinlog做基于时间点的数据恢复,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 mysql&g...
    99+
    2024-04-02
  • 基于percona xtrabackup的innobackupex如何实现基于时间点数据库恢复
    基于percona xtrabackup的innobackupex如何实现基于时间点数据库恢复,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望...
    99+
    2024-04-02
  • Mysql大型SQL文件快速恢复方案分享
    前言 在使用Mysql数据库的过程中,经常需要使用到备份和恢复数据库,最简单便捷的方法便是通过导出SQL数据文件和导入SQL数据文件来完成备份和恢复,但是随着项目的增长,数据量越来越大,每次恢复就成了一件很...
    99+
    2024-04-02
  • MySQL使用物理方式快速恢复单表
    GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源。GreatSQL是mysql的国产分支版本,使用上与MySQL一致。 使用方法 1、首先创建一个测试表test1,并插入几条数据: mysql&...
    99+
    2022-12-14
    mysql恢复单表 mysql单表恢复
  • Mysql数据库中怎么按时间点恢复
    Mysql数据库中怎么按时间点恢复,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。 按时间点恢复的技术实现如果客户在某时间节点由于误操作,导致数据丢失,RDS管控服务是如何进...
    99+
    2023-06-20
  • Mysql数据库按时间点恢复实战记录
    简介:Mysql数据库按时间点恢复实战 对于任何一家企业来讲,数据都是最宝贵的财富。 如何保护数据完整性,数据不受损坏,在发生故障时,如何保住数据,在发生误操作,黑客入侵,数据篡改...
    99+
    2024-04-02
  • 快速恢复Windows10开始菜单的方法
    很多用户习惯了Win10传统的开始菜单,想要恢复之前的菜单。目前,恢复Windows10传统开始菜单的工具和方法很多。除了安装第三方软件,我们还可以通过简单的命令行快速恢复。以下是快速恢复Windows10开始菜单的方法。让我们看看。快速W...
    99+
    2023-07-19
  • MySQL使用bin-log异库恢复到指定时间点
    1、搭建初始化数据库 2、确定日志的位置position 3、备份数据库T0 4、模拟数据库发生变化T1 5、模拟数据库发生变化T2 6、恢复数据库到备份时间点T0 7、模拟数据库恢复到时间点T1 8、模拟...
    99+
    2024-04-02
  • 重装Win10时快速备份和恢复任务栏快捷方式的技巧
    每次重装系统,我们都要花很多时间恢复到之前熟悉的环境,比如装驱动,装更新,装软件;Win7用户……也包括某些Win8.1/Win10用户还得琢磨着激活神马的。尤其是有“强迫症&rd...
    99+
    2023-05-20
    Win10 备份 任务栏
  • 基于springboot服务间Feign调用超时的解决方案
    解决springboot服务间Feign调用超时问题概述 1、起因 在完成项目功能需求的开发,经过自己测试以及通过测试组测试通过后,昨晚正式部署到线上环境进行正式运行前的最后一次的测...
    99+
    2024-04-02
  • 基于 Docker 部署 Mysql 的时区设置解决方案
    文章目录 场景描述问题追因解决方案 场景描述 环境版本及条件: 基于 Docker 部署的 Mysql:8.0.27 版本数据库中。datatime 数据类型的字段设置了默...
    99+
    2023-09-11
    docker mysql java
  • 快速恢复Oracle服务丢失的有效方法
    快速恢复Oracle服务丢失的有效方法 Oracle数据库作为企业级应用中常用的数据库系统之一,其稳定性和可靠性对于企业数据的安全至关重要。然而,在日常运维过程中,有时会遇到Oracl...
    99+
    2024-03-08
    快速方法 oracle恢复 服务丢失
  • mysql误删数据后快速恢复的办法推荐
    目录第一步:保证mysql已经开启binlog,查看命令:第二步:进入binlog文件目录,找出日志文件第三步:切换到mysqlbinlog目录第四步:通过mysqlbinlog工具命令查看数据库增删改查记录(必须切换到...
    99+
    2023-02-28
    mysql误删数据快速恢复方法 mysql恢复被删数据 mysql恢复误删数据
  • 基于FeignClient调用超时的处理方案
    FeignClient调用超时 出现问题的前提 SpringCloud间FeignClient调用出现ReadTimeOut的情况 FeignClient服务间调用的默认超时时间为2...
    99+
    2024-04-02
  • 基于Redo Log和Undo Log的MySQL崩溃恢复解析
    目录MySQL崩溃恢复流程 1、黑盒下的更新数据流程 2、Redo Log & Undo Log3、实现日志后的更新流程3、流程中仍然存在的问题4、基于2PC的一致性保障5、...
    99+
    2024-04-02
  • 关于时间复杂度的知识点有哪些
    本篇内容主要讲解“关于时间复杂度的知识点有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“关于时间复杂度的知识点有哪些”吧!究竟什么是时间复杂度「时间复杂度是...
    99+
    2024-04-02
  • oracle时间戳恢复数据的方法是什么
    要恢复使用Oracle数据库的时间戳数据,可以使用以下方法: 使用Flashback技术:Oracle数据库提供了Flashba...
    99+
    2024-04-09
    oracle
  • PHP编程指南:快速去除时间秒的方法
    PHP编程指南:快速去除时间秒的方法 在PHP编程中,有时候我们需要对时间进行处理,可能需要将时间格式化或者从时间中去除一些信息。其中,去除时间中的秒数是一个常见的需求。本文将介绍如何...
    99+
    2024-04-02
  • PHP快速实现美国时间转换为中国时间的方法分享
    PHP是一种广泛应用于网站开发的服务器端脚本语言,它的灵活性和强大功能使得开发者能够快速实现各种功能。在网站开发中,经常会遇到需要将不同国家或地区的时间进行转换的需求,比如将美国时间转...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作