mysql延迟从库&半同步复制

上次课总结:

1.双主结构,都可以写?  不推荐。

常用架构,一主3从,3从带3从从。所以一主12从。

2.主从延时:

主库:

dump串行操作问题。

5.6+ 开启了GTID,并发传输多个事件。

大事务和锁是我们额外关注的。

从库:

SQL并发回放的问题。

5.7+ ,logical_clock  逻辑时钟

大事务和锁是需要我们额外关注的。


主从复制高级进阶

1.特殊从库的应用

1.1.1延时从库

普通的主从复制,处理物理故障损坏比较擅长。

如果主库出现了DROP DATABASE操作?

延时从库:主库做了某项操作之后,从库延时多长时间回放(SQL)

可以处理逻辑损坏。

1.1.2 配置

mysql> stop slave;

Query OK, 0 rows affected (0.00 sec)

mysql> change master to master_delay=300;

Query OK, 0 rows affected (0.01 sec)

mysql> start slave;

Query OK, 0 rows affected (0.00 sec)

mysql> show slave status\G

SQL_Delay: 300

SQL_Remaining_Delay: NULL

1.1.3 故障模拟及恢复

#模拟数据

create database ys charset=utf8mb4;

use ys;

create table t1(id int);

begin;

insert into t1 values(1),(2),(3),(4);

commit;

begin;

insert into t1 values(11),(22),(33),(44);

commit;

drop database ys;

# 恢复思路

1.先停业务,挂维护页。

2.停从库的SQL线程。

stop slave sql_thread;

查看realy-log.info  --->位置点信息

stop slave;

3.追加后去缺失部分的日志到从库(手工模拟sql线程工作)

日志在哪儿存? ralay-log

范围: ys: relay-log.info  位置点 ------> drop 

4.恢复业务方案

1.ys 导出   恢复到  主库 

2.推荐方法 :直接将从库直接承担当主库。


#恢复

1.从库:stop slave sql_thread;

2.截取relaylog

起点:

  Relay_Log_File: later02-relay-bin.000002

 Relay_Log_Pos: 320

320 

终点:mysql>  show relaylog events in 'later02-relay-bin.000002';

| later02-relay-bin.000002 | 1240 | Query          |        7 |        1200 | drop database ys                                                  |

1240 

mysqlbinlog  --start-position=320 --stop-position=1240 /data/3306/later02-relay-bin.000002 >/tmp/relay.sql 

3.从库恢复

set sql_log_bin = 0;

source /tmp/relay.sql 

set sql_log_bin=1;


1.2过滤复制

a.在主库不记录某一个库的binlog日志

b.再从库接收某一个库的日志,但是不执行,不回放.(推荐)。


a.主库的配置方法 

主库:show  master status;

白名单:

binlog_do_db= lb 

黑名单:

Binlog_Ignore_DB

从库:(生产中主要是用库级别)

         Replicate_Do_DB= lb  库级别白名单

          Replicate_Ignore_DB=test   库级别黑名单

         Replicate_Do_Table=lb.t1  表级别白名单

          Replicate_Ignore_Table=test.t1  表级别黑名单

          Replicate_Wild_Do_Table=lb.t*  模糊的 lb库t开头的所有表

           Replicate_Wild_Ignore_Table: 


在从库  /etc/my.cnf   配置文件中设置 

   replicate_do_db= lb   

   replicate_do_db= test 

多个库的写法

重启从库 ,查看状态

mysql> show slave status\G

*************************** 1. row ***************************

               Slave_IO_State: Waiting for master to send event

                  Master_Host: 39.101.199.159

                  Master_User: repl

                  Master_Port: 3306

                Connect_Retry: 10

              Master_Log_File: mysql-bin.000005

          Read_Master_Log_Pos: 2281

               Relay_Log_File: later02-relay-bin.000004

                Relay_Log_Pos: 862

        Relay_Master_Log_File: mysql-bin.000005

             Slave_IO_Running: Yes

            Slave_SQL_Running: Yes

              Replicate_Do_DB: lb


这时在主库进行lb库以外的库操作,从库io线程会继续写入主库

送过来的日志,但是不会写入库中。只有主库lb库的操作才会复制到从库

的lb库中。

1.3 半同步复制

Classic replication:

传统异步非GTID复制工作模型下,会导致主从数据不一致的情况。

5.5版本为了保证主从数据的一致性问题,加入了半同步复制的组件(插件)

在主从结构中,都加入了半同步复制的插件,控制从库IO是否将relaylog落盘,

一旦落盘通过插件返回ACK给主库ACK_rec,主库的事务才能提交成功,在默认情况下,如果超过10秒没有返回ACK,此次复制行为会切换为异步复制。

在5.6 5.7中也加入了一些比较好的特性(after commit  sync),也不能保证数据100%的数据一致。

如果生成业务比较关注主从最终一致,我们推荐可以使用MGR的架构,或者

PXC等一致性架构。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,864评论 6 494
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,175评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,401评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,170评论 1 286
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,276评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,364评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,401评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,179评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,604评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,902评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,070评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,751评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,380评论 3 319
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,077评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,312评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,924评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,957评论 2 351

推荐阅读更多精彩内容

  • 主从复制的配置 软件版本 1.双方的MySQL要一致 2.如果不一致:主的要低于从的 从哪儿开始复制: 1.都从0...
    4a873e424089阅读 233评论 0 0
  • 一、什么是Mysql主从复制 MySQL主从复制是其最重要的功能之一。主从复制是指一台服务器充当主数据库服务器,另...
    人在码途阅读 2,748评论 0 23
  • mysql主从复制 主从复制慨述 构建大型,高性能应用程序的基础主服务器复制负责更新,且将更新写入二进制日志文件,...
    肖金光xjg阅读 883评论 0 1
  • Mysql主从复制的实现原理图大致如下: MySQL之间数据复制的基础是以二进制日志文件(binary log f...
    linux筱筱阅读 360评论 0 1
  • 作为某医学院校医药贸易专业大三学生,宇宙大药厂的实习生,在省会医院这个大盘进行实习还是挺幸运的。 首先说明的是我们...
    重来njmu阅读 2,724评论 0 0