跳至主要內容

部署架构

酷风大约 2 分钟

部署架构

主从复制

  • 主节点复制到一个或多个从节点

  • MySQL 默认采用异步复制方式

  • 可以复制主数据库中的所有数据库或者特定的数据库,或者特定的表。

  • 好处用途

  1. 读写分离
  2. 数据备份
  3. 高可用HA
  4. 架构扩展 高性能
  • 主从形式

    • 一主一从
    • 一主多从,提高系统的读性能
    • 多主一从 (从5.7开始支持)
    • 双主复制,也就是互做主从复制
    • 级联复制
  • MySQL 主从复制原理

    • 要实施复制,首先必须打开Master 端的binary log(bin-log)功能,否则无法实现。
    • MySQL主从复制涉及到三个线程,一个运行在主节点(log dump thread),其余两个(I/O thread, SQL thread)运行在从节点
    1. 当从节点连接主节点时,主节点会创建一个log dump 线程,用于发送bin-log的内容。
      1. 在读取bin-log中的操作时,此线程会对主节点上的bin-log加锁,当读取完成,甚至在发动给从节点之前,锁会被释放。
    2. 当从节点上执行start slave命令之后,从节点会创建一个I/O线程用来连接主节点,请求主库中更新的bin-log。
      1. I/O线程接收到主节点binlog dump 进程发来的更新之后,保存在本地relay-log中。
    3. SQL线程负责读取relay log中的内容,解析成具体的操作并执行,最终保证主从数据的一致性。
  • 主从复制模式 默认是异步的模式

  • 主节点不会主动push bin log到从节点

  • 半同步模式
    • 主从数据库的数据延迟缩小
    • 半同步模式不是mysql内置的,从mysql 5.5开始集成,需要master 和slave 安装插件开启半同步模式。

命令

  • 查看同步状态

show slave status\G

字段状态含义参考官方文档open in new window

保证io线程和sql线程都是running YES 检查binlog是否一致
Master_Log_File和Relay_Master_Log_File所指向的文件必须一致
Slave_SQL_Running_State 显示为wait 意思是中继日志的sql语句已经全部执行完毕

参考

MySQL主从、主主、半同步节点架构的的原理及实验总结 open in new window
Mysql 数据库主从同步(Master-Slave)open in new window