首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mongo导入错误:异常:读取错误,或输入行过长(最大长度: 16777216)

问Mongo导入错误:异常:读取错误,或输入行过长(最大长度: 16777216)
EN

Database Administration用户
提问于 2014-08-28 06:04:22
回答 1查看 1.4K关注 0票数 0

我有一个共享的集合,我正在尝试从运行v2.4的现有生产集群迁移到运行2.6的新集群。

由于这两个集群都是共享的,所以我使用mongoexport从旧的和mongoimport到新的,这样数据将通过配置服务器。我这样做的方式是调用mongoexport进程,并将结果导入mongoimport进程。

我猜想export2000import进程会影响导出的json的大小,该json无法导入回新集群。有什么办法可以避免这个问题,甚至忽略一些导致这个错误的文档吗?(我宁愿丢掉几张,也不愿丢掉所有800万张唱片)。

有办法绕过这件事吗?

提前感谢

EN

回答 1

Database Administration用户

回答已采纳

发布于 2014-08-28 06:54:35

对于MongoDB服务器之间的数据迁移(或备份),您应该使用mongodump和mongorestore (二进制备份),而不是mongoimport/mongoexport (文本备份)。

切分集合的备份(和还原)需要通过mongos来完成。

使用mongodump/mongorestore有几个原因:

  • 二进制备份在BSON文档中保留类型保真度;mongoexport到文本格式可能丢失类型信息,因为JSON只能表示BSON类型的子集
  • 您可以转储/还原完整数据库(而不是仅限于单个集合)。
  • 包含有关索引定义的信息,以便由mongorestore重新创建它们。

如果您试图通过转储/导出记录来执行实时迁移,这将是个问题,因为如果您正在转储的集合上有写活动,则转储不会代表一个时间点。

在使用关闭平衡器之前,您肯定希望在源集群上进行mongodump,以确保没有活动的数据迁移。

您还可能希望查看像hydra这样的实时迁移工具。

票数 2
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/75172

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档