Hasta ahora no he estado especificando un directorio de datos MongoDB y solo he tenido una partición primaria de 30 GB.
Me quedé sin espacio y agregué un nuevo disco duro. ¿Cómo puedo transferir mis datos (que aparentemente están en /var/lib/mongodb/
) y configurar MongoDB para que todo salga del nuevo disco sin afectar mi instalación existente?
mongodb
filepath
data-files
Mark Gill
fuente
fuente
sudo chmod o+rx /media
por ejemplo, si su punto de montaje esmedia
. R + x debe estar disponible para los 'otros' grupos y usuarios desde el primer punto de montaje.Respuestas:
La respuesta corta es que el
--dbpath
parámetro en MongoDB le permitirá controlar desde qué directorio MongoDB lee y escribe sus datos.Comenzaría mongodb y pondría los archivos
/usr/local/mongodb-data
.Dependiendo de su distribución y la instalación de MongoDB, también puede configurar el
mongod.conf
archivo para hacer esto automáticamente:Los paquetes oficiales de Linux 10gen ( Ubuntu / Debian o CentOS / Fedora ) se entregan con un archivo de configuración básica que se coloca
/etc/mongodb.conf
, y el servicio MongoDB lo lee cuando se inicia. Podrías hacer tu cambio aquí.fuente
/etc/mongodb.conf
por esta solución. Luego, después de comenzarmongod
, vi que/data/db
se usaba. ¿Por qué la actualización de mongodb.conf no afectó dónde mongod almacenó el db? (Tenga en cuenta que usar el--dbpath
argumento funcionó./etc/mongodb.conf
y la actualización que funciona bien para mí.chown
dirigido al usuario mongod para los scripts de inicio del servicio.Lo resolvió en 2 minutos de tiempo de inactividad :)
Simplemente mueva su carpeta, agregue enlace simbólico y luego ajuste los permisos.
fuente
chmod -R o+x /<home>
. ver: stackoverflow.com/a/38193187/205049Permission denied: "/var/lib/mongodb"
Así es como /home/../mongodb/mongodb/ se ve así:drwxrwxr-x 3 mongodb mongodb 4096 oct 13 09:32 ../ drwxr-xr-x 2 mongodb nogroup 4096 oct 13 09:29 journal/ -rw------x 1 mongodb nogroup 67108864 sep 23 14:44 local.0* -rw------x 1 mongodb nogroup 16777216 sep 23 14:44 local.ns* -rwxr-xr-x 1 mongodb mongodb 0 oct 13 09:29 mongod.lock*
mv
comando, si ejecuta el comando mv desde lib, ya no tiene mongodbln
paraEl siguiente comando funcionará para usted, si desea cambiar la ruta predeterminada. Simplemente escriba esto en el directorio bin de mongodb.
En caso de que también desee mover datos existentes, simplemente copie todas las carpetas del directorio data \ db existente al nuevo directorio antes de ejecutar el comando.
Y también detenga los servicios existentes de mongodb que se están ejecutando.
fuente
Cree un archivo llamado mongod.cfg en la carpeta MongoDB si no lo tiene. En mi caso: C: \ Users \ ivanbtrujillo \ MongoDB
Luego, edite mongod.cfg con el bloc de notas y agregue una línea con lo siguiente (nuestro dbpath personalizado):
En este archivo también debe especificar la ruta de acceso. Mi archivo mongod.cfg es:
Si utiliza mongoDB como servicio de Windows, debe cambiar esta clave y especificar el archivo mongod.cfg.
Para instalar mongodb como un servicio de Windows, ejecute este comando:
Abra regedit.exe y vaya a la siguiente ruta:
El servicio MongoDB no funciona, tenemos que editar la clave ImagePath, eliminar su contenido y poner lo siguiente:
Le indicamos a mongo su archivo de configuración y su ruta de acceso.
Luego, cuando inicia el servicio mongodb, funciona.
Aquí hay un tutorial completo para instalar mongoDB en Windows: http://ivanbtrujillo.herokuapp.com/2014/07/24/installing-mongodb-as-a-service-windows/
Espero eso ayude,
fuente
Copie el contenido de
/var/lib/mongodb
a/data/db
. Los archivos que debe buscar deben tener nombres comoyour_db_name.ns
yyour_dbname.n
dónden
hay un número que comienza con 0. Si no ve esos archivos debajo/var/lib/mongodb
, búsquelos en su sistema de archivos.Una vez copiado, úselo
--dbpath=/data/db
al iniciar MongoDB mediante elmongod
comando.fuente
Esto es lo que hice, espero que sea útil para cualquier otra persona:
Pasos:
/etc/rc.d/rc.mongod stop
, si usa algo más, como systemd, debe verificar su documentación sobre cómo hacerlomkdir /mnt/database
chown mongodb:mongodb -R /mnt/database/mongodb
) - gracias @DanailGabenski.cp -R /var/lib/mongodb/ /mnt/database/
rm -rf /var/lib/mongodb/
ln -s /mnt/database/mongodb /var/lib/mongodb
/etc/rc.d/rc.mongod start
mongo
conectarse a su base de datos para ver si todo está bien)No es necesario decir que debe tener cuidado al hacer esto, especialmente con,
rm -rf
pero creo que esta es la mejor manera de hacerlo.Nunca debe intentar copiar el directorio de la base de datos mientras mongod se está ejecutando, porque puede haber servicios que escriben / leen desde él que cambiarán el contenido de su base de datos.
fuente
chown mongodb:mongodb -R /mnt/database/mongodb
Si se instala a través
apt-get
de Ubuntu 12.04, no se olvidechown -R mongodb:nogroup /path/to/new/directory
. Además, cambie la configuración en/etc/mongodb.conf
.Como recordatorio, el
mongodb-10gen
paquete ahora se inicia a través del arranque, por lo que el script de configuración está en/etc/init/mongodb.conf
Acabo de pasar por esto, espero que los googlers lo encuentren útil :)
fuente
Para mí, el usuario era en
mongod
lugar demongodb
sudo chown mongod:mongod /newlocation
Puede ver los registros de errores si el servicio falla:
/var/log/mongodb/mongod.log
fuente
En debian / ubuntu, deberá editar el script /etc/init.d/mongodb. Realmente, este archivo debería extraer la configuración de /etc/mongodb.conf pero no parece extraer el directorio predeterminado (probablemente un error)
Esto es un truco, pero al agregarlos al script, comenzó correctamente:
añadir:
cambio:
a:
fuente