版本升级
Contents
版本升级#
升级过程对服务的影响:
如果创建的表是单副本,那么在升级过程中是不可以读写的
如果创建的表是多副本,落在升级节点的读请求会有短暂的失败,对写请求会有少量的数据丢失。如果不能容忍短暂的读失败,那么在停止每一个tablet节点前执行下offlineendpoint。如果不能容忍少量写丢失,需要在升级过程中停掉写操作。
1. 升级nameserver#
停止nameserver
sh bin/start.sh stop nameserver
备份旧版本bin和conf目录
下载新版本bin和conf
对比配置文件diff并修改必要的配置,如endpoint、zk_cluster等
启动nameserver
sh bin/start.sh start nameserver
对剩余nameserver重复以上步骤
2. 升级tablet#
停止tablet
sh bin/start.sh stop tablet
备份旧版本bin和conf目录
下载新版本bin和conf
对比配置文件diff并修改必要的配置,如endpoint、zk_cluster等
启动tablet
sh bin/start.sh start tablet
如果auto_failover关闭时得连上ns client执行如下操作恢复数据。其中命令后面的endpoint为重启节点的endpoint
offlineendpoint endpoint
recoverendpoint endpoint
$ ./bin/openmldb --zk_cluster=172.27.128.31:8090,172.27.128.32:8090,172.27.128.33:8090 --zk_root_path=/openmldb_cluster --role=ns_client
> offlineendpoint 172.27.128.32:8541
offline endpoint ok
> recoverendpoint 172.27.128.32:8541
recover endpoint ok
升级结果确认#
showopstatus命令查看所有操作是否为kDone, 如果有kFailed的任务查看日志排查原因
showtable查看所有分片状态是否为yes
一个tablet节点升级完成后,对其他tablet重复上述步骤。(必须等到数据同步完才能升级下一个节点)
所有节点升级完成后恢复写操作, 执行showtable命令查看主从offset是否增加
3. 升级java client#
更新pom文件中java client版本号
更新依赖包