在DataStax 6.8中进行备份和恢复数据的方法

简而言之

 

环境的准备

 

CREATE KEYSPACE dse_qiita_backup_restore WITH replication = {'class': 'NetworkTopologyStrategy', 'dc1': 2, 'dc2': 1};

CREATE TABLE user_by_email (
email TEXT,
password TEXT,
user_id UUID,
PRIMARY KEY ((email))
);

INSERT INTO dse_qiita_backup_restore.user_by_email (email, password, user_id) VALUES
('aaa@gmail.com', 'aaa', 00000000-0000-0000-0000-000123456789);
INSERT INTO dse_qiita_backup_restore.user_by_email (email, password, user_id) VALUES
('bbb@gmail.com', 'bbb', 00000000-0000-0000-0000-000123456790);
INSERT INTO dse_qiita_backup_restore.user_by_email (email, password, user_id) VALUES
('ccc@gmail.com', 'ccc', 00000000-0000-0000-0000-000123456791);

SELECT * FROM dse_qiita_backup_restore.user_by_email ALLOW FILTERING;

 email         | password | user_id
---------------+----------+--------------------------------------
 aaa@gmail.com |      aaa | 00000000-0000-0000-0000-000123456789
 ccc@gmail.com |      ccc | 00000000-0000-0000-0000-000123456791
 bbb@gmail.com |      bbb | 00000000-0000-0000-0000-000123456790

备份数据

 

nodetool snapshot dse_qiita_backup_restore
Requested creating snapshot(s) for [dse_qiita_backup_restore] with snapshot name [1662787611693] and options {skipFlush=false}
Snapshot directory: 1662787611693

恢复

 

node1
cqlsh > TRUNCATE dse_qiita_backup_restore.user_by_email
sudo sh -c 'cp /var/lib/cassandra/data/dse_qiita_backup_restore/user_by_email-b01545d130c811edba4925d1628f6955/snapshots/1662787611693/bb-* /var/lib/cassandra/data/dse_qiita_backup_restore/user_by_email-b01545d130c811edba4925d1628f6955'
sudo ls -al /var/lib/cassandra/data/dse_qiita_backup_restore/user_by_email-b01545d130c811edba4925d1628f6955/
total 48
drwxr-xr-x 4 cassandra cassandra 4096  9月 10 14:36 .
drwxr-xr-x 4 cassandra cassandra 4096  9月 10 14:23 ..
drwxr-xr-x 2 cassandra cassandra 4096  9月 10 14:23 backups
-rw-r--r-- 1 root      root        47  9月 10 14:36 bb-1-bti-CompressionInfo.db
-rw-r--r-- 1 root      root       106  9月 10 14:36 bb-1-bti-Data.db
-rw-r--r-- 1 root      root        10  9月 10 14:36 bb-1-bti-Digest.crc32
-rw-r--r-- 1 root      root        16  9月 10 14:36 bb-1-bti-Filter.db
-rw-r--r-- 1 root      root        73  9月 10 14:36 bb-1-bti-Partitions.db
-rw-r--r-- 1 root      root         0  9月 10 14:36 bb-1-bti-Rows.db
-rw-r--r-- 1 root      root      4733  9月 10 14:36 bb-1-bti-Statistics.db
-rw-r--r-- 1 root      root        94  9月 10 14:36 bb-1-bti-TOC.txt
drwxr-xr-x 3 cassandra cassandra 4096  9月 10 14:33 snapshots

sudo sstableloader -d 192.168.56.124 /var/lib/cassandra/data/dse_qiita_backup_restore/user_by_email-b01545d130c811edba4925d1628f6955

SELECT * FROM dse_qiita_backup_restore.user_by_email ALLOW FILTERING;

 email         | password | user_id
---------------+----------+--------------------------------------
 aaa@gmail.com |      aaa | 00000000-0000-0000-0000-000123456789
 ccc@gmail.com |      ccc | 00000000-0000-0000-0000-000123456791
 bbb@gmail.com |      bbb | 00000000-0000-0000-0000-000123456790

原本必须在所有节点上进行备份和恢复操作,但考虑到它只是冗余的操作,所以我们将取消它。

广告
将在 10 秒后关闭
bannerAds