こんちゃ(´・ω・)ノ
Cassandraのバックアップおよびリカバリ(リストア)について記載する。
【バックアップ】
Cassandraのnodetoolスクリプトを使用して、スナップショットでバックアップを取得する。スナップショットではSSTableのデータのみバックアップのため、MemTableにデータがある場合はFlush等のSSTableに移す作業をしておくと安全。
※一応スナップショット時にflushが実行されるらしいようなことを見た気がするが、念のためね。
■Cassandraのフラッシュ
$ {CASSANDRA_HOME}/bin/nodetool -h {対象ノードのIPアドレス} flush |
■Cassandraのスナップショット
$ {CASSANDRA_HOME}/bin/nodetool -h {対象ノードのIPアドレス} snapshot -t {スナップショット名} |
(補足)
・スナップショットはcassandra.yamlの「data_file_directories」で指定したディレクトリの場所に出力される。標準では「/var/lib/cassandra/data/{Keyspace}/{ColumnFamily}/snapshot」
・sstable2json、json2sstableスクリプトを用いてJSON形式でのインポート・エクスポートもできる。
【リカバリ(リストア)】
(1) ノード(Cassandra)を停止する。
(2) CommitLogを削除する。
「/var/lib/cassandra/commit_log」配下のファイルを削除。
(3) SSTableを削除する。
「/var/lib/cassandra/data/{Keyspace}/{ColumnFamily}/ 」の各dbファイルを削除
(4) スナップショットの各dbファイルをコピーする。
「/var/lib/cassandra/data/{Keyspace}/{ColumnFamily}/snapshot」の場所にあるdbファイルを
「/var/lib/cassandra/data/{Keyspace}/{ColumnFamily}/」にコピーする。
(5) ノード(Cassandra)を起動する。
【スナップショットの削除】
$ {CASSANDRA_HOME}/bin/nodetool -h {対象ノードのIPアドレス} clearsnapshot -t {スナップショット名} |
【Cassandra】
・
Cassandra - 概要 -・
Cassandra - データモデル -・
Cassandra - 読み込み・書き込みのアーキテクチャ -・
Cassandra - ディレクトリ構成 -・
Cassandra - CLI操作 -・
Cassandra - バックアップ・リカバリ -・
Cassandra - 使用ポート番号 -[1回]
PR
COMMENT