Question :
I cannot use wiredTiger
as a service for MongoDB
.
I followed this step by step guide;
http://docs.mongodb.org/manual/release-notes/3.0-upgrade/
Step-1: Start 3.0 mongod.OK, I did.
Step-2: Export the data using mongodump. OK
Step-3: Create data directory for WiredTiger. OK – user permissions were adjusted.
Step-4: Restart the mongod with WiredTiger. OK
mongod --storageEngine wiredTiger --dbpath <newWiredTigerDBPath>
And yes, mongod
worked. But the Step-5
says that “Upload the exported data using mongorestore.” However my console remains busy and says “waiting for connections on port 27017” because the last command does not include a service like service mongod start
.
Then I tried editing my /etc/mongod.conf
file to run as a service. But I couldn’t. I added wiredTiger directory as dbpath but I guess I need to edit /etc/init/mongod.conf
file because it contains some codes that change the permissions of the db directory.
After spending 8 hours, I don’t think there’s sufficient documentation to help,
so I’d like to ask;
What should I do in order to be able to use wiredTiger with MongoDB?
I’m wondering if there’s anybody who has managed to achieve this?
console
Edit on 2015-04-01:
I tried change-storage-engine-to-wiredtiger section that is on the documentation.
Answer :
I wasn’t able to use wiredTiger upgrading MongoDB. However, at May 17
I uninstalled MongoDB 2.6 then installed MongoDB 3.0.3 . Immediate after the installation, I added storageEngine=wiredTiger
on top of my mongod.conf file. Then I gave sudo service mongod start
command and eventually I could.
Edit:
For fresh installed as directed by official documentation;
- Open configuration file using
sudo nano /etc/mongod.conf
- Change the
# engine
line toengine: wiredTiger
like the below - Run mongod using the command
sudo service mongod start
.
# Where and how to store data.
storage:
dbPath: /var/lib/mongodb
journal:
enabled: true
engine: wiredTiger
# mmapv1:
# wiredTiger:
Edit:
If the current version is supported the wiredTiger;
- Get the backup of the current database using mongodump command
- Stop the mongod service using
sudo service mongod stop
command - Add
storageEngine=wiredTiger
text as the first line ofmongod.conf
file - Delete the all file on
/var/lib/mongodb
(or/data/db
folder if used)
[This is important. Because MongoDB cannot convert the current MMAP db files to wiredTiger format] - Start the mongod service using
sudo service mongod start
command - Restore the database from the backup using [mongorestore][2] command
- wiredTiger is being used…
Steps for migrating 2.6 to 3.0 on Ubuntu and using the new WiredTiger storage engine:
-
Backup current database:
mongodump --out final_2.6_backup
-
Stop mongodb service:
service mongodb stop
-
Remove current database files:
rm -rf /var/lib/mongodb/*
-
Edit /etc/mongod.conf to use the new storage engine:
storageEngine=wiredTiger
-
Start mongodb:
service mongodb start
-
Restore database:
mongorestore final_2.6_backup
I use wiredTiger in a sharded cluster. I find it easier to roll a hidden node into each replica set and then swap the 4th node with a secondary.
I then:
1. stop the MongoDB service on the now 4th node
2. restart the instance, as a service, pointed to the new dbpath for and the storageengine option set to wiredTiger.
3. wait for the node to synch.
4. drop the old dbpath
I repeat that step until all nodes are up to date.
- If you are not using a replica set, it does appear you are limited to using mongodump and mongorestore. We have way too much data to rely on those tools. They take too long to execute.