OMS迁移预检查源端-白名单 64K 长度限制检查没通过

【 使用环境 】生产环境
【 OB or 其他组件 】OMS
【 使用版本 】
【问题描述】OMS迁移预检查源端-白名单 64K 长度限制检查没通过,是为什么呢
错误码:
GHANA-PCHKNP002020
等级:
ERROR
【复现路径】问题出现前后相关操作
【附件及日志】推荐使用OceanBase敏捷诊断工具obdiag收集诊断信息,详情参见链接(右键跳转查看):

【SOP系列 22 】——故障诊断第一步(自助诊断和诊断信息收集)

【备注】基于 LLM 和开源文档 RAG 的论坛小助手已开放测试,在发帖时输入 [@论坛小助手] 即可召唤小助手,欢迎试用!

1 个赞

根据文档库中的信息,OMS迁移预检查源端-白名单64K长度限制检查没通过的原因及解决方案如下:

原因:
根据文档片段1的信息,错误等级为ERROR,错误信息为“预检查 {checkType} 执行不通过”,错误原因是白名单长度过长。

解决方案:
请减少迁移或同步对象数量,或者使用匹配规则来选择迁移或同步对象。具体操作可以参考以下步骤:

  1. 登录OMS社区版控制台。
  2. 在左侧导航栏,单击 数据迁移
  3. 数据迁移 页面,单击目标数据迁移任务的名称,进入详情页面。
  4. 检查并调整白名单配置,确保其长度不超过64K限制。可以通过减少迁移或同步对象数量,或者使用匹配规则来选择迁移或同步对象。

如果问题仍然存在,建议查看具体的报错原因,并根据实际情况调整配置。如果需要进一步的帮助,可以联系OceanBase的技术支持人员协助排查。

详情请参考:

  1. OMS 社区版错误码
  2. 如何处理 Failed to fetch 报错
  3. 4000 ~ 4499
  4. 5000 ~ 5999
  5. oms_migration_failed 迁移任务失败
  6. 6000 ~ 6999
1 个赞

我就选择了两个库就太多了?

1 个赞

您的问题可能存在误解,实际上据我所知,在OMS迁移预检查中,白名单的长度限制是针对所有选中的对象(包括库、表等)的全限定名(FQN)总长度进行限制的,而不是简单地按库的数量来计算。

即使您只选择了两个库,如果这两个库中包含大量的表或其他数据库对象,那么这些对象的全限定名(例如 database.schema.table)累加起来的总长度可能会超过64K的限制。

解决方案建议:

  1. 减少对象数量:您可以尝试减少需要迁移或同步的对象数量。例如,仅选择关键的表或视图,而不是整个库。

  2. 使用匹配规则:通过配置匹配规则(如正则表达式)来筛选需要迁移的对象,而不是直接选择整个库。这样可以更精细地控制最终进入白名单的对象数量。

  3. 分批迁移:如果确实需要迁移大量对象,可以考虑将迁移任务拆分为多个批次,每个批次分别处理一部分对象。

如果仍有疑问,建议查看具体的白名单内容,并根据实际情况调整配置。或者联系OceanBase的人工答疑以获取更多帮助。

详情请参考:

  1. 容灾部署方案
  2. 4000 ~ 4499
  3. 体验多租户特性
  4. 创建备租户前准备
  5. 租户间的资源隔离
  6. 并发控制与排队
  7. 存储层估行

(小助手的答复已结束,如未能解决您的问题,请继续提问并等待其他同学的回复,谢谢!)

1 个赞

使用匹配规则匹配所有的表就可以?,比如db.*

1 个赞

oms是社区版么?版本号发一下

4.2.7_CE

OMS 海量数据迁移策略


https://www.oceanbase.com/docs/common-best-practices-1000000001489659

目前是比如我有a,b两个库,我直接指定对象,选择a,b两个库,然后预检查的时候就会提示白名单检查不通过。
但是我用匹配规则,匹配a.* b.*。这样也是两个库的所有东西,这种就通过了白名单检查,为什么呢

指定对象和匹配规则对白名单内容传入的组装逻辑不同,
指定对象白名单组装逻辑:租户.库.表|租户.库.表|租户.库.表 。
示例:obmysql.schema.table1|obmysql.schema.table2 。达到长度限制就会预检查拦截
而匹配规则是db.* 传入内容会是"obmysql.db.*", 这样是没有长度限制问题的

奥,行,了解了

匹配的问题吗