我有一个共享的集合,我正在尝试从运行v2.4的现有生产集群迁移到运行2.6的新集群。
由于这两个集群都是共享的,所以我使用mongoexport从旧的和mongoimport到新的,这样数据将通过配置服务器。我这样做的方式是调用mongoexport进程,并将结果导入mongoimport进程。
我猜想export2000import进程会影响导出的json的大小,该json无法导入回新集群。有什么办法可以避免这个问题,甚至忽略一些导致这个错误的文档吗?(我宁愿丢掉几张,也不愿丢掉所有800万张唱片)。
有办法绕过这件事吗?
提前感谢
发布于 2014-08-28 06:54:35
对于MongoDB服务器之间的数据迁移(或备份),您应该使用mongodump和mongorestore (二进制备份),而不是mongoimport/mongoexport (文本备份)。
切分集合的备份(和还原)需要通过mongos来完成。
使用mongodump/mongorestore有几个原因:
mongoexport到文本格式可能丢失类型信息,因为JSON只能表示BSON类型的子集mongorestore重新创建它们。如果您试图通过转储/导出记录来执行实时迁移,这将是个问题,因为如果您正在转储的集合上有写活动,则转储不会代表一个时间点。
在使用关闭平衡器之前,您肯定希望在源集群上进行mongodump,以确保没有活动的数据迁移。
您还可能希望查看像hydra这样的实时迁移工具。
https://dba.stackexchange.com/questions/75172
复制相似问题