zoukankan      html  css  js  c++  java
  • 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
    
    学习的进阶之路
  • 相关阅读:
    鱼眼相机畸变矫正资料
    异常值检测算法三:3sigma模型
    五:瑞芯微RV1109
    四:海思Hi3516CV500/Hi3516DV300
    三:瑞芯微OK3399-C开发板
    二:飞凌嵌入式FCU1201
    一:芯片概述
    六:大数据架构
    五:大数据架构回顾-LambdaPlus架构
    四:大数据架构回顾-IOTA架构
  • 原文地址:https://www.cnblogs.com/yufenchi/p/12961660.html
Copyright © 2011-2022 走看看