首批通过分布式安全可靠测评,为关键业务系统打造
OceanBase 数据库升级错误,虚拟表未更新
更新时间:2023-11-13 02:05
本文介绍对 OceanBase 数据库升级后执行系统自检发现 sys_table_schema_check 失败的解决方法。
适用版本
OceanBase 数据库 V2.2.30 版本
问题现象
对 OceanBase 数据库 V2.2.30 集群所在的数据库进行 BP 版本升级,直接通过替换 RPM 包的方式进行升级时,执行系统自检后,发现 sys_table_schema_check 失败。
obclient> ALTER SYSTEM RUN JOB "ROOT_INSPECTION";
obclient> SELECT name,info FROM oceanbase.__all_virtual_upgrade_inspection WHERE name = 'all_check';
+-------------------------------------+---------+
| name | info |
+-------------------------------------+---------+
| zone_check | succeed |
| sys_stat_check | succeed |
| sys_param_check | succeed |
| sys_table_schema_check | failure |
| STATISTIC_PRIMARY_ZONE_ENTITY_COUNT | succeed |
| SCHEMA_SPLIT_V2 | succeed |
| all_check | succeed |
+-------------------------------------+---------+
可能原因
数据库 BP 版本升级的过程中,如果直接替换 RPM,会由于硬编码不一致导致数据库故障。
解决方式
可以通过以下步骤解决 BP 版本升级后的数据库故障:
执行以下语句,更新虚拟表。
obclient> ALTER SYSTEM UPGRADE VIRTUAL SCHEMA;验证更新是否成功。
obclient> ALTER SYSTEM RUN JOB "root_inspection"; obclient> SELECT name,info FROM oceanbase.__all_virtual_upgrade_inspection WHERE name = 'all_check'; +-------------------------------------+---------+ | name | info | +-------------------------------------+---------+ | zone_check | succeed | | sys_stat_check | succeed | | sys_param_check | succeed | | sys_table_schema_check | succeed | | STATISTIC_PRIMARY_ZONE_ENTITY_COUNT | succeed | | SCHEMA_SPLIT_V2 | succeed | | all_check | succeed | +-------------------------------------+---------+