OceanBase 数据库可以通过 OceanBase 云平台(OceanBase Cloud Platform,OCP) 进行集群一键升级,一键即可完成对一个集群的升级操作。整个升级过程应用无感知,应用无需配合服务端做任何的停写停服务操作。
OceanBase 数据库会按照 Zone 的顺序进行升级。升级过程中,分区 leader 会在各个 Zone 间进行切主动作,并将流经要进行升级 Zone 的业务引流到其他 Zone 上执行。
升级路径
OceanBase 数据库支持从 V2.2.20 版本直接升级到 V2.2.30 版本。如果您使用的是 V2.2.20 之前的版本,您需要按照如下升级路径先升级到路径上的 binary 版本,然后再升级到 V2.2.30。
V1.451 > V1.4.60 > V1.4.61 > V1.4.70 > V1.4.71 > V1.4.72 > V1.4.73 > V1.4.74 > V1.4.75 > V1.4.76 > V1.4.77 > V1.4.78 > V1.4.79 (binary)
V1.4.79(binary)> V2.0.0 > V2.1.1> V2.1.11> V2.1.20 > V2.1.30 > V2.1.31(binary)
V2.1.31(binary)> V2.2.0 > V2.2.1(binary)
V2.2.1(binary)> V2.2.20 > V2.2.30
说明
升级之前,您需要将升级路径上所有版本对应的 rpm 包都上传到 OCP 中。
在进行升级时,OCP 会将升级任务按照升级路径中的 binary 版本进行拆分,会以 Zone 为单位先将整个集群升级至 binary 版本,再继续进行升级。
以一个包含 3 个 Zone(Zone1、Zone2、Zone3)的集群为例。例如,集群当前为 V2.2.0 版本,需要升级到 V2.2.30 版本。这个集群的升级路径如下:
V2.2.0 > V2.2.1(binary)> V2.2.20 > V2.2.30
升级之前,您需要将升级路径上所有版本对应的 rpm 上传到 OCP;在本示例中,您需要上传 V2.2.1、V2.2.20 和 V2.2.30 版本的 rpm 包到 OCP。OCP 会按照升级路径中的 binary 版本,将升级任务拆分为:
V2.2.0 > V2.2.1(binary)
V2.2.1(binary)> V2.2.20 > V2.2.30
也就是说,OCP 会先将 Zone1 从V2.2.0 版本升级到 V2.2.1 版本,再将 Zone 2从V2.2.0 版本升级到 V2.2.1 版本,然后将 Zone3从V2.2.0 版本升级到 V2.2.1 版本;此时,整个集群已经从 V2.2.0 版本升级到了 binary 版本(V2.2.1)。接下来,OCP 会按照 Zone 顺序依次将Zone1、Zone2、Zone3 从 binary 版本(V2.2.1)升级到 V2.2.30;等到所有 Zone 均升级到 V2.2.30,集群升级就完成了。
升级注意事项
在进行 OceanBase 数据库集群升级时,需要注意以下几点:
当前仅支持整集群升级,不支持单 Zone 升级。
当前不支持升级后回滚,也不支持从高版本回退到低版本。
OceanBase 数据库版本升级时,会禁用合并、复制迁移、业务 DDL 语句、部分租户 DDL 。
如果升级失败,不要重试,请联系 OceanBase 售后支持。
升级影响
升级过程可能会有以下影响:
升级过程分区 leader 会在各个 Zone 间进行切主,会对业务的 RT(Response Time 响应时间)有略微影响。
升级过程中主备切换时会影响用户业务,超过 100 ms 的事务会被 Abort。