学习mysql第九天--主从复制进阶

1.延时从库

人为配置从库,当主库发生信息变化后,在延迟时间过后才会在从库执行
普通的主从复制,处理物理故障比较擅长
如果主库出现drop database操作
延时从库:主库做了某项操作之后,从库延时多长时间回放(sql线程)
在这里插入图片描述

针对sql线程延迟

(1)配置步骤

Stop slave
Change master to master_delay=300; 单位是秒
Start slave;

Show slave status\G

在这里插入图片描述

这样可以解决,当主库发生drop时,我们可以在延时时间内 断了从库,以便数据恢复

(2)延迟从库应用

1>故障恢复思路

1主1从,从库延时5分钟,主库误删除1个库

  1. 5分钟之内 侦测到误删除操作
  2. 停从库SQL线程
  3. 截取relaylog
    起点 :停止SQL线程时,relay最后应用位置
    终点:误删除之前的position(GTID)
  4. 恢复截取的日志到从库
  5. 从库身份解除,替代主库工作

2>故障模拟恢复

#模拟主库操作

Create database ys charset utf8mb4;
Use ys
Create table t1 (id int);
Inset into t1 values (1),(2),(3),(4);
Insert into t1 values (11),(22),(33),(44); 
Drop database ye;	

(3)修复数据

停止线程 ;前提是要看主库的日志是否都到从库
Stop slave;\

在这里插入图片描述

截取relay log日志
起点:通过mysql> show slave status\G查看

在这里插入图片描述
467就是起点

终点:通过查看relay-log-file查看drop之前的位置点
mysql> show relaylog events in’localhost-relay-bin.000002’;

在这里插入图片描述
Pos是对应的relaylog的起点和终点,而end_log_pos是对应的binlog的位置点
此时终点是1133

截取日志
[root@localhost ~]# cd /data/3308/data/
[root@localhost data]# mysqlbinlog --start-position=476 --stop-position=1133 localhost-relay-bin.000002 >/tmp/relay.sql

导入从库恢复
mysql> stop slave;
mysql> reset slave all;
mysql> reset master; 清空realy log日志文件
mysql> set sql_log_bin=0;
mysql> source /tmp/relay.sql;
mysql> set sql_log_bin=1;

2.过滤复制

介绍:部分数据复制
使用场景:

(1)配置方法

主库:(主库一般很少用)

查看:Show master status;
白名单:Binlog_Do_DB=world
黑名单:Binlog_Ignore_DB 

通过设置白名单和黑名单来控制库传输
从库:(用的多)

show slave status\G
Replicate_Do_DB: 
Replicate_Ignore_DB: 

在这里插入图片描述
从库的过滤复制是通过控制sql线程来回放指定的库
查看过滤复制参数:Show slave s

  • 26
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值