En este artículo, obtendrás una visión general de cómo hacer copias de seguridad de las ediciones Couchbase Community y Enterprise en Ubuntu y cómo configurar una estrategia básica de copia de seguridad de Couchbase. 

Las secuencias de comandos y técnicas descritas aquí no están listas para la producción, es posible que todavía tenga que hacer algunas mejoras de acuerdo a su entorno para que sea tolerante a fallos.

También le recomiendo encarecidamente que lea la documentación oficial a la que se hace referencia en este artículo, ya que muchos parámetros opcionales no se mencionan.

 

Recomendaciones generales

 

Máquinas de reserva

Aunque en clusters con un volumen de datos pequeño y un número reducido de nodos se podría incluso utilizar uno de los nodos para realizar copias de seguridad de los datos durante las horas de menor actividad, es muy recomendable ejecutar siempre las copias de seguridad en una máquina externa que funcione dentro de la misma red.

No subestime la cantidad de memoria y CPU necesaria para ejecutar procesos de copia de seguridad sanos. Compartir la misma máquina puede afectar al rendimiento de su clúster y también hacen que las copias de seguridad fallen cuando no hay suficientes recursos disponibles.

Si necesita reducir los costes de funcionamiento de un servidor adicional para las copias de seguridad, la mayoría de los proveedores de nube le permiten programar cuándo debe iniciarse una instancia y, a continuación, en su script de copia de seguridad, puede apagar la máquina una vez que todo haya terminado. 

En Kubernetes, debería ser aún más fácil, ya que podría utilizar CronJobs para hacer prácticamente lo mismo o simplemente definir políticas de copia de seguridad si utiliza Couchbase Autonomous Operator.

 

Política de conservación

Tanto Incremental como acumulativo dependen de la última copia de seguridad completa. Por lo tanto, es importante recordar que no se pueden archivar copias de seguridad antiguas basándose únicamente en la fecha, sino que también hay que tener en cuenta sus dependencias.

Si tienes un SLA pequeño, también deberías plantearte dejar las últimas copias de seguridad en un almacenamiento en bloque de fácil acceso. Dependiendo del tamaño de tu base de datos y de la velocidad de la red, descargar datos de algún almacenamiento de objetos podría costarte unos minutos preciosos.

 

Pruebas de recuperación

Aunque es inviable probar todas y cada una de las copias de seguridad, es crucial contar con una estrategia recurrente de pruebas de copias de seguridad para comprobar su estado. Las copias de seguridad de prueba también te ayudan a familiarizarte con las herramientas de restauración de datos y a saber cuánto tiempo necesitarás para recuperar completamente la base de datos (dos cosas importantes que hay que saber cuando algo va mal).

Couchbase ya tiene internamente una serie de características que evitarán la pérdida de datos, por ejemplo, el número de réplicas para cada vBucket que se configura cuando creas el bucket por primera vez. Asumiendo que tu base de datos está correctamente configurada, los escenarios más probables en los que necesitarás recuperar la base de datos son :

  1. Si pierde más nodos que el número de réplicas. (Por ejemplo, ha configurado 2 réplicas pero ha perdido 3 nodos a la vez).
  2. Una operación que dejará inconsistente toda la base de datos (por ejemplo, se despliega una nueva versión de la aplicación con un error que actualiza/elimina un elevado número de registros ).

Preparación de la máquina de copia de seguridad

Si planea ejecutar sus copias de seguridad en una máquina dedicada, debe copiar el archivo papelera de su instalación de Couchbase a esta máquina, o simplemente instalar Couchbase en esta máquina también. Por ejemplo, en Ubuntu, debe ejecutar los siguientes comandos:

A continuación, deberá ejecutar el siguiente comando según su versión de Couchbase:

Comunidad Couchbase:

Couchbase para empresas

 

Después de esto, todos los archivos que necesitaremos para este artículo deberían estar bajo el directorio /opt/couchbase/bin carpeta ("/Aplicaciones/Couchbase Server.app/Contenidos/Recursos/couchbase-core/bin en Mac).

Para reducir los inconvenientes de referenciar el papelera en cada comando, te sugiero que lo añadas a la carpeta SENDERO o crear un enlace simbólico en la carpeta /usr/bin directorio:

Comunidad Couchbase:

Couchbase Enterprise:

 

 

Cómo hacer una copia de seguridad de Couchbase Community

Couchbase Community viene con dos herramientas principales para ayudarte a respaldar y restaurar los datos de tu cluster Couchbase: cbbackup y cbrestore. Ambas herramientas están disponibles en papelera de su instalación de Couchbase.

CBBACKUP tiene 3 modos principales:

      • completo - La completo realizará una copia de seguridad completa.
      • dif - (por defecto) dif realizará una copia de seguridad incremental diferencial, que copia sólo los cambios desde la última copia de seguridad completa o incremental.
      • accu - La accu realiza una copia de seguridad incremental acumulativa, que respalda todos los cambios desde la última copia de seguridad completa.

Una estrategia sencilla de copia de seguridad podría ser similar a la siguiente:

      • Copia de seguridad completa los domingos a la 1 de la madrugada;
      • Copias de seguridad incrementales diarias a la 1 de la madrugada;

Empecemos creando un script que ejecutará nuestra copia de seguridad completa, creará un archivo llamado full_backup_couchbase.sh con el siguiente contenido:

A continuación, vamos a utilizar CronTab para programar nuestra copia de seguridad completa, ejecute el siguiente comando:

Prensa "i" para entrar en el modo de edición y, a continuación, añada la siguiente línea:

Tenga en cuenta que tuUsuarioLocal se refiere al usuario local de la máquina, el script se ejecutará utilizando ese contexto. Guarda el archivo una vez que termines ("esc", luego ":wq" en caso de que no estés acostumbrado a vim)

Ahora, vamos a crear el script para ejecutar las copias de seguridad incrementales, la única diferencia aquí es el modo parámetro. Cree un archivo llamado incremental_backup_couchbase.sh y añada el siguiente contenido:

Añadamos también este script a la pestaña CronTab:

Y luego añade la siguiente línea:

El crontab anterior dice que este script se ejecutará de lunes a sábado a la 01 am. No olvides que ambos scripts deben ser ejecutables:

Ejecute ambos scripts para asegurarse de que funcionan correctamente. En la última sesión de este artículo, aprenderá a probar también su crontab.

 

 

Cómo hacer una copia de seguridad de Couchbase Enterprise

Couchbase Enterprise viene con una herramienta más completa llamada cbbackupmgr que te ofrece algunas funciones adicionales:

      • Compactación de copias de seguridad en un repositorio de copias de seguridad para liberar espacio en disco;
      • Lista el contenido del archivo de copia de seguridad;
      • Fusiona dos o más copias de seguridad;

Como ahora tenemos algunas funciones extra podríamos crear un script más elaborado que haga lo siguiente:

      1. Configure el directorio si aún no está configurado (cbbackupmgr config)
      2. Ejecutar una copia de seguridad completa/delta
      3. Fusionar copias de seguridad incrementales antiguas para recuperar espacio en disco

 Aquí tiene un script llamado backup_with_periodic_merge.sh que podría utilizar para hacer exactamente lo que se describe más arriba:

 

Para ejecutar el script puede especificar algo como lo siguiente:

Para evitar teclear este comando cada vez, vamos a crear un segundo script con todos los parámetros. Aquí un script llamado cb_incremental_backup.sh:

Aquí estoy asumiendo que ambos archivos se encuentran en la carpeta /home/ubuntu/scripts. Al final de la secuencia de comandos, también estoy usando Postfix para enviar un correo electrónico a un grupo de usuarios una vez que todo el proceso ha finalizado. Definitivamente hay mejores formas de monitorizar si tus copias de seguridad se han ejecutado correctamente, pero si todavía no tienes ninguna estrategia mejor, enviar un correo electrónico es al menos un tipo básico de monitorización.

Programar este script para que se ejecute usando crontab será muy similar a lo que hemos hecho en la edición community, simplemente ejecuta el siguiente comando:

Y luego añade la siguiente línea:

Tenga en cuenta que tuUsuarioLocal se refiere al usuario local de la máquina, el script se ejecutará utilizando ese contexto. Guarda el archivo una vez que termines ("esc", luego ":wq" en caso de que no estés acostumbrado a vim)

En cb_incremental_backup.sh ejecutará copias de seguridad incrementales todos los días a la 01 am. Le recomiendo que, además, ejecute copias de seguridad completas de vez en cuando para evitar tener una sola copia de seguridad completa con varias copias de seguridad incrementales.

Pruebe su CronTab

Puede probar rápidamente sus CronTabs utilizando cronitorBasta con ejecutar los siguientes comandos para instalarlo

A continuación, ejecute el siguiente comando para listar todos sus trabajos programados:

Navega por la lista con las teclas de flecha, elige la que quieras ejecutar y pulsa intro:

 

Si todo está correctamente configurado, su script debería ejecutarse con éxito.

 

 

 

Autor

Publicado por Denis Rosa, Defensor del Desarrollador, Couchbase

Denis Rosa es un Developer Advocate para Couchbase y vive en Munich - Alemania. Tiene una sólida experiencia como ingeniero de software y habla con fluidez Java, Python, Scala y Javascript. A Denis le gusta escribir sobre búsqueda, Big Data, AI, Microservicios y todo lo que pueda ayudar a los desarrolladores a hacer una aplicación hermosa, más rápida, estable y escalable.

Dejar una respuesta