You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用MLCP复制1.5TB数据库时遭遇异常,请求技术支持

MLCP复制1.5TB MarkLogic数据库时的异常排查方案

场景概述

尝试使用MLCP将1.5TB的MarkLogic数据库从一个实例复制到另一个实例,实例规格为r5.4xlarge,复制过程中出现异常。

执行的MLCP命令

mlcp.bat copy -mode local -input_host localhost -input_port 8003 -input_username admin -input_password xxxx -output_host xx.xx.xx.xxx -output_port 8003 -output_username admin -output_password xxxx

异常信息

异常1:文档缓冲失败

23/09/14 00:01:14 ERROR contentpump.DatabaseContentReader: 读取/mla/searchCopy/expanded/BIB5211557.xml时发生RuntimeException:java.lang.RuntimeException: 无法将值缓冲为字符串
23/09/14 00:01:14 INFO contentpump.DatabaseContentReader: 主机名: localhost
23/09/14 00:01:15 INFO contentpump.DatabaseContentReader: 正在重试连接

异常2:HTTP头解析失败

2023-09-13 23:23:22.792 SEVERE [34] (StreamingResultSequence.next):
实例化ResultItem 6688时发生IOException:解析HTTP头出错:
提前EOF,读取到不完整的头行:'X-URI: /validati'
java.io.IOException: 解析HTTP头出错:提前EOF,
读取到不完整的头行:'X-URI: /validati'
com.marklogic.http.HttpHeaders.parsePlainHeaders(HttpHeaders.java:321)
com.marklogic.http.MultipartBuffer.next(MultipartBuffer.java:103)
com.marklogic.xcc.impl.AbstractResultSequence.instantiateResultItem(AbstractResultSequence.java:132)
com.marklogic.xcc.impl.StreamingResultSequence.next(StreamingResultSequence.java:147)
com.marklogic.xcc.impl.StreamingResultSequence.next(StreamingResultSequence.java:166)
com.marklogic.contentpump.DatabaseContentReader.nextKeyValue(DatabaseContentReader.java:520)
com.marklogic.contentpump.LocalJobRunner$TrackingRecordReader.nextKeyValue(LocalJobRunner.java:431)
org.apache.hadoop.mapreduce.task.MapContextImpl.nextKeyValue(MapContextImpl.java:80)
org.apache.hadoop.mapreduce.lib.map.WrappedMapper$Context.nextKeyValue(WrappedMapper.java:91)
com.marklogic.contentpump.BaseMapper.run(BaseMapper.java:66)
com.marklogic.contentpump.LocalJobRunner$LocalMapTask.call(LocalJobRunner.java:343)
java.util.concurrent.FutureTask.run(Unknown Source)
java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
java.lang.Thread.run(Unknown Source)

解决方向

  • 调整MLCP内存配置:针对1.5TB的大数据量,默认内存不足会导致缓冲失败。执行命令前设置MLCP_OPTS="-Xmx32G -Xms32G"(根据r5.4xlarge的128G内存,可分配32-64G)。
  • 优化连接与批量参数:
    • 添加-input_connection_timeout 300和-output_connection_timeout 300(单位秒),延长连接超时时间,避免大文件传输时提前断开。
    • 减小-input_batch_size和-output_batch_size的值,降低单次传输的文档数量,减轻网络和实例负载。
  • 验证源文档完整性:单独检查异常中提到的BIB5211557.xml,确认该文档在源实例中可正常读取,无损坏或体积异常情况。
  • 拆分复制流程:放弃直接跨实例复制,先将源数据库导出到本地文件,再将文件导入目标实例,降低实时传输的稳定性风险。
  • 排查网络问题:目标实例通过公网IP访问,需确认带宽充足、无丢包;若条件允许,建立源与目标实例的私有网络连接,提升传输稳定性。

内容的提问来源于stack exchange,提问作者Arunjay

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 12:17:31