读写分离

主从复制

异步复制

在主库开启 binlog 的情况下,如果主库有增删改的语句,会记录到 binlog 中,主库通过 IO 线程把 binlog 里面的内容传给从库的中继日志(relay log)中,主库给客户端返回 commit 成功(这里不会管从库是否已经收到了事务的 binlog),从库的 SQL 线程负责读取它的 relay log 里的信息并应用到从库数据库中。

半同步复制

在主库开启 binlog 的情况下,如果主库有增删改的语句,会记录到 binlog 中,主库通过 IO 线程把 binlog 里面的内容传给从库的中继日志(relay log)中,从库收到 binlog 后,发送给主库一个 ACK,表示收到了,主库收到这个 ACK 以后,才能给客户端返回 commit 成功,从库的 SQL 线程负责读取它的 relay log 里的信息并应用到从库数据库中

主从延迟

可能原因:

  • 大表 DDL
  • 大事务
  • 主库 DML 并发大
  • 从库配置差

判断主从延迟:

1、判断 Seconds_Behind_Master 是否等于 0。

2、对比位点,Master_Log_File 跟 Relay_Master_Log_File 相等,并且 Read_Master_Log_Pos 跟 Exec_Master_Log_Pos 相等。

3、对比GTID,对比 Retrieved_Gtid_Set 和 Executed_Gtid_Set 是否相等。

原文地址:https://www.cnblogs.com/hainingwyx/p/14539538.html