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。