如何将mongorestore 2.6.11转储到3.2.5系统?

时间:2016-04-23 14:42:53

标签: mongodb ubuntu-16.04

我从mongorestore转储(从另一个系统)到2.6.11系统执行3.2.5后发现异常。简而言之, new 系统(/var/lib/mongodb)中的集合文件名称的命名方式不同,请遵循以下格式:

collection-55--6670716476518949126.wt
index-1--6670716476518949126.wt

在旧系统上,集合位于/home/mongodb并遵循此命名约定:

collection_name.0
collection_name.1
collection_name.ns

奇怪的是,尽管旧系统上的~150MB集合文件大小没有在新的集合文件大小(大约150kb)中表示,但一切似乎都在“正常工作”。

我正在回答:

How to migrate MongoDB 2.6 to 3.0 with WiredTiger

基本上建议:

  • 执行mongodump
  • 停止mongod
  • 升级MongoDB版本
  • /etc/mongod.conf的旧配置文件转换为新的YAML格式。
  • 重新启动mongod
  • 在转储上执行mongorestore

然而,当我对新的MongoDB 3.2.5安装进行mongorestore时,我已经有了YAML格式的配置文件(见下文)。

所以我需要做的唯一一步就是mongorestore - 我已经完成并导致了上面提到的异常。

我的问题是:

01)我应该执行其他任何步骤吗?

02)这些文件是否需要命名“异常”?

03)为什么收集文件大小存在如此大的差异?

我要求为了避免由于错过重要步骤而可能在以后出现的任何问题。

/etc/mongod.conf

# mongod.conf

# for documentation of all options, see:
#   http://docs.mongodb.org/manual/reference/configuration-options/

# Where and how to store data.
storage:
  dbPath: /var/lib/mongodb
  journal:
    enabled: true
#  engine:
#  mmapv1:
#  wiredTiger:

# where to write logging data.
systemLog:
  destination: file
  logAppend: true
  path: /var/log/mongodb/mongod.log

# network interfaces
net:
  port: 27017
  bindIp: 127.0.0.1


#processManagement:

#security:

#operationProfiling:

#replication:

#sharding:

## Enterprise-Only Options:

#auditLog:

#snmp:

1 个答案:

答案 0 :(得分:1)

文件名是正确的,因为mongoDb现在使用有线老虎作为默认存储引擎。 相关的大小可能不同,因为WT在文件

中存储文档时使用不同的方法

see more here