• Geek_ee6004
    2019-11-10
    老师,你好,看完后,有几个问题,希望得到解答
    1、snapshot的话,可以理解为是数据库里面的全量备份吗?这个触发的时机都有哪些呢,是否是定期的?如果配置pure事务日志的时候,清除事务日志的时候,会触发snapshot吗?
    2、snapshot的保存有什么策略吗?是否系统运行很久后,snapshot会膨胀得很大(存在多个文件)如何去管理呢?
    3、snapshot是否可以用来做新服务器的数据恢复?比如我有五个节点的集群,现在坏了3个,还剩2个,希望再加3个,新增的3个节点,如何才能保证与剩余2个节点的数据一致,是通告依次动态添加节点来让zookeeper进行同步刷新。还是说,可以自己从剩余的2个节点中拷贝数据和事务日志,让新节点从快照和事务日志中恢复数据呢?
    展开

    作者回复: > 1、snapshot的话,可以理解为是数据库里面的全量备份吗?
    是数据库里面的全量备份。

    > 这个触发的时机都有哪些呢,是否是定期的?
    snapCount控制生成快照的频率,当日志文件里面的日志记录数大于snapCount / 2 + r.nextInt(snapCount/2)时生成一个快照。细节可以参见SyncRequestProcessor.java的代码。

    > 如果配置pure事务日志的时候,清除事务日志的时候,会触发snapshot吗?
    不会。但是保证数据恢复需要的快照不会被清除掉。

    > 2、snapshot的保存有什么策略吗?是否系统运行很久后,snapshot会膨胀得很大(存在多个文件)如何去管理呢?
    autopurge.snapRetainCount控制保留多少个快照,autopurge.purgeInterval控制多长时间进行一次清理。如果autopurge.purgeInterval设置成了0,需要手动使用zkCleanup.sh进行清理。

    > 3、snapshot是否可以用来做新服务器的数据恢复?比如我有五个节点的集群,现在坏了3个,还剩2个,希望再加3个,新增的3个节点,如何才能保证与剩余2个节点的数据一致,是通告依次动态添加节点来让zookeeper进行同步刷新。还是说,可以自己从剩余的2个节点中拷贝数据和事务日志,让新节点从快照和事务日志中恢复数据呢?
    快照的用处之一就是用来做新服务器和leader节点之间的同步。如果剩下的两个节点还是形成了一个运行的ensemble,依次动态添加节点就行了。ZooKeeper会自动进行新节点和leader节点之前的同步。如果新节点落后leader节点不多,就会只从leader节点接收日志记录。否则的话,先从leader节点接收一个快照,再接收后续日志记录。

     1
     2
  • 万事屋
    2019-12-24
    我从github上clone的代码没有organic.apache.zookeeper.data这个包?
    
    
  • 万事屋
    2019-12-24
    想要老师的intellij idea的配色

    作者回复: 使用的Darcula主体。

    
    
  • 不二
    2019-10-25
    老师您好,最近公司zk集群挂掉了,由于业务紧急,重启了集群,想请教老师,zk挂掉一些常见的原因有哪些

    作者回复: 1. 网络原因导致ZooKeeper节点互相连不上。
    2. 多个ZooKeeper节点的失败。

    
    
  • 飞翔
    2019-10-22
    老师 想问个问题 如果zookeeper 创造了一个snapshot 之后比如snapshot中的最大zxid是a, 那么他会不会在snapshot完成后把小于等于a的transanction log删除, 只保留zxid大于a的transanction log?
    
    
我们在线,来聊聊吧