は私がnode1上カサンドラ容器内複製因子3は、私はカサンドラ3.7コンテナ内に設置し、kubernetes によって管理されているすべての時間
で鍵空間のcathy1を作成し、私はキースペースcathy1を作成したデータを復元しない復元します以下のように:
CREATE KEYSPACE cathy1 WITH replication = {'class':'SimpleStrategy', 'replication_factor' : 3};
CREATE TABLE cathy1.employees(emp_id int PRIMARY KEY,emp_name text);
INSERT INTO cathy1.employees(emp_id,emp_name) VALUES (1,'cathy');
INSERT INTO cathy1.employees(emp_id,emp_name) VALUES (2,'jon');
ので、各ノードはデータ
の100%を所有している私は、各ノードにcqlsh -f list_tables
を実行します
emp_id | emp_name
--------+----------
1 | cathy
2 | jon
(2 rows)
:私はこれを含むcassandra/data/cathy1/employees* /snapshots
下のディレクトリmycathy1-node2
を参照してください
nodetool snapshot -t mycathy1-node2 cathy1
:
-rw-r--r-- 1 root root 32 Oct 18 20:27 manifest.json
-rw-r--r-- 2 root root 43 Oct 18 20:22 mb-12-big-CompressionInfo.db
-rw-r--r-- 2 root root 96 Oct 18 20:22 mb-12-big-Data.db
-rw-r--r-- 2 root root 9 Oct 18 20:22 mb-12-big-Digest.crc32
-rw-r--r-- 2 root root 16 Oct 18 20:22 mb-12-big-Filter.db
-rw-r--r-- 2 root root 32 Oct 18 20:22 mb-12-big-Index.db
-rw-r--r-- 2 root root 4610 Oct 18 20:23 mb-12-big-Statistics.db
-rw-r--r-- 2 root root 56 Oct 18 20:22 mb-12-big-Summary.db
-rw-r--r-- 2 root root 92 Oct 18 20:22 mb-12-big-TOC.txt
その後、私はテーブル
cqlsh -e "truncate cathy1.employees"
を切り捨てます
emp_id | emp_name
--------+----------
(0 rows)
私はノード2の修復を実行します。
その瞬間、任意のノード
にcassandra/data/cathy1/employees*
下のファイルがないスナップショットのみのディレクトリには、私は、各ノード上でcqlsh -f list_tables
を実行
まま:
nodetool repair cathy1
が正常
を終了
emp_id | emp_name
--------+----------
(0 rows)
私はnodetool repair cathy1
を実行して、まだデータ表示があります:そして、まだノード2
cd cassandra/data/employees*
cp ./snapshots/mycathy1-node2/* .
-rw-r--r-- 1 root root 32 Oct 18 20:34 manifest.json
-rw-r--r-- 1 root root 43 Oct 18 20:34 mb-12-big-CompressionInfo.db
-rw-r--r-- 1 root root 96 Oct 18 20:34 mb-12-big-Data.db
-rw-r--r-- 1 root root 9 Oct 18 20:34 mb-12-big-Digest.crc32
-rw-r--r-- 1 root root 16 Oct 18 20:34 mb-12-big-Filter.db
-rw-r--r-- 1 root root 32 Oct 18 20:34 mb-12-big-Index.db
-rw-r--r-- 1 root root 4610 Oct 18 20:34 mb-12-big-Statistics.db
-rw-r--r-- 1 root root 56 Oct 18 20:34 mb-12-big-Summary.db
-rw-r--r-- 1 root root 92 Oct 18 20:34 mb-12-big-TOC.txt
drwxr-xr-x 16 root root 4096 Oct 18 20:29 snapshots
に続いて、私は、各ノード上でcqlsh -f list_tables
を実行nodetool refresh employees
を実行します! !!!!
Pending Flushes: 0 <br>
Table: employees <br>
Space used (live): 4954 <br>
Space used (total): 4954 <br>
Space used by snapshots (total): 59873 <br>
Off heap memory used (total): 32 <br>
SSTable Compression Ratio: 0.75 <br>
**Number of keys (estimate): 4** <br>
統計がテーブル内の4つのキーcqlsh
と、まだデータがない目に見えるcathy1.employees
nodetool flush cathy1
があると言う場合でも、それはなぜですか?
は、なぜ私はsstableloaderを実行する必要がありますか?ドキュメンテーションによると、nodetool refreshは同じことをします。 –
表の従業員のためにcfstatsのキーが表示されるのはなぜですか?*は選択されていません。 –
データのバックアップと復元には、さまざまな方法があります。スナップショットを作成することなくデータをバックアップおよび復元することができます(COPY TO CSVおよびCOPY FROM CSV)。私にとっては、sstableloaderの助けを借りて、スナップショットを使ってデータを正常にバックアップおよび復元しました。それはうまく動作します。 –