MLCP仅能从3节点MarkLogic集群复制部分数据求助排查
MarkLogic MLCP复制仅完成1/3文档的问题排查与解决
问题分析
疑惑1:指定单个input_host却出现所有节点IP
这是MarkLogic XCC客户端的正常集群发现机制:即便只指定一个源节点地址,XCC会自动查询集群拓扑、获取所有节点信息并做负载均衡,所以日志中会出现所有3个节点的IP,属于正常行为,并非故障。
疑惑2:副本Forest提示不可用但UI显示正常
MLCP默认会尝试从源数据库的所有关联Forest(含主Forest和副本Forest)读取数据。当副本Forest处于sync replicating状态时,虽然管理UI显示"正常",但实际上该副本尚未完成与主Forest的数据同步,暂时无法提供读取服务。MLCP读取副本Forest失败后会跳过对应数据,最终只复制了主Forest中的数据(3个主Forest对应总量的1/3)。
解决方案
方案1:强制MLCP仅读取主Forest
在MLCP命令中添加参数,限制仅从主Forest读取数据:
- 若已知所有主Forest名称,使用
-input_forest_name指定:
mlcp copy -input_host 10.111.10.123 -input_port 9001 -input_user UserABC -input_password **** \ -output_host <目标节点IP> -output_port 9001 -output_user <目标用户名> -output_password **** \ -input_forest_name XYC-content-1,XYC-content-2,XYC-content-3
- 若使用MLCP 10及以上版本,可直接用
-input_prefer_primary参数强制优先读取主Forest:
mlcp copy -input_host 10.111.10.123 -input_port 9001 -input_user UserABC -input_password **** \ -output_host <目标节点IP> -output_port 9001 -output_user <目标用户名> -output_password **** \ -input_prefer_primary true
方案2:等待副本Forest完成同步
在管理UI中监控副本Forest状态,直到所有副本Forest的复制状态从sync replicating变为active(完全同步完成),再执行MLCP复制操作。
方案3:临时禁用副本Forest读取(可选)
若需紧急复制数据,可临时将副本Forest从源数据库的关联列表中移除,复制完成后再重新关联。
验证
执行上述方案后,重新运行MLCP复制命令,检查日志是否不再出现XDMP-FORESTNOT错误,且文档复制数量达到预期。
内容的提问来源于stack exchange,提问作者XCELERENT - I want to dance
相关产品推荐
相关产品推荐

