滚动升级

滚动升级是一种在线升级方式,相比离线升级,滚动升级可保证在部分或全部服务可用的情况下完成软件的升级。对于采用分布式架构的 SequoiaDB 巨杉数据库,在集群规模大且支撑业务多且复杂时,尽量减少业务中断的滚动升级具有重要的意义。

由于 SequoiaDB 的升级通常会涉及到多台主机以及多种类型的节点,滚动升级需要按照指定的流程执行。升级流程需注意以下几点:

  • 尽量选择在业务量最小的时间段内进行升级
  • 对于包含多个节点的复制组(数据节点组和编目节点组),采用主备节点滚动升级策略,先对备节点进行升级,最后对主节点进行升级
  • 对于协调节点,如果前端业务系统配置了负载均衡则影响不大;如果没有配置负载均衡,建议先将业务连接的协调节点调整到其它主机上的协调节点,以减少升级过程对业务的影响

具体的升级流程如下:

  1. 选择一台拥有复制组主节点最少的主机,查看有哪些复制组的主节点在该主机上
  2. 使用 reelect() 命令,将这些复制组的主节点切换到其它主机上
  3. 按照离线升级中的软件升级步骤完成本主机上的软件升级,在正常完成升级的情况下,所有的节点应已正常启动并重新加入到集群中
  4. 选取下一个节点按照上述步骤完成升级,直至完成所有主机上的软件升级