Mysql 的主从复制

2016-09-20  本文已影响20人  cammsia

复制方式

通过主库上记录二进制日志,在备库重放日志的方式来实现异步的数据复制。

复制步骤

20160914112042547.png
  1. 在主库上把数据更改记录到二进制日志。
    每次准备提交事务完成数据跟新之前,把数据跟新事件记录到二进制文件中,也就是说是按照事务提交顺序来记录二进制文件,而不是按照每条语句来记录。记录完,主库会告诉存储引擎可以提交事务了。

  2. 备库把主库的二进制文件复制到本地中继日志

    1. 启动复制
      CHANGE MASTER TO MASTER_HOST = '10.*.*.36', MASTER_USER = 'repl', MASTER_PASSWORD = 'replpassword', MASTER_PORT = 3306, MASTER_AUTO_POSITION = 1, MASTER_RETRY_COUNT = 0, MASTER_HEARTBEAT_PERIOD = 10000;
    2. 从库启动一个IO线程和SQL线程,IO线程会跟主库建立一个普通的客户端长连接,并为主库开启特殊的二进制转储(binlog dump)线程。
    3. 从库把自己的read_master_log_pos的值告诉主库,主库会自从库告知自己pos开始把事件推送给从库,当没有事件发生时,主从库的IO都会进行睡眠状态。
    4. 当主库有事件发生时,主库IO线程被激活,并把事件推送给从库,并通知从库IO线程进入工作状态。
    5. 从库SQL线程执行二进制日志。

    主库能并行执行SQL,在从库上只能串行执行。

上一篇下一篇

猜你喜欢

热点阅读