美文网首页
【Mysql】主从复制

【Mysql】主从复制

作者: su_wing | 来源:发表于2017-11-06 00:57 被阅读0次

    Mysql主从复制

    1)复制类型:

    sql复制(binlog小,but:有些类似于当前用户的语句不能更新成功,也可能需要一些元数据如时间戳,另外还要求是串行存储的,对存储引擎有要求Innodb next-key),行数据复制(数据准确,binlog大却可读性差),混合复制

    2)复制流程原理:

    在大的方面来说主要是三个步骤:

    a.在master上发生更新时,将更新记录进binlog中【在master发生更新操作时,会先将事务串行写入binlog中,再通知存储引擎提交事务。】

    b.slave将binlog数据同步到relay log中【slave开启一个I/O线程,并在master上打开一个连接,执行binlog dump process,读取binlog中的数据并写入relaylog中】

    c.slave将relaylog中的更新同步到数据库【利用slave中的Sql从线程,将relaylog中的事件重现,同步从数据库中的数据。】

    3)注意项

    relaylog一般存放在OS的缓存中,开销很小

    由于slave复制操作只能是串行的,在master上的并行操作不能再salve上重现。

    4)同步失败,如何排查错误

    1.使用show slave status 看两个个线程的工作状态,Slave_IO_Running: Yes   Slave_SQL_Running: Yes

    2、在SQL线程和IO线程都正常的情况下,先看看从库的pos(relay_file_position)点是否时刻在变化,如果pos点有变化的情况下,说明IO线程工作是正常的

    【show master status里会有master_file_position,show slave status会有real_master_file_position 和 relay_file_position,两个master_pos要相同才算是同步成功了】

    3、接着就是用tail -f查看relay-log的更新状况,查看SQL语句的更新状态

    4、定位问题



    相关文章

      网友评论

          本文标题:【Mysql】主从复制

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