MySQL 主从复制之延时从库

第1章 延时从库

1.1 介绍

是我们人为配置的一种特殊从库.人为配置从库和主库延时N小时

1.2 为什么要有延时从

数据库故障?
物理损坏
主从复制非常擅长解决物理损坏.
逻辑损坏
普通主从复制没办法解决逻辑损坏
说明:一般公司不会去搞这样一个数据库,因为这个库是不对外提供服务的

1.3 配置延时从库

延时从库是建立在主从复制的基础上的,所以要先构建好主从环境

SQL线程延时:数据已经写入relaylog中了,SQL线程"慢点"运行
一般企业建议3-6小时,具体看公司运维人员对于故障的反应时间
配置参数:
mysql>stop slave; 
mysql>CHANGE MASTER TO MASTER_DELAY = 300; #这个参数就是来控制延时的时间的以”秒”为单位
mysql>start slave;
检查是否构建成功:
mysql> show slave status G
SQL_Delay: 300 
SQL_Remaining_Delay: NULL

第2章 延时从库的应用

1.1 故障恢复思路

1.监控到数据库逻辑删除(zabbix)
2.停业务挂维护页
3.停从库SQL线程,记录已经回放的位置点(截取日志的起点)
stop slave sql_thread;
记录回放位置点
mysql> show slave statusG
Relay_Log_File: yuxi-relay-bin.000002
Relay_Log_Pos: 320
4. 截取relaylog
起点: Relay_Log_File、Relay_Log_Pos
终点:误操作之前的位置点
show relaylog events in ‘yuxi-relay-bin.000002’;
进行截取
5. 模拟SQL线程回放日志
从库  source +截取的日志
6. 恢复业务(分为2种情况)
第一种情况:只有一个库的话
从库替代主库工作
第二种情况:多个库的话
从库导出故障库,还原到主库中

1.2 故障模拟及恢复

主库数据库操作

db01 [(none)]>create database relay charset utf8;
db01 [(none)]>use relay
db01 [relay]>create table t1 (id int);
db01 [relay]>insert into t1 values(1);
db01 [relay]>drop database relay;

数据恢复流程

第一个里程:
停止从库SQL线程
mysql> stop slave sql_thread;
第二个里程:
找relaylog的截取起点和终点
起点:
Relay_Log_File: db01-relay-bin.000002
Relay_Log_Pos: 320
终点:
mysql> show relaylog events in 'db01-relay-bin.000002';
误操作之前的位置点
第三个里程:进行截取
mysqlbinlog --start-position=320 --stop-position=980  /data/3308/data/db01-relay-bin.000002>/tmp/relay.sql
第四个里程:模拟SQL线程回放relaylog
-----测试环境因为没有开GTID所以不必要执行
-----set sql_log_bin=0;
mysql> source /tmp/relay.sql
第五个里程:从库导出,恢复到主库

第3章 过滤复制

1.1 作用

选择性的对默认库进行复制,其余的库不复制

1.2 控制主库方面(不建议采用)

此方式是对主库里面的一些库做二进制记录,从而控制传的时候只传指定的库的日志
但是,毕竟是数据库里面的库,这样不好
参数配置:
mysql> show master status;
binlog_do_db            白名单 
binlog_ignore_db        黑名单
说明:
如果指定多可要分多行写,例如
binlog_do_db=word
binlog_do_db=school
…….
还需注意写入配置文件的时候必须要小写,这种模式了解即可

1.3 从库方面控制(三种模式)

在SQL_T回放日志,选择部分日志回放

1.3.1 第一种模式(这种模式是过滤复制的主选)----针对库级别

replicate_do_db=oldguo        白名单
replicate_ignore_db=world     黑名单
如果指定多可要分多行写,例如
binlog_do_db=word
binlog_do_db=school

1.3.2 第二种模式:针对表级别----不常用

replicate_do_table=world.t1
replicate_ignore_table

1.3.3 第三种模式:模糊匹配----不常用

replicate_wild_do_table=world.t*
replicate_wild_ignore_table
学习的进阶之路
原文地址:https://www.cnblogs.com/yufenchi/p/12961660.html