mysql主从实现过程

  •         +-----------------+
            |   Application   |
            |    (Client)     |
            +--------+--------+
                     |
                     | 1. Write Request (INSERT/UPDATE/DELETE)
                     V
            +-----------------+
            |   Master DB     |
            |   (Primary)     |
            +--------+--------+
                     |
                     | 2. Data Write (Transaction Commit)
                     |    -> Binlog (Binary Log)
                     V
            +-----------------+  <--->  +-----------------+
            |   Binlog        |        |   Relay Log     |
            |   (Binary Log)  | <------> |   (Replica)     |
            +-----------------+        +-----------------+
                     |
                     | 3. Async Replication (Slave Pull Binlog)
                     V
            +-----------------+
            |   Slave DB      |
            |   (Replica)     |
            +--------+--------+
                     |
                     | 4. Read Request (SELECT)
                     V
            +-----------------+
            |   Application   |
            |   (Client)      |
            +-----------------+
    

    主库(Master)

    • 当主库执行写操作(如 INSERTUPDATEDELETE)时,它会将这些操作记录到 二进制日志(Binlog) 中。Binlog 记录了所有更改数据库状态的操作。
  • 从库(Slave)

    • 从库不直接从主库推送数据,而是通过 拉取(Pull) 的方式从主库获取二进制日志(Binlog)。
    • 从库会通过 IO线程 与主库建立连接,从主库请求并获取主库的 Binlog
    • 这个过程是异步的,即主库并不会等待从库接收或处理完日志才返回操作结果,主库会直接执行写操作并返回。
  • 从库应用 Binlog

    • 从库获取到 Binlog 后,将其存储到 Relay Log(中继日志)中。
    • 然后,SQL线程 会读取这个 Relay Log,并将其中的 SQL 语句执行到从库的数据库中,确保从库的状态与主库一致。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值