美文网首页
Mysql 的主从复制

Mysql 的主从复制

作者: cammsia | 来源:发表于2016-09-20 14:39 被阅读20次

    复制方式

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

    • 基于行的复制
    • 基于语句的复制

    复制步骤

    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,在从库上只能串行执行。

    相关文章

      网友评论

          本文标题:Mysql 的主从复制

          本文链接:https://www.haomeiwen.com/subject/oghoettx.html