当前位置:首页 > 数据库 > MySQL > 正文内容

MySQL延时复制简介

图片1.jpg


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

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

有以下几种思路:

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

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

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

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

Maatkit是一个Perl写的Mysql开源管理工具包里面有一个mk-slave-delay 命令可以实现延时复制。

可以在www.maatkit.org网站上下载软件包。我这里软包为maatkit-7540.tar.gz

搭建过程

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

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

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

1560153076989730.jpg

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

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

1560153154408070.jpg

3, 运行延时复制进程

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

1560153216614536.jpg


参数

说明

--defaults-file=/mysql56/etc/my.cnf

指定slavemysql配置文件

localhost

指定mysqllocalhost本机上

--quiet

指定输出信息为静默模式,在终端不会显示很多信息

--delay=1m

表示延时一分钟,生产环境根据实际需求来调整

--interval=15s

15秒为一个间隔周期,延时时间到了后,SQL线程会执行15秒内的操作

--user=root

指定连接数据库的用户

--password=123

指定连接数据库的密码

--socket=/tmp/mysql56.sock

指定连接数据库的socket文件路径

 4, 测试

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

1560153259102932.jpg

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


扫描二维码推送至手机访问。

版权声明:本文章来源于网络,版权归原作者所有,如果本站文章侵犯了您的权益,请联系我们删除,联系邮箱:luxd@aliyun.com,感谢支持理解。


本文链接:https://luxd.cc/post/114.html

“MySQL延时复制简介” 的相关文章

MySQL 是如何实现RC事务隔离级别的

MySQL 是如何实现RC事务隔离级别的

Read Committed,事务运行期间,只要别的事务修改数据并提交,即可读到人家修改的数据,所以会有不可重复读、幻读问题。ReadView机制基于undo log版本链条实现的一套读视图机制,事务生成一个ReadView:若为事务自己更新的数据,自己可以读到或在你生成ReadView之前提交的事...

三分钟学会如何找回mysql密码

三分钟学会如何找回mysql密码

一、在测试工作中我们肯定会写一些sq查询语句方便我们验证数据是否正确,从而判断当前软件是否存在缺陷,但是查询的过程中肯定需要我们先连接数据库,如果数据库密码忘记我们就无法完成工作,这里就教会大家如何快速修改密码,和重置数据库密码,这样在工作中很大提高我们工作的效率二、首先我们需要先学会如何修改mys...

MySQL迁移升级解决方案

MySQL迁移升级解决方案

任务背景由于现有业务架构已不能满足当前业务需求,在保证数据完整的前提下,现需要将原有数据库迁移到另外一台单独的服务器上,在保证原有服务正常的情况下,将原有LAMP环境中mysql数据库版本5.6.31升级为5.6.35.任务要求在业务维护时间(02:00-4:00)段对数据库进行全量备份将MySQL...

Windows MySQL安装配置

Windows MySQL安装配置

[MustVIP]1 下载和安装访问达内文档服务器下载安装包用浏览器访问http://doc.canglaoshi.org,在常用下载中找到 Windows 里面的MariaDB下载后双击运行安装安装过程中设置密码为root, 设置默认字符集UTF-8后续安装步骤是一直下一步直至完成。2 测试MyS...

『MySQL快速上手』Centos 7安装MySQL详解

『MySQL快速上手』Centos 7安装MySQL详解

说明:在环境安装中始终保持root身份;以下为Centos 7安装MySQL的详细步骤。若在安装过程中,本文章有未提及的地方,请私信我~1.卸载掉之前安装的MySQL为了确保你的机器上是否自带MySQL或者你曾经是否手动安装过MySQL,我们需要先进行检查。如果你曾经自己下载过某个版本的MySQL并...

MySql数据库备份与还原

MySql数据库备份与还原

备份(mysqldump)实现功能:      1、备份指定的数据库      2、删除指定天数前的备份文件,默认设定了1天脚本示例(mysql_bak.sh)# 数据库备份根目录BACKUP_DIR="/usr/local/my...