若oceanbase 版本A可以直接升级到版本B,那么高版本B是否会兼容低版本A的所有未过时的系统表和视图?

如果 oceanbase的某个版本a 可以直接升级到版本b,不经过中间版本。
而升级到高版本时,系统表/内部表会发生变化,那么请问:这个新版本b 是否兼容版本a中的所有系统表和视图?(有新增表、视图和字段,但是没有删除,除非已经视图或字段已经过时不用)。

如果有不兼容的地方,那么集群在升级过程中,未升级的节点访问高版本的系统表是否会有问题?

谢谢。

@论坛小助手

关于OceanBase版本升级时的系统表和视图兼容性问题

根据您提出的问题,涉及到从低版本A直接升级到高版本B过程中,新版本B对旧版本A系统表及视图的兼容性情况。结合检索到的相关文档信息,我将分几个方面来解答您的疑问:

  1. 版本间系统视图变更

  2. 直接升级过程中的兼容性

    • 在官方文档中,并未明确指出所有情况下具体哪些表或视图将发生变化以及其详细变化情况。但是,通常来说,如果一个更新是支持直接进行的,那么它应当保证基础功能层面的向后兼容性。
    • 对于新增加的内容(如新表、视图或字段),它们不会影响原有系统表/视图的功能;而对于被标记为已废弃但未移除的部分,虽然暂时仍可使用,但建议迁移至替代方案。
  3. 混合版本集群访问问题

    • 如果集群内存在不同版本节点,在执行某些涉及到了新特性或者已被改进/替换掉的老接口的操作时可能会遇到问题。例如,未升级的节点试图访问仅存在于新版本中的系统视图时就会失败。
    • 因此,在计划此类跨越多个主版本号的大跨度升级前,强烈推荐查阅具体的发布说明了解是否存在重大更改,并按照官方提供的最佳实践指南操作,比如通过 obshell 升级 OceanBase 集群等文档中给出的具体步骤。

综上所述,一般而言,如果OceanBase允许从A版本直接升至B版本,则默认情况下B版本应能兼容A版本中存在的大部分系统表与视图。但对于已标明即将淘汰或已做出重大修改的项目则需特别注意。此外,在整个集群完全切换至目标版本之前,确实存在潜在的风险,尤其是在尝试访问只有新版本才引入的数据结构时。建议密切跟踪官方发布的更新指南以获取最准确的信息。

具体信息可参考以下文档:

  1. OceanBase 数据库概述
  2. OceanBase 数据库升级检查
  3. 升级 OceanBase 集群
  4. 通过 Liquibase 管理 OcenBase 数据库版本
  5. 升级 obshell
  6. 使用 obd 升级 OceanBase 数据库
  7. 版本号规则