MarkLogic版本回滚后插入TDE模板报TDE-ROLLINGUPGRADE错误求助
问题根因
回滚操作没有同步更新所有节点的集群配置文件,导致不同节点的effective-version参数值不一致,系统误判集群仍处于滚动升级状态,因此锁定了TDE模板修改等需要集群版本一致的操作;同时安全数据库版本与期望版本不匹配,导致Schemas森林重索引被跳过,进一步影响TDE相关功能正常运行。
修复步骤
- 先停止集群内所有节点的MarkLogic服务,确保没有节点处于运行状态,避免配置修改被自动覆盖
- 逐一访问所有节点的配置目录,修改每个节点下
clusters_1.xml、clusters_2.xml等节点专属集群配置文件,将其中<effective-version>标签的取值从10000500修改为10000400,确保所有节点的所有集群配置文件中,security-version统一为100004、effective-version统一为10000400 - 配置修改完成后,优先启动承载安全数据库的主节点,等待节点完全启动、日志无异常报错后,再按顺序启动其余从节点,每个节点启动后确认已正常加入集群再启动下一个
- 所有节点启动完成后,登录管理控制台进入本地集群配置页面,确认有效版本已显示为
10000400,无“部分升级”相关提示 - 执行TDE模板插入语句验证功能恢复正常,同时查看错误日志确认不再出现Schemas森林跳过重索引的提示
异常兜底方案
如果按照上述步骤操作后版本提示仍异常,可使用管理员账号登录查询控制台,执行以下语句强制设置集群有效版本:
xdmp:cluster-set-effective-version(xdmp:cluster(), 10000400)
注意:操作前请先备份所有节点的配置文件目录,避免修改失误导致其他异常。
内容的提问来源于stack exchange,提问作者Chris
相关产品推荐
相关产品推荐

