0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Datastax 6.8でのバックアップの取得と復旧

Posted at

概要

今回はDSE6.8でのバックアップとリストアについて確認していきます。
流れとしては以下になります。
環境の準備→バックアップ→リストア
ということで、まず環境の準備をしていきましょう。

環境の準備

今回は3台のノードを準備し、1つのノードを構成しています。
また、直接的には関係してこないですが、DCを2つに分けています。
下ではkeyspaceを作成し、emailカラムをパーティションキーに指定しテーブルを作成して、そのあと3件INSERTしています。
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

バックアップの取得

では次にバックアップを取得します。
DSEではバックアップはnodetoolユーティリティを使用して取得します。
ここで注意したいのが、OracleのようなバックアップとDSEのバックアップは根本から異なってくるということです。
DSEのバックアップはdataファイルのハードリンクを取得するスナップショットなので非常に高速です。
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

リストア

今回バックアップは取得していますが、リストアされたかわかるようにTRUNCATEでデータをいったん消しておきます。
リストアの流れは以下の通りです。
snapshotのフォルダから同テーブルのデータファイルを持つフォルダにファイルをコピーしてくる。

sstableloaderを利用してリストアする。
*今回TRUNCATEしているのでsnapshotフォルダ以下のTRUNCATE-user_by_email-*は削除しています。しかし、このようにTRUCATEなどをしたときは自然とバックアップが取られることが分かります。
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

本来バックアップの取得からリストアまではすべてのノードで実施する必要がありますが、冗長だけなのでカットします。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?