![Cómo migrar MongoDB 2.6 a 3.0 con WiredTiger](https://rvso.com/image/1127639/C%C3%B3mo%20migrar%20MongoDB%202.6%20a%203.0%20con%20WiredTiger.png)
MongoDB 3.0 introduce un nuevo motor de almacenamiento llamado wiredTiger
que reduce considerablemente el uso de memoria y espacio en disco.
Dado que mi base de datos tiene actualmente ~20 millones de objetos y utiliza ~70 GB de RAM, esta actualización llega en el momento justo para posponer una actualización de hardware.
¿Cómo se migra una instalación existente de MongoDB 2.6 a 3.0 y al mismo tiempo se obtienen los beneficios de wiredTiger?
La documentación hace referencia a opciones que provocan errores de inicio que impiden que MongoDB se inicie. Además, las ubicaciones de los archivos no coinciden con las de Ubuntu (Servidor 14.04 LTS).
Respuesta1
En instalaciones predeterminadas, el archivo de configuración está en /etc/mongod.conf
. Lo que los documentos de MongoDB no mencionan es que al migrar a WiredTiger también necesitamos actualizar el archivo de configuración al nuevo formato YAML introducido en 2.6.
Hasta donde puedo decir, la engine
opción solo está disponible en el nuevo formato de configuración.
Migrar desde el antiguo motor de almacenamiento consiste en crear un volcado de base de datos, cerrar mongodb, cambiar la configuración y luego importar el volcado al nuevo motor de almacenamiento.
Crea una copia de seguridad. En serio. Necesitamos un volcado de base de datos que luego importaremos al nuevo motor de base de datos:
mongodump -d db_name /backup/path/
Detener el servicio mongodb
sudo service mongod stop
Mueva datos desde la ubicación actual a otro lugar (MongoDB no se iniciará si el directorio de datos contiene archivos generados por el motor de almacenamiento anterior).
sudo mv /var/lib/mongodb /var/lib/mongodb_26/
Actualice MongoDB a la versión 3.0 (desdehttp://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
Convierta el archivo de configuración del formato antiguo (anterior a 2.6) al formato YAML actual. El mínimo indispensable es:
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
Asegúrese de que no queden líneas en el formato anterior o MongoDB no se iniciará.
La documentación completa para el archivo de configuración se encuentra en:http://docs.mongodb.org/v3.0/reference/configuration-options/
Opcionalmente haga una copia de seguridad del registro:
sudo mv /var/log/mongodb/mongod.log /var/log/mongodb/mongod_26.log
Reiniciar mongodb
sudo service mongod start
Cargue la copia de seguridad para convertir los datos a un nuevo motor de almacenamiento
mongorestore /backup/location
Después de comprobar que todos sus datos están bien, puede eliminar el directorio con el formato de datos anterior.
sudo rm -r /var/lib/mongodb_26/
Tenga en cuenta que para conjuntos de réplicas y clústeres fragmentados existen algunos pasos adicionales:http://docs.mongodb.org/v3.0/release-notes/3.0-upgrade/?_ga=1.86531032.1131483509.1428671022#change-replica-set-storage-engine-to-wiredtiger
Respuesta2
Utilizando elformato de archivo de configuración antiguo, tuve éxito con:
motordealmacenamiento=Tigre cableado