技术问询:开发者需查阅MarkLogic参考文档,使用MLCP复制模式跨环境拷贝数据
MLCP复制模式从DEV到UAT环境的实操指导
前置准备事项
- 确认DEV与UAT环境的MarkLogic版本完全一致,避免版本兼容问题
- 两端配置对应权限账号:DEV侧需具备数据读取权限,UAT侧需具备数据插入、更新权限(若需覆盖现有数据,还需删除权限)
- 在UAT环境提前创建与DEV匹配的数据库、森林结构,包括相同的索引、配置项
基础复制命令模板
使用MLCP的copy模式执行跨环境数据迁移,基础命令示例如下:
mlcp.sh copy \ -src_host dev-marklogic.example.com \ -src_port 8000 \ -src_username dev-read-user \ -src_password dev-read-pass \ -dest_host uat-marklogic.example.com \ -dest_port 8000 \ -dest_username uat-write-user \ -dest_password uat-write-pass \ -src_database DevDB \ -dest_database UatDB
关键参数优化技巧
- 增量迁移:仅同步新增/更新数据时,添加
-incremental true和-timestamp <上次迁移时间戳>,时间戳格式为yyyy-MM-dd'T'HH:mm:ss.SSS'Z' - 数据过滤:通过
-query_option_file /path/to/filter-query.xqy指定查询规则,仅复制符合条件的文档,示例查询语句:cts:document-query(cts:uri-match("/user-data/*")) - 性能调优:根据服务器资源情况调整
-batch_size(默认100)和-thread_count(默认4),比如设置-batch_size 500 -thread_count 8提升迁移速度 - 覆盖现有文档:添加
-copy_behavior replace,默认情况下MLCP会跳过UAT中已存在的文档
常见问题排查
- 连接超时:检查跨环境网络连通性,添加
-socket_timeout 300(单位秒)延长超时阈值 - 权限报错:确认账号权限范围,必要时使用具备
admin权限的账号做测试验证 - 数据一致性校验:迁移完成后执行文档计数对比,命令示例:
# DEV环境文档计数 mlcp.sh count -host dev-marklogic.example.com -port 8000 -username dev-read-user -password dev-read-pass -database DevDB # UAT环境文档计数 mlcp.sh count -host uat-marklogic.example.com -port 8000 -username uat-write-user -password uat-write-pass -database UatDB
内容的提问来源于stack exchange,提问作者Saiteja Vegi
相关产品推荐
相关产品推荐

