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