美文网首页
(5)数据复制(待更新)

(5)数据复制(待更新)

作者: hedgehog1112 | 来源:发表于2020-12-14 00:08 被阅读0次

    多台机器保存相同副本。使数据在地理位置上更接近用户,降低延迟,提高吞吐量、可用性。

    概要:主从(同/异步)、复制滞后、多主、无主,

    一、主与从节点

    全同步全异步:使用相对广泛,提高吞吐量,但会滞后,用于节点多,分布地域广场景

    半同步:一个从节点同步,其他从异步,同步从节点性能下降或不可用,其他从升级为同步模式。ps:主节点 +  同步从节点有最新副本

    1、配置新从节点

        1)某时间点对主节点副本产生一致性快照,避免长时间锁db

        2)将快照拷贝到新从节点

        3)从连到主节点,并请求快照点后更改日志(mysql binlog coordinates)

        4)获得日志,追赶,继续处理主节点新变化,重复1-4

    2、处理失效节点

    从节点失效:崩溃后又重启,追赶主节点

    主节点失效:切换节点,切换过程中问题:

        1)如用异步复制,失效前新主 没收到 原主 所有 数据,原主重新上线,写冲突。丢弃原主解决

        2)如其他系统用db内容,丢弃特别危险:从提升为主,新原主没完全同步,db用自增计数器,重新用原主分配的主键,恰好这些主键被redis引用。导致redis mysql不一致?如何解决

        3)脑裂,都认为自己是主,强制关闭一个或都关

        4)   设置何时的超时时间,来检测主节点失效。

    3、复制日志

    1、预写日志wal:追加写上去,1)对于日志结构存储引擎(sstable、lsm-tree),日志是主要存储方式,日志段在后台压缩 并 支持垃圾回收    2)对于覆盖写磁盘的btree,修改预先写日志,崩溃通过索引更新方式恢复。3)除了写日志,也可发给从节点(如数据格式不一样,从无法运行)

    2、行的逻辑日志:binlog,复制与存储逻辑剥离,如一条事务更新多行,多条日志,后面一行记录,该事务已提交

    3、触发器复制:不涉及任何代码,写事务,触发器记录到单独表中,开销高,更容易出错,高度灵活时用。

    二、复制滞后问题

    三、多主节点复制

    四、无主节点复制

    相关文章

      网友评论

          本文标题:(5)数据复制(待更新)

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