0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

MySQL实现延时复制

汽车玩家 来源:黑马程序员 作者:黑马程序员 2020-05-05 22:20 次阅读

公司有一套mysqlAB复制架构的生产库,一主一从的架构, 每周一凌晨0天都自动做全备。

MySQL实现延时复制

一切正常,但今天(假设为周6)不小心误删除了一张表,从库也会跟着做误删除。假设这张表里有好几年的业务数据, 如何恢复呢?

有以下几种思路:

需要把这几年内所有的二进制日志先合并,再通过sed,grep,awk等命令处理把这张表从建表到现在的所有操 作按顺序找出来(当然要除掉你最后误删除的那条),然后导回去(数据量太大就不建议了)

先恢复周一的全备到测试库上,然后再恢复全备到现在的二进制日志(除了误删除的那句),再把那张表导出 来,导回到生产库上

有延时复制的话,在延时库上导出这张表,导回A, 再用二进制日志恢复延时时间内的误删表的操作(除了误删除的那句)

从上面的分析来看,延时复制能够在一定程序上简化恢复的过程。

Maatkit是一个Perl写的Mysql开源管理工具包,里面有一个可以在www.maatkit.org网站上下载软件包。我这里软包为

mk-slave-delay

maatkit-7540.tar.gz

命令可以实现延时复制。

搭建过程

首先需要搭建好mysqlAB复制(传统AB复制,基于GTIDs的AB复制,半同步复制等都可以),然后做以下过程

1, 在需要做延时复制的slave上安装mattkit

(注意: master和正常的slave不用安装)

MySQL实现延时复制

2, 确认整个架构所有机器时间同步

因为延时是要按时间来计算的,所以时间必须要一致, 所有服务器执行下面的命令,并比较时间

MySQL实现延时复制

3, 运行延时复制进程

确认时间一致, 并且AB复制正常的情况下, 在slave上执行下面的命令

MySQL实现延时复制

MySQL实现延时复制

4, 测试

在slave上查看复制状态,会发现SQL线程为NO,这是正常的,因为延时复制里IO线程是实时的,只是把SQL线程延时了

MySQL实现延时复制

然后在master上找一个测试表插入几条数据,等待1分钟后,才会看到数据在salve上复制成功。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • MySQL
    +关注

    关注

    1

    文章

    795

    浏览量

    26387
  • 线程
    +关注

    关注

    0

    文章

    503

    浏览量

    19630
收藏 人收藏

    评论

    相关推荐

    分布式服务高可用实现复制

    作者:京东保险 王奕龙 1. 为什么需要复制 我们可以考虑如下问题: 当数据量、读取或写入负载已经超过了当前服务器的处理能力,如何实现负载均衡? 希望在单台服务器出现故障时仍能继续工作,这该如何实现
    的头像 发表于 10-29 11:27 488次阅读
    分布式服务高可用<b class='flag-5'>实现</b>:<b class='flag-5'>复制</b>

    配置MySQL主从复制和读写分离

    配置MySQL主从复制和读写分离
    的头像 发表于 10-23 11:44 228次阅读
    配置<b class='flag-5'>MySQL</b>主从<b class='flag-5'>复制</b>和读写分离

    如何实现Python复制文件操作

    Python 中有许多“开盖即食”的模块(比如 os,subprocess 和 shutil)以支持文件 I/O 操作。在这篇文章中,你将会看到一些用 Python 实现文件复制的特殊方法。下面我们开始学习这九种不同的方法来实现
    的头像 发表于 07-18 14:53 332次阅读

    MySQL的整体逻辑架构

    支持多种存储引擎是众所周知的MySQL特性,也是MySQL架构的关键优势之一。如果能够理解MySQL Server与存储引擎之间是怎样通过API交互的,将大大有利于理解MySQL的核心
    的头像 发表于 04-30 11:14 409次阅读
    <b class='flag-5'>MySQL</b>的整体逻辑架构

    mysql密码忘了怎么重置

    mysql密码忘了怎么重置  MySQL是一种开源的关系型数据库管理系统,密码用于保护数据库的安全性和保密性。如果你忘记了MySQL的密码,可以通过以下几种方法进行重置。 方法一:使用MySQ
    的头像 发表于 12-27 16:51 5884次阅读

    mysql备份还原哪些方法

    MySQL是一个开源的关系型数据库管理系统,备份和还原是保证数据安全性和可恢复性的重要措施。本文将详细介绍MySQL备份和还原的方法,包括物理备份和逻辑备份等多种方式,以及每种方式的实现步骤
    的头像 发表于 11-23 14:35 947次阅读

    mysql和sql server区别

    MySQL和SQL Server是两种常见的关系型数据库管理系统(RDBMS),用于存储和管理数据库。虽然它们都支持SQL语言,但在其他方面存在一些显著的区别。以下是MySQL和SQL Server
    的头像 发表于 11-21 11:07 1444次阅读

    MySQL导出的步骤

    MySQL是一种常用的关系型数据库管理系统,用于存储和管理大量的结构化数据。在实际应用中,我们经常需要将MySQL数据库中的数据导出到其他地方,如备份数据、数据迁移、数据分析等。下面是使用MySQL
    的头像 发表于 11-21 10:58 729次阅读

    mysql主从复制数据不一致怎么办

    MySQL主从复制是一种常用的数据复制技术,用于实现数据的实时同步和分布式部署。然而,在实际应用中,主从复制过程中出现数据不一致的情况也是很
    的头像 发表于 11-16 14:35 2185次阅读

    mysql主从复制 混合类型的复制

    MySQL主从复制是一种常用的数据复制技术,可以实现数据从一个MySQL服务器(主服务器)复制
    的头像 发表于 11-16 14:20 513次阅读

    mysql主从复制的原理

    MySQL主从复制是一种数据库复制技术,它允许将一个MySQL数据库的更新操作自动复制到其他MySQL
    的头像 发表于 11-16 14:18 452次阅读

    mysql主从复制主要有几种模式

    MySQL主从复制MySQL数据库中常用的一种数据复制方式,用于实现数据的备份、负载均衡、故障恢复等目的。主从
    的头像 发表于 11-16 14:15 1120次阅读

    mysql如何实现主从复制的具体流程

    主从复制MySQL数据库中常用的数据复制技术之一,它的主要目的是将一个数据库服务器上的数据复制到其他服务器上,以实现数据的备份、高可用和分
    的头像 发表于 11-16 14:10 730次阅读

    mysql主从复制三种模式

    MySQL主从复制是一种常见的数据同步方式,它可以实现将一个数据库的更改同步到其他多个数据库的功能。主从复制可以提高数据库的可用性和性能,以及提供故障恢复和数据备份的支持。在
    的头像 发表于 11-16 14:04 1392次阅读

    MYSQL事务的底层原理详解

    在事务的实现机制上,MySQL 采用的是 WAL:Write-ahead logging,预写式日志,机制来实现的。
    的头像 发表于 11-15 10:10 534次阅读
    <b class='flag-5'>MYSQL</b>事务的底层原理详解