00:00
这堂课呢,我们就来说一下这个延迟复制。啊,这个延迟复制呢,在我们实际生产中呢,还是很有用的,那比如说现在研发一段代码,它出现了bug了,有可能把数据就给删除了,或者呢,是研发的误操作,或者是DV的误操作,把一个表给删除了,或者是给窗开掉了,那这个时候呢,你怎么去尽快的把这个数据给恢复好了。那这里呢,我们就来需要在那个生产环境中啊,你搭建一个延迟复制的存库,那么定义好了延迟多多长时间,然后与主库进行同步复制,那比如说我们现在的生产环境是定义的是延迟12个小时,那么也就是说在12个小时之内,如果出现了有误操作,我们都可以通过这个12小时的快照去把这个数据呢,给快速的给恢复好了。这样呢,避免了你你这个数据一下变啊,一夜变成解放前了啊,所以今天呢,我们就来演示一下这个延迟复制。
01:01
那么呢,我这里呢,打开的是马家DB的官方文档,那么这里呢,这个语法跟MYSQ是一样的啊,我们只需要通过这个项目。来去做一下转换,那默认的情况下呢,这个是。是没有是零啊,也就是说没有延迟复制。那如果你,呃,我们生长环境中一般定义的是延迟复制呢,是呃,12个小时,那也就是说这12小时之内出现任何的现场误操作,我们有一份12小时之前的快照,那么可以及时把这数据给导出来,去做一下恢复,那么呢。这项呢很简单,我们就先给大家演示一下这个颜值复制是怎么去搭建使用的。那我们首先这里呢,是有一台啊,我搭建好了,是在那个重库复制与与t1.11进行那个主动同步复制的,那这里呢,我只需要给它转换一下。转换一下延迟布置,那么呢,我这个转换的是12个小时,12小时呢,就是24乘以3600秒啊这样的话就可以了,我们只需要这么一回车。
02:14
嗯,24乘以3600秒。啊,12小时乘以36000。啊,我们这里定义的是延迟复制12个小时。啊,然后我们一启动。这里呢,你就看这个有一个相啊。嗯,我先插入一条记录吧,随便插一条记录,待会儿咱们来看这效果。
03:07
啊,我们来看这项啊,你看这个现在就是嗯。现在已经建立转换为一台这个延迟复制了。然后呢,我们发现这条数据呢,其实是。你看是没有插入进来的,所以说我们现在这个同步复制是双叶子啊成功,但是因为我们建立的这个延迟复制,所以说这产生了12小时啊之间的一个快照。无论我们就是再插入第几条,比如再插入一条。我们的主库呢,其实是有五条记录。啊,这里呢,依然有那个三条记录啊,这个就叫延迟复试,那当我比如说我现在把一表给删了。这时候呢,因为我们做了延迟复制了,所以说呢。
04:05
看这项啊,所以说呢,我们这张表依然是存在的啊。当如果你们现场出现问题以后呢,你可以通过这个MY把这个表导出啊,把数据给导出,这样的话呢。就避免了你们这个生产出现问题了。防止这个数据一下变成那个解放前了。啊,这个是,嗯,跟大家说了一个现状的一个架构。延迟复制。啊,那现在呢,我们就是说恢复的话,首先呢,我们第一步先应该先用my dump是吧,先把这个T表12小时之前的这个数据给备份出来啊,这是那个我们要做的那个第一步,那第二步呢,怎么去得到。我删除之,删除数据之前的这份快照呢?那比如现在我我我之前的数据其实是有五五条的,但是现在呢,我现在我当完以后啊,其实我数据只有三条,那怎么得到这个完整的五条数据呢?那我们这里呢。
05:11
给大家演示一个小小技巧,那我呢?我们可以定义什么呀,比如说8646,这是休眠24小时。首先呢,我们先得到一个T的MDL组,就防止。先让他。咱们先走,先待会儿咱们看一下效果啊,先执行这一步,先得到这个T1表的MDL锁,让它持续持有。然后呢?这时候呢,我们现在需要把那个数据啊,开始去追了,要追到那个。
06:00
完整的这五条数据啊,我们告诉你怎么怎么做这个先首先先把同步给停了,然后呢,把这个延迟复制呢,咱们先给关了。先让它变成零。然后开启同步复制,然后这时候呢,你执行process list。啊。你发现这没有,这出现一个原数据表锁了,对吧,看见没有,然后这里呢,只需要你把它给Q掉,现在不让它执行。啊,这时候你发现你你再到那个太子库下。这个数据完整的数据就回来了。对,然后你赶紧把同步给关了。这个时候呢,你这个数据呢。这你这个数据呢,这个增量期间,这个数据呢,就会已经那个恢复下来了,通过主动复制,然后你把通过my blo my my dump把这个数据给备份出来,这时候呢,你这个T表相当于就是完整的给恢复好了。
07:06
然后第二个呢,就是说这个MYSQL主动布置它过滤,嗯,它不支持这个MYSQ,这个这个不支持这个冰涝事件。那它是不能像那个太低B似的,你可以把什么川K的呀,这个操作。穿开的操作,照照操作给过滤了,它不行,买之后只能是过滤一张表,但是说具体的操作这个边烙事件它是过滤不了的啊,所以说这是我们刚才用了运用了一个小技巧,然后这个时候呢,我们为了防止。待会儿。把这个表给清空了。把这个表给删除了,这里呢,我们需要把这个同步复制给跳过。啊,你只需要这么做。把这个GTD刚才那个事件啊,照顾那事件给他,给他跳过去就行了。
08:03
那我们听一下这个。手工去跳一下。我们执行哪报错了啊,执行第十个,你你就把这个粘过来。粘过来,然后呢,开启一个空视我。啊这样,然后呢,你再执行一这个。这样呢,就把刚才那个TD给跳过去了。然后你再打开那个service。啊,这数据其实就已经跳去了,他就不再会,比如说我们现在在主户上啊。我们随便插入一条P2表。啊,这个时候你说啊,刚才我们跳过那个照过那个操作了,然后呢。哎,你看这个数据。
09:01
就已经同步到刚才我们插入这条数据了,这个job呢,刚才呢,我们已经通过这个跳过机器it事件,哎,不会再执行了。啊,这样就保证你这个仓库呢。是没有问题的,然后你再开启这个。把这个。延迟复制给开起来啊,这个你这个你这个台重库相当于是没有问任何的问题的故障的。啊,今天呢,就是给大家一点呃。给大家介绍一下这个延迟复制是如何用的,这些就是在生产环境中啊,怎么去把这个避免,这个怎么在生产环境中,当你数据被删除以后,如何通过这个延迟复制快速的去恢复数据,并且怎么去恢复这个增量这个数据。啊,今天呢,就给大家演示到这儿了。
我来说两句