Pregunta

Estamos buscando en CouchdDB una aplicación tipo CMS.¿Cuáles son algunos patrones comunes, mejores prácticas y consejos sobre el flujo de trabajo relacionados con la copia de seguridad de nuestra base de datos de producción?

Estoy particularmente interesado en el proceso de clonación de la base de datos para usarla en desarrollo y pruebas.

¿Es suficiente simplemente copiar los archivos en el disco desde una instancia en ejecución en vivo?¿Se pueden clonar datos de bases de datos entre dos instancias en ejecución en vivo?

Se agradecerán mucho los consejos y la descripción de las técnicas que utiliza.

¿Fue útil?

Solución

CouchDB admite la replicación, así que simplemente replique en otra instancia de CouchDB y haga una copia de seguridad desde allí, evitando alterar dónde escribe los cambios.

http://wiki.apache.org/couchdb/FrequencyAskedQuestions#how_replication

Literalmente envías una solicitud POST a tu instancia de CouchDB diciéndole dónde replicar, y funciona (tm).

EDITAR:Puede simplemente extraer los archivos de la base de datos en ejecución siempre que pueda aceptar el acceso de E/S.

Otros consejos

Otra cosa a tener en cuenta es que puede copiar archivos desde una base de datos activa.Dado que es posible que tenga una base de datos grande, puede simplemente copiarla OOB desde su máquina de prueba/producción a otra máquina.

Dependiendo de la carga de escritura de las máquinas, puede ser recomendable activar una replicación después de la copia para recopilar cualquier escritura que estuviera en progreso cuando se copió el archivo.Pero la replicación de unos pocos registros seguiría siendo más rápida que la replicación de toda la base de datos.

Para referencia ver: http://wiki.apache.org/couchdb/FilesystemBackups

CouchDB también funciona muy bien con instantáneas de sistemas de archivos que ofrecen los sistemas de archivos modernos como ZFS.Dado que el archivo de la base de datos siempre está en un estado consistente, puede tomar la instantánea del archivo en cualquier momento sin debilitar las garantías de integridad proporcionadas por CouchDB.

Esto da como resultado casi ninguna sobrecarga de E/S.En caso de que tenga, p.Si eliminó accidentalmente un documento de la base de datos, puede mover la instantánea a otra máquina y extraer allí los datos que faltan.Es posible que incluso pueda replicar en la base de datos de producción, pero nunca lo he intentado.

Pero asegúrese siempre de utilizar exactamente las mismas revisiones de CouchDB cuando mueva archivos de bases de datos.El formato en disco todavía está evolucionando de manera incompatible.

Me gustaría apoyar la sugerencia de Paul:Justo cp sus archivos de base de datos desde debajo del servidor en vivo si puede soportar el impacto de la carga de E/S.Si ejecuta una copia replicada de todos modos, también puede copiarla de forma segura, sin afectar el rendimiento de su maestro.

La replicación de CouchDB es horrible.generalmente lo hago alquitrán que es mucho mejor.

  1. Detenga el servicio CouchDB en el host de origen
  2. tar.gz los archivos de datos.
  3. En mis servidores Ubuntu, esto suele estar en /var/lib/couchdb (a veces en un subdirectorio basado en la versión Couch).Si no está seguro de dónde están estos archivos, puede encontrar la ruta en sus archivos de configuración de CouchDb o, a menudo, haciendo ps -A w para ver el comando completo que inició CouchDb.Asegúrese de obtener los subdirectorios que comienzan con . cuando archivas los archivos.
  4. Reinicie el servicio CouchDB en el host de origen.
  5. scp el archivo tar.gz al host de destino y descomprímalo en una ubicación temporal allí.
  6. chown los archivos al usuario y grupo propietario de los archivos que ya se encuentran en el directorio de la base de datos en el destino.Probablemente se trate de CouchDB: CouchDB.Esto es importante, ya que alterar los permisos de los archivos es la única forma en que he logrado arruinar este proceso hasta ahora.
  7. Detenga CouchDB en el host de destino.
  8. cp los archivos en el directorio de destino.Nuevamente en mis hosts esto ha sido /var/lib/couchdb.
  9. Verifique dos veces los permisos de archivos en su nuevo hogar.
  10. Reinicie CouchDB en el host de destino.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top