zoukankan      html  css  js  c++  java
  • 三十五、主从复制原理

    涉及的文件

    主库需要使用到binlog文件
    从库需要使用xxx-relay-bin.00000N、master.info、relay-log.info文件

    下面讲解从库涉及到的3个文件
    1、master.info
    连接主库相关信息,已经接收到的binlog位置点信息,默认存放在文件中
    存储位置:/usr/local/mysql/data/master.info
    查看命令:mysql> show variables like '%master%';
    提高性能:将master_info_repository参数由FILE改为TABLE,可以将这些信息存放在表中,即可提高性能



    2、relaylog
    中继日志,负责存储从主库接收到的binlog日志文件
    存储位置:/usr/local/mysql/data/client2-relay-bin.00000N
    查看命令:mysql> show variables like '%relay%';
    查看relaylog事件,结合master.info文件可以判断同步是否完成


    3、relay-log.info
    从库会通过reloylog恢复主库数据,该文件记录已经恢复到reloylog哪里的位置点信息
    存储位置:/usr/local/mysql/data/relay-log.info
    查看命令:mysql> show variables like '%relay_log_info%';
    提高性能:通过 relay_log_info_repository参数定义存放形式,放在表中可以提高性能


    主从复制中涉及的线程

    1、主库线程
    只有一个线程,Binlog_Dump Thread
    作用:用来接收从库的请求,并发送binlog给从库
    查看命令:mysql> show processlist;

    2、从库线程
    有两个线程,分别为IO线程,SQL线程
    SLAVE_IO_THREAD
    用来请求日志,接收日志

    SLAVE_SQL_THREAD
    用来回放应用日志


    主从复制工作过程

    IO_THREAD 简称 IO_T
    SQL_THREAD 简称 SQL_T
    DUMP_THREAD 简称 DUMP_T

    1、从库执行change master to 命令(记录主库的连接信息+复制的起点)
    2、从库会将以上信息记录到master、info文件
    3、从库执行start slave命令,立即开启IO_T和SQL_T线程
    4、从库IO_T读取master、info文件中的信息,获取到IP、PORT、USER、PASS,BINLOG的位置信息
    5、从库IO_T请求连接主库,主库专门提供一个DUMP_T,负责和IO_T交互
    6、IO_T根据binlog的位置信息(log-bin、000005,704),请求主库新的binlog
    7、主库通过DUMP_T将最新的binlog,通过网络传输给从库的IO_T
    8、IO_T接收到新的binlog日志,存储到TCP/IP缓存,立即返回ACK给主库,并将binlog文件名以及下一个更新位置更新到master、info
    9、IO_T线程将TCP/IP缓存中数据,写入到磁盘文件relaylog中
    10、SQL_T线程读取relay、info中的信息,获取上次已经应用过的relaylog的位置信息
    11、SQL_T会按照上次的位置点回放到最新的relaylog,将应用到的位置点信息更新到relay、info信息
    12、从库会自动purge应用过relay进行定期清理

    补充说明:
    1、reloay_log_purge=ON:开启该参数能定期清理应用过的relaylog
    3、一旦主从复制构建成功,主库当中binlog发生了变化,都会通过dump_T发送信号给IO_T,增强了主从复制的实时性.

    学习来自:B站课程:MySQL主从复制原理 P120-122

    今天的学习是为了以后的工作更加的轻松!
  • 相关阅读:
    HDU 5213 分块 容斥
    HDU 2298 三分
    HDU 5144 三分
    HDU 5145 分块 莫队
    HDU 3938 并查集
    HDU 3926 并查集 图同构简单判断 STL
    POJ 2431 优先队列
    HDU 1811 拓扑排序 并查集
    HDU 2685 GCD推导
    HDU 4496 并查集 逆向思维
  • 原文地址:https://www.cnblogs.com/tz90/p/14617911.html
Copyright © 2011-2022 走看看