当Hologres数据库中的元数据管理器(Storage Master)和FE节点保存的表元数据不一致时,会导致DDL操作报错或影响费用等。Hologres提供了表Meta诊断功能,以检测当前实例中表元数据的一致性,并每周更新一次诊断结果,您可以根据对应元数据问题的解决方案进行修复,以提高实例的可用性和稳定性。
操作步骤
您可以通过HoloWeb可视化查看表Meta诊断。
进入HoloWeb开发页面,详情请参见连接HoloWeb并执行查询。
单击顶部导航栏的诊断与优化。
在左侧导航栏,选择实例诊断>表Meta诊断,进行查询。
诊断列表
诊断时效性为每周更新一次诊断内容。诊断问题、影响和修复方案如下表。
问题 | 影响 | 修复方案 | 注意事项 |
分区子表的Distribution Key与父表不一致 | 若不修复,当查询命中对应分区子表时会报错。 | 重新建分区父表和所有子表。 | 建议在业务低峰期执行。 |
表设置的Distribution Key与元数据不一致 | 若不修复,查询时会报错。 | 重新建表。 | 建议在业务低峰期执行。 |
分区子表的Clustering Key与父表不一致 | 若不修复,当查询命中对应分区子表时会报错。 | 重新建分区父表和所有子表。 | 建议在业务低峰期执行。 |
表设置的Clustering Key与元数据不一致 | 若不修复,查询时会报错。 | 重新建表。 | 建议在业务低峰期执行。 |
分区子表的Segment Key与父表不一致 | 若不修复,当查询命中对应子表时会报错。 | 重新建立分区父表和所有子表。 | 建议在业务低峰期执行。 |
表设置的Segment Key与元数据不一致 | 若不修复,查询时会报错。 | 重新建表。 | 建议在业务低峰期执行。 |
表设置的Encryption属性与元数据不一致 | 若不修复,查询时会报错。 | 重新建表。 | 建议在业务低峰期执行。 |
表设置的Storage Mode与元数据不一致 | 若不修复,查询时会报错。 | 执行 | 建议在业务低峰期执行,在冷热数据搬迁过程中,可能会使用一定的系统资源。 |
表设置的Storage Format与元数据不一致 | 若不修复,查询时会报错。 | 执行 | 建议在业务低峰期执行,在ORC格式转换过程中,可能会使用一定的系统资源。 |
表设置的Proxima Vectors与元数据不一致 | 若不修复,查询时会报错。 | 重新建表。 | 建议在业务低峰期执行。 |
表设置的Proxima Vectors存在非法值 | 若不修复,查询时会报错。 | 重新建表。 | 建议在业务低峰期执行。 |
表设置的TTL与元数据不一致 | 若不修复,可能会影响数据的生命周期,导致数据被意外删除。 | 修复SQL如下: | 建议在业务低峰期执行。 |
表设置的Binlog TTL与元数据不一致 | 若不修复,可能会影响Binlog的生命周期,导致Binlog被意外删除。 | 修复SQL如下: | 建议在业务低峰期执行。 |
表设置的Binlog属性与元数据不一致 | 可能表未开启Binlog功能,但在元数据中启用了Binlog,则可能导致表的存储空间增加。 | 修改一次Binlog的属性,可以先关闭。修复SQL如下: | 请根据业务情况选择Binlog的开关,否则会影响相关Binlog任务。 |
分区子表设置的Binlog属性与父表不一致 | 父表可能未开启Binlog,而子表开启了Binlog,导致分区表的Binlog属性不一致。这种情况下,如果查询命中子表,可能会报错,同时还可能导致表的存储空间增加。 | 修改一次Binlog的属性,可以先关闭。修复SQL如下: | 请根据业务情况选择Binlog的开关,否则会影响相关Binlog任务。 |
表设置的Index数量与元数据不一致 | 若不修复,查询时会报错。 | 需要重新建表。 | 建议在业务低峰期执行。 |
表设置的index属性与元数据不一致 | 若不修复,查询时会报错。 | 需要重新建表。 | 建议在业务低峰期执行。 |
表设置的Readonly属性与元数据不一致 | 若不修复,查询时会报错。 | 执行 | 建议在业务低峰期执行。 |
表的字段数量与元数据不一致 | 若不修复,查询时会报错。 | 需要重新建表。 | 建议在业务低峰期执行。 |
表名与元数据不一致 | 若不修复,查询时会报错。 | 需要重新建表。 | 建议在业务低峰期执行。 |
表字段的Nullable属性与元数据不一致 | 若不修复,查询时会报错。 | 需要重新建表。 | 建议在业务低峰期执行。 |
表字段名存在不支持的异常字符 | 若不修复,查询时会报错。 | 需要重新建表。 | 建议在业务低峰期执行。 |
表没有字段 | 不合法的表,建议删除,否则会占用元数据内存。 | 删除表。 | 建议在业务低峰期执行。 |
表设置的Clustering Key包含不支持的数据类型 | 若不修复,查询时会报错。 | 需要重新建表。 | 建议在业务低峰期执行。 |
表设置的Segment Key包含不支持的数据类型 | 若不修复,查询时会报错。 | 需要重新建表。 | 建议在业务低峰期执行。 |
表元数据有严重异常,无法访问 | 表的元数据问题较为严重,且自动诊断难以识别更多具体原因。如果不进行修复,查询将会报错。 | 需要重新建表。 | 建议在业务低峰期执行。 |