Hace poco me topé con un vídeo que describe cómo alguien había tecleado accidentalmente el comando 'rm *' de linux durante la producción de la película Toy Story 2 y todos los gráficos, el trabajo artístico y los guiones "desaparecieron". Por suerte, tenían una copia de seguridad de los datos y los archivos se recuperaron. Si ves el vídeo a continuación, encontrarás algunas conclusiones de esta historia (que resulta ser real). Pero la más importante de la que quiero hablar es "HAGA RESPALDOS de sus datos".
Haga clic en la imagen para ver el vídeo.
Como muchos de vosotros, he perdido datos un par de veces como resultado de un comando accidentalmente mal colocado o circunstancias peores. En este blog, quiero mostrar cómo se puede utilizar la copia de seguridad y restauración en línea (cbbackup y cbrestore) en Couchbase Server para que no se pierda información en caso de un hardware grave, fallo de instalación o debido a un escenario accidental 'oops'.
cbbackup
El comando cbbackup te permite hacer copias de seguridad de todo el cluster de Couchbase, de un solo nodo o de un solo bucket, en un archivo que puedes restaurar cuando lo necesites en un cluster de Couchbase. Las operaciones de copia de seguridad y restauración se pueden realizar en un clúster Couchbase en vivo.

Para realizar una copia de seguridad de un clúster completo, compuesto por todos los buckets y todos los datos de los nodos:
shell> cbbackup https://HOST:8091 ~/backups
-u Administrador -p contraseña
'~/backups' es la ruta de la copia de seguridad, 'Administrator' y 'Password' son las credenciales del servidor.
Asumiendo que tienes 3 buckets en tu Cluster Couchbase - Default, gamesim-sample y beer-sample, la salida del cbbackup tendría el siguiente aspecto :

La estructura de carpetas dentro de la carpeta raíz de las copias de seguridad tendría el siguiente aspecto :

Hay una carpeta correspondiente a cada bucket de Couchbase Server (bucket-beer-sample, bucket-default, bucket-gamesim-sample). design.json captura los documentos de diseño en cada bucket de couchbase. Los archivos .cbb consisten en datos sin procesar exportados.
Para realizar una copia de seguridad de todos los datos de un único bucket, que contiene toda la información de todo el clúster:
shell> cbbackup https://HOST:8091 /backups/backup-20120501
-u Administrador -p contraseña
-b por defecto
'/backups/backup-20120501' es la ruta de la copia de seguridad, 'Administrator' y 'Password' son las credenciales del servidor, 'default' es el nombre del bucket.
Para hacer una copia de seguridad de todos los datos almacenados en un único nodo en todos los diferentes buckets:
shell> cbbackup https://HOST:8091 /backups/
-u Administrador -p contraseña
-nodo único
'/backups' es la ruta de la copia de seguridad, 'Administrator' y 'Password' son las credenciales del servidor, -single-node es la bandera.

Uso de varias instancias de cbbackup para escribir diferentes archivos de copia de seguridad en paralelo
Si tiene grandes conjuntos de datos, puede paralelizar y acelerar la copia de seguridad utilizando 1 proceso cbbackup por servidor couchbase.
Para hacer una copia de seguridad de los datos de un único bucket en un único nodo:
shell> cbbackup https://HOST:8091 /backups
-u Administrador -p contraseña
-nodo único
-b por defecto
'/backups' es la ruta de la copia de seguridad, 'Administrator' y 'Password' son las credenciales del servidor, 'default' es el nombre del bucket.
Ahora que has hecho una copia de seguridad de tus datos, ¿cómo puedes restaurarlos?
cbrestore
En cbrestore toma la información de la que se hizo copia de seguridad con cbbackup y la transmite al clúster para restaurarla.
Para restaurar un único bucket de datos en un clúster:
shell> cbrestore
~/backups
https://Administrator:password@HOST:8091
-bucket-source=XXX
Para restaurar los datos del bucket en otro bucket del cluster:
shell> cbrestore
~/backups
https://Administrator:password@HOST:8091
-bucket-source=XXX
-bucket-destination=YYYY
'/backups' es la ruta de la copia de seguridad, 'Administrator' y 'Password' son las credenciales del servidor. bucket-source y bucket-destination son los nombres de los buckets de origen y destino.

Uso de varias instancias de cbrestore para restaurar varios archivos en Couchbase Server
Aspectos a tener en cuenta
- Haz copias de seguridad de tus datos con frecuencia.
- Utilice una máquina separada para hacer copias de seguridad de los datos para reducir la tensión en su clúster couchbase en vivo. Aunque los comandos de copia de seguridad/restauración se pueden ejecutar mientras el sistema está en línea, puedes considerar ejecutar estos comandos durante las horas de menor carga desde una máquina separada.
¿Por qué es importante para el rendimiento?
La copia de seguridad se basa en el protocolo TAP. En función de la cantidad de memoria disponible y de la proporción de documentos residentes, puede ser necesario leer todo el conjunto de datos del disco y sobrecargar el sistema.
- Por último, no olvides probar tu estrategia de copias de seguridad para asegurarte de que funcionan cuando las necesites para recuperar datos.
- Sólo se realiza una copia de seguridad y se restauran los documentos de diseño, pero no los índices. Los índices se reconstruyen de forma incremental una vez restaurados los datos.
- Durante la restauración, puede especificar la opción -a en cbrestore para evitar sobrescribir elementos existentes. Esto insertará elementos sólo si no existen ya.
- Puedes filtrar las claves de las que se hace copia de seguridad utilizando la opción de copia de seguridad -k. Por ejemplo, para hacer una copia de seguridad de la información de un bucket cuyas claves tengan el prefijo 'object':
shell> cbbackup https://HOST:8091 /backups/backup-20120501
-u Administrador -p contraseña
-b por defecto
-k '^objeto.*'
¡Que aproveche!
