MongoDB: haciendo upgrade desde 2.4.X a 2.6.0 Fedora/CentOS

Hace algunos días atrás fue lanzada la nueva versión estable de MongoDB 2.6.0 que incluye mejoras y nuevos operadores uno de ellos que me ha gustado es $out que permite almacenar en otra colección de documentos el resultado de realizar una operación de agregación (aggregation pipeline). Para estar al día con todas estas nuevas mejoras es necesario actualizar nuestra instancia de MongoDB, por lo que debemos seguir estos sencillos pasos:

1. Descargamos el paquete que contiene la versión 2.6.0 en mi caso voy a usar el de 64 Bit y luego lo desempaquetamos:

wget -c http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.6.0.tgz
tar xvzf mongodb-linux-x86_64-2.6.0.tgz

2. Detenemos la instancia de MongoDB:

En Fedora 20: systemctl stop mongod.service

En CentOS 6.4: /etc/init.d/mongod stop

Actualizado (20/04/2014): Algunos cambios en la versión 2.6 pueden afectar la compatibilidad y en algunos casos requiere la manipulación por parte del usuario administrador. La shell de mongo en su versión 2.6 proporciona un método llamado db.upgradeCheckAllDBs() que realiza una comprobación permitiendo preparar la actualización para los cambios de versión. El paso siguiente es utilizar este metodo para preparar la actualización:

3. Copiamos como usuario root el archivo mongo contenido en el directorio "mongodb-linux-x86_64-2.6.0/bin" hacía "/bin" y lo reemplazamos:

cp -vf mongodb-linux-x86_64-2.6.0/bin/mongo /bin/mongo

4. Iniciamos la instancia de MongoDB 2.4 con la shell mongo 2.6:

En Fedora 20: systemctl start mongod.service

En CentOS 6.4: /etc/init.d/mongod start

5. Conectamos a la base de datos "admin", nos autenticamos si es necesario, y corremos el método db.upgradeCheckAllDBs():

mongo localhost:27017/admin
db.auth("tu_superusuario","tu_password")
db.upgradeCheckAllDBs()

Si no existe inconveniente deberás encontrarte con un mensaje:

Everything is ready for the upgrade!
true

6. Detenemos la instancia de MongoDB:

En Fedora 20: systemctl stop mongod.service

En CentOS 6.4: /etc/init.d/mongod stop

7. Como usuario root copiamos todo el contenido de "mongodb-linux-x86_64-2.6.0/bin" a nuestro directorio "/bin":

cp -vrf mongodb-linux-x86_64-2.6.0/bin/* /bin/

8. Comprobamos que los binarios se han copiado correctamente:

/bin/mongo --version
MongoDB shell version: 2.6.0

9. Iniciamos nuestra instancia de MongoDB:

En Fedora 20: systemctl start mongod.service

En CentOS 6.5: /etc/init.d/mongod start

Con estos sencillos 5 9 pasos tenemos nuestras instancias de MongoDB actualizadas. Estos cambios fueron efectuados sobre servidores con instancia de MongoDB con las siguientes características: MongoDB 2.4.7 corriendo sobre CentOS 6.4 32 Bit, MongoDB 2.4.9 corriendo sobre CentOS 6.5 64 Bit y MongoDB 2.4.10 corriendo sobre Fedora 20 64 Bit, por lo que si presentas algún problema a la hora de hacer upgrade, deja tu comentario y te ayudare!