mongodb mongodump mongorestore

标签 mongodb mongodump mongorestore

我已经在 3 分片集群上针对大小为 600GB 的数据库执行了“mongodump”,并且 block 均匀分布在所有 3 个分片上。

我的 mongodump 命令是这样的:

mongodump --db mydb123 --authenticationDatabase admin --journal -u root -p password123 -o mydb123

block 几乎平均分布在所有 3 个分片中。 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

然后我将转储文件移动到一个新的集群,并在新的 2-shard 集群上执行这个转储文件的“mongorestore”。这个数据库的大小现在只有 80 GB。我想这是预料之中的(紧凑的 Action )。 但这是我的问题:在新的 2-shard 集群上,执行命令“sh.status()”不会显示该数据库的任何 CHUNKS。 我的 mongorestore 命令是这样的:

mongorestore -u root -p newpass123 --authenticationDatabase admin --verbose/data/db/backups/new_dir/mydumpfile

++++++++++++++++++++++++++++++++++++++ 执行这个 mongorestore 命令没有出错。 SH.STATUS() 的实际输出如下所示:

mongos> sh.状态() --- 分片状态 --- 分片版本:{ “_id”:1, “版本”:3, “最小兼容版本”:3, “当前版本”:4, “clusterId”:ObjectId(“52efaaa0a83668acafc3bcb0”) } 碎片: { “_id”:“sh1”,“主机”:“sh1/hfdvmprmongodb1:27000,hfdvmprmongodb2:27000”} { “_id”:“sh2”,“主机”:“sh2/hfdvmprmongodb1:27001,hfdvmprmongodb2:27001”} 数据库: {“_id”:“管理员”,“分区”:假,“主要”:“配置”} {“_id”:“测试”,“分区”:假,“主要”:“sh1”} {“_id”:“定价”,“分区”:真实,“主要”:“sh2”} { "_id": "mokshapoc", "partitioned": true, "primary": "sh1"}

mongos> isBalancerRunning() 2 月 4 日星期二 11:09:39.242 ReferenceError:未定义 isBalancerRunning 蒙戈斯> sh.isBalancerRunning() 是的

++++++++++++++++++++++++++++++++++++++++++++++++++++++ 因此,我已经完全完成了 mongorestore,并且没有显示 80 GB 数据库的 CHUNKS(在 mongodump 执行时曾经是 600 GB 的数据库)

我很困惑,因为我没有看到任何 block 。 (尺寸预计会更小,而且小了很多)

两个集群上的版本相同: MongoDB 外壳版本:2.4.6

谢谢, 虚拟机

最佳答案

mongodump 转储数据库中所有集合的数据和索引(如果转储很多,则为数据库)。它不会转储索引以外的任何元数据,这意味着如果您将转储恢复到分片集合中,它将被分片(分成 block ,平衡)。如果您将数据恢复到未分片的集合中,那么它将保持未分片状态。

转储是否来自分片集合并不重要,因为该信息保留在集群中,不会随数据一起移动。

关于mongodb mongodump mongorestore,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21560953/

相关文章:

mongodb - 查询模型的嵌入式列表

Mongodb的 "mongodump"命令,javascript执行错误

mongodb - mongodump 错误 "Failed: error reading from db: EOF"(服务器日志中没有条目)

python - 下载使用 mongodump 创建的存档

linux - Mongorestore:createIndex 错误:v:2 索引键模式中的值不能是对象类型。只允许数字 > 0、数字 < 0 和字符串

mongodb恢复似乎没有恢复所有文档

node.js - 如何将数据聚合到嵌套数组输出

javascript - Mongo 在单个字段(二维数组)上设置交集

mongodb - monorestore 问题 BadValue : object to insert exceeds cappedMaxSize

java - 无法转换为 org.bson.BSONObject