如何使用WiredTiger将MongoDB 2.6迁移到3.0


9

MongoDB 3.0引入了一个新的存储引擎wiredTiger,该引擎可大大减少内存和磁盘空间的使用。

由于我的数据库当前有约2000万个对象,并使用了约70GB的RAM,因此此更新适时出现,可以推迟硬件更新。

您如何将现有的MongoDB 2.6安装迁移到3.0,同时又获得wiredTiger的好处?

该文档指的是导致启动错误的选项,这些错误会阻止MongoDB启动。另外,文件位置与Ubuntu(Server 14.04 LTS)中的文件位置不匹配。


这是单个实例(不是副本集)吗?
亚当C

Answers:


15

在默认安装中,配置文件位于/etc/mongod.conf。MongoDB文档没有提及的是,在迁移到WiredTiger时,我们还需要将配置文件更新为2.6中引入的新YAML格式。
据我所知,该engine选项仅在新的配置格式中可用。
从旧的存储引擎迁移包括创建数据库转储,关闭mongodb,更改设置,然后将转储导入新的存储引擎。

  1. 创建一个备份。说真的 我们需要一个数据库转储,然后将其导入到新的数据库引擎中:

    mongodump -d db_name /backup/path/  
    
  2. 停止mongodb服务

    sudo service mongod stop  
    
  3. 将数据从当前位置移动到其他位置(如果数据目录包含旧存储引擎生成的文件,则MongoDB将不会启动)。

    sudo mv /var/lib/mongodb /var/lib/mongodb_26/
    
  4. 将MongoDB升级到3.0版(从http://docs.mongodb.org/v3.0/tutorial/install-mongodb-on-ubuntu/):

    sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10  
    echo "deb http://repo.mongodb.org/apt/ubuntu "$(lsb_release -sc)"/mongodb-org/3.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.0.list  
    sudo apt-get update  
    sudo apt-get install mongodb-org mongodb-org-server mongodb-org-shell mongodb-org-mongos mongodb-org-tools  
    
  5. 将配置文件从旧的(2.6之前的版本)转换为当前的YAML格式。最低要求是:

    storage:  
        dbPath: "/var/lib/mongodb"  
        engine: wiredTiger  
    
    systemLog:  
       destination: file  
       path: "/var/log/mongodb/mongod.log"  
       logAppend: true  
    
    net:  
        bindIp: 127.0.0.1  
        port: 27017  
        # Enable the HTTP interface (Defaults to port 28017).  
        http:  
            enabled: false  
    

    确保没有使用旧格式的行,否则MongoDB将不会启动。

    有关配置文件的完整文档,请访问:http : //docs.mongodb.org/v3.0/reference/configuration-options/

  6. (可选)对日志进行备份:

    sudo mv /var/log/mongodb/mongod.log /var/log/mongodb/mongod_26.log
    
  7. 重新启动mongodb

    sudo service mongod start
    
  8. 加载备份以将数据转换为新的存储引擎

    mongorestore /backup/location
    

检查完所有数据后,您可以删除旧数据格式的目录

sudo rm -r /var/lib/mongodb_26/

请注意,对于副本集和分片群集,有一些附加步骤:http ://docs.mongodb.org/v3.0/release-notes/3.0-upgrade/?_ga=1.86531032.1131483509.1428671022#change-replica-set-storage 引擎到有线老虎


1
注意:有关YAML配置文件的更完整示例,请参见我在DBA上的答案:dba.stackexchange.com/a/82592/6441
Adam C

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.