【 使用环境 】生产环境
【 OB or 其他组件 】OMS
【 使用版本 】
【问题描述】OMS迁移预检查源端-白名单 64K 长度限制检查没通过,是为什么呢
错误码:
GHANA-PCHKNP002020
等级:
ERROR
【复现路径】问题出现前后相关操作
【附件及日志】推荐使用OceanBase敏捷诊断工具obdiag收集诊断信息,详情参见链接(右键跳转查看):
【SOP系列 22 】——故障诊断第一步(自助诊断和诊断信息收集)
【备注】基于 LLM 和开源文档 RAG 的论坛小助手已开放测试,在发帖时输入 [@论坛小助手] 即可召唤小助手,欢迎试用!
1 个赞
论坛小助手
#3
根据文档库中的信息,OMS迁移预检查源端-白名单64K长度限制检查没通过的原因及解决方案如下:
原因:
根据文档片段1的信息,错误等级为ERROR,错误信息为“预检查 {checkType} 执行不通过”,错误原因是白名单长度过长。
解决方案:
请减少迁移或同步对象数量,或者使用匹配规则来选择迁移或同步对象。具体操作可以参考以下步骤:
- 登录OMS社区版控制台。
- 在左侧导航栏,单击 数据迁移。
- 在 数据迁移 页面,单击目标数据迁移任务的名称,进入详情页面。
- 检查并调整白名单配置,确保其长度不超过64K限制。可以通过减少迁移或同步对象数量,或者使用匹配规则来选择迁移或同步对象。
如果问题仍然存在,建议查看具体的报错原因,并根据实际情况调整配置。如果需要进一步的帮助,可以联系OceanBase的技术支持人员协助排查。
详情请参考:
- OMS 社区版错误码
- 如何处理 Failed to fetch 报错
- 4000 ~ 4499
- 5000 ~ 5999
- oms_migration_failed 迁移任务失败
- 6000 ~ 6999
1 个赞
论坛小助手
#5
您的问题可能存在误解,实际上据我所知,在OMS迁移预检查中,白名单的长度限制是针对所有选中的对象(包括库、表等)的全限定名(FQN)总长度进行限制的,而不是简单地按库的数量来计算。
即使您只选择了两个库,如果这两个库中包含大量的表或其他数据库对象,那么这些对象的全限定名(例如 database.schema.table
)累加起来的总长度可能会超过64K的限制。
解决方案建议:
-
减少对象数量:您可以尝试减少需要迁移或同步的对象数量。例如,仅选择关键的表或视图,而不是整个库。
-
使用匹配规则:通过配置匹配规则(如正则表达式)来筛选需要迁移的对象,而不是直接选择整个库。这样可以更精细地控制最终进入白名单的对象数量。
-
分批迁移:如果确实需要迁移大量对象,可以考虑将迁移任务拆分为多个批次,每个批次分别处理一部分对象。
如果仍有疑问,建议查看具体的白名单内容,并根据实际情况调整配置。或者联系OceanBase的人工答疑以获取更多帮助。
详情请参考:
- 容灾部署方案
- 4000 ~ 4499
- 体验多租户特性
- 创建备租户前准备
- 租户间的资源隔离
- 并发控制与排队
- 存储层估行
(小助手的答复已结束,如未能解决您的问题,请继续提问并等待其他同学的回复,谢谢!)
1 个赞
目前是比如我有a,b两个库,我直接指定对象,选择a,b两个库,然后预检查的时候就会提示白名单检查不通过。
但是我用匹配规则,匹配a.* b.*。这样也是两个库的所有东西,这种就通过了白名单检查,为什么呢
成
#11
指定对象和匹配规则对白名单内容传入的组装逻辑不同,
指定对象白名单组装逻辑:租户.库.表|租户.库.表|租户.库.表 。
示例:obmysql.schema.table1|obmysql.schema.table2 。达到长度限制就会预检查拦截
而匹配规则是db.* 传入内容会是"obmysql.db.*", 这样是没有长度限制问题的