Copia de seguridad y restauración de datos en Cassandra

En este artículo, discutiremos cómo podemos hacer una copia de seguridad y restaurar nuestros datos y también discutiremos de cuántas maneras podemos restaurar nuestros datos en Cassandra . Podemos restaurar nuestros datos usando una instantánea y usando la utilidad sstableloader y usando una actualización de nodetool.

Vamos a discutir uno por uno.

Primero, vamos a crear un espacio de claves para hacer una copia de seguridad de los datos. Analicemos esto con un ejercicio de muestra.

Crear un espacio de claves:

create keyspace backup_copy 
with replication = { 'class' : 'SimpleStrategy', 
                     'replication_factor': 2 }; 

Ahora, aquí estamos usando el espacio de claves backup_copy.

use backup_copy ;  

Ahora, vamos a crear la tabla con fines de copia de seguridad. En la siguiente consulta de CQL, facebook_user es un nombre de tabla en el que los campos son login_time, user_name y post.
Echemos un vistazo.

create table facebook_user
 (
  login_time timeuuid primary key, 
  user_name text, 
  post set<text>
 ); 

Veamos el esquema de la tabla.

describe table facebook_user; 

Producción:

Ahora, vamos a insertar algunos datos con fines de copia de seguridad y restauración. echemos un vistazo.

Insert into facebook_user(login_time, user_name, post) 
values(now(), 'Ashish', {'join webinar at 10:00 am'});

Insert into facebook_user(login_time, user_name, post) 
values(now(), 'Rana', {'join Cassandra meetup at 10:00 am'}); 

Ahora, verifiquemos que los registros se hayan conservado correctamente con el comando de selección. echemos un vistazo.

select * 
from facebook_user; 

Producción:

Para tomar una instantánea, necesitamos usar la utilidad nodetool:

nodetool -h localhost -p 7199 snapshot facebook_user 

Aquí, 7199 es un número de puerto.

Solicitó la creación de una instantánea para facebook_user.

Snapshot directory: 1205514051242

El resultado muestra que la ejecución de la instantánea de nodetool en un Node local ha creado una instantánea 1205514051242 en la carpeta $CASSANDRA_DATA_DIR/backup_copy/facebook_user. Aquí $CASSANDRA_DATA_DIR es el valor definido en el archivo Cassandra.yaml para las propiedades de data_file_directories

Para restaurar datos primero necesitamos eliminar algunos datos que podemos restaurar. echemos un vistazo.

truncate facebook_user; 

Restaure los datos usando la utilidad sstableloader:
para comenzar, necesitamos copiar todos los archivos .db en el directorio Snapshot en una carpeta que debe estar sincronizada con el esquema de la base de datos, es decir, el espacio de claves/nombre de la tabla. Aquí, en nuestro caso, debería ser la carpeta del usuario facebook_user en backup_copy (/home/Ashish/backup_copy/facebook_user).

Ahora, ejecutemos el sstableloader.

$CASSANDRA_HOME/bin/sstableloader -d localhost /home/Ashish/backup_copy/facebook_user 

Ahora, así es como se ejecutará. echemos un vistazo.

Established connection to initial hosts
Opening sstables and calculating sections to stream
Streaming relevant part of /home/Ashish/backup_copy/facebook_user/facebook_user-jb-1-Data.db to
[/127.0.0.1, /127.0.0.2, /127.0.0.3]
progress: [/127.0.0.2 1/1 (100%)] [/127.0.0.3 1/1 (100%)] [total: 100% - 0MB/s (avg: 0MB/s)] 

Una vez que se completa, podemos verificar si los datos se han restaurado ejecutando el comando de selección.
Una vez que se completa la consulta de CQL anterior, podemos verificar si los datos se han restaurado utilizando la siguiente consulta de CQL que se proporciona a continuación.

select * 
from backup_copy.facebook_user; 

Producción:

Uso de la actualización de nodetool:
esta es una de las formas en que podemos restaurar nuestros datos mediante la utilidad de actualización de nodetool y es diferente del método sstableloader. En esto, necesitamos copiar manualmente los archivos .db en el directorio de datos de Cassandra.

Para ejecutar el comando de actualización de nodetool, use la siguiente consulta de CQL que se proporciona a continuación. echemos un vistazo.

$CASSANDRA_HOME/bin/nodetool refresh backup_copy facebook_user 

Usando clearsnapshot:

$CASSANDRA_HOME/bin/nodetool -h localhost -p 7199 clearsnapshot 

Publicación traducida automáticamente

Artículo escrito por Ashish_rana y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *