Changing the storage engine for a standalone MongoDB server from Mmapv1 to WiredTiger is relatively painless.

Here’s how I did it.

  1. Backup the database

    mongodump --out /srv/backup/mongodb
    
  2. Stop monbodb service

    service mongodb stop
    
  3. Update mongodb.conf. Here’s my /etc/mongodb.conf file:

    # mongod.conf
    
    storage:
      dbPath: "/var/lib/mongo" 
      engine: wiredTiger
      wiredTiger:
        engineConfig:
          cacheSizeGB: 1
          statisticsLogDelaySecs: 0
          journalCompressor: snappy
          directoryForIndexes: false
        collectionConfig:
          blockCompressor: snappy
        indexConfig:
          prefixCompression: true
    
    systemLog:
      verbosity: 1
      path: "/var/log/mongodb/mongod.log" 
      logAppend: true
      logRotate: reopen
      destination: file
      timeStampFormat: iso8601-utc
    
    processManagement:
      fork: true
      pidFilePath: "/var/run/mongodb/mongod.pid" 
    
    net:
      bindIp: 127.0.0.1
      port: 27017
      wireObjectCheck: false
      unixDomainSocket:
        enabled: true
    
  4. Start monbodb service

    service mongodb start
    
  5. Restore the database from backup

    mongorestore /srv/backup/mongodb
    

That’s it.

To check what storage engine you’re using with your MongoDB, connect to the mongodb with mongo shell and run:

> db.serverStatus().storageEngine
{ "name" : "wiredTiger" }