Cassandra 文件

版本

您正在檢視預發行版本的說明文件。

sstableupgrade

將指定表格 (或快照) 中的 sstable 升級到 Cassandra 的目前版本。此程序通常在 Cassandra 版本升級後執行。此操作會將指定表格中的 sstable 重新寫入,以符合目前安裝的 Cassandra 版本。sstableupgrade 指令也可以用來將 sstable 降級到舊版本。

快照選項只會升級指定的快照。在嘗試還原在比 Cassandra 目前執行的主要版本更舊的主要版本中拍攝的快照之前,必須先升級快照。這將取代指定快照中的檔案,並中斷與實際 sstable 的任何硬連結。

在執行此工具之前,必須先停止 Cassandra,否則會發生意外結果。注意:指令碼不會驗證 Cassandra 是否已停止。

用法

sstableupgrade <選項> <鍵空間> <表格> [快照名稱]

--debug

顯示堆疊追蹤

-h,--help

顯示此說明訊息

-k,--keep-source

不要刪除來源 sstable

將表格重新寫入目前的 Cassandra 版本

從 Cassandra 的一個版本中的一組 sstable 開始

ls -al /tmp/cassandra/data/keyspace1/standard1-9695b790a63211e8a6fb091830ac5256/
...
-rw-r--r--   1 user  wheel      348 Aug 22 13:45 keyspace1-standard1-ka-1-CRC.db
-rw-r--r--   1 user  wheel  5620000 Aug 22 13:45 keyspace1-standard1-ka-1-Data.db
-rw-r--r--   1 user  wheel       10 Aug 22 13:45 keyspace1-standard1-ka-1-Digest.sha1
-rw-r--r--   1 user  wheel    25016 Aug 22 13:45 keyspace1-standard1-ka-1-Filter.db
-rw-r--r--   1 user  wheel   480000 Aug 22 13:45 keyspace1-standard1-ka-1-Index.db
-rw-r--r--   1 user  wheel     9895 Aug 22 13:45 keyspace1-standard1-ka-1-Statistics.db
-rw-r--r--   1 user  wheel     3562 Aug 22 13:45 keyspace1-standard1-ka-1-Summary.db
-rw-r--r--   1 user  wheel       79 Aug 22 13:45 keyspace1-standard1-ka-1-TOC.txt

在升級 Cassandra 版本後,升級 sstable

sstableupgrade keyspace1 standard1
Found 1 sstables that need upgrading.
Upgrading BigTableReader(path='/var/lib/cassandra/data/keyspace1/standard1-9695b790a63211e8a6fb091830ac5256/keyspace1-standard1-ka-1-Data.db')
Upgrade of BigTableReader(path='/var/lib/cassandra/data/keyspace1/standard1-9695b790a63211e8a6fb091830ac5256/keyspace1-standard1-ka-1-Data.db') complete.

ls -al /tmp/cassandra/data/keyspace1/standard1-9695b790a63211e8a6fb091830ac5256/
...
drwxr-xr-x   2 user  wheel       64 Aug 22 13:48 backups
-rw-r--r--   1 user  wheel      292 Aug 22 13:48 mc-2-big-CRC.db
-rw-r--r--   1 user  wheel  4599475 Aug 22 13:48 mc-2-big-Data.db
-rw-r--r--   1 user  wheel       10 Aug 22 13:48 mc-2-big-Digest.crc32
-rw-r--r--   1 user  wheel    25256 Aug 22 13:48 mc-2-big-Filter.db
-rw-r--r--   1 user  wheel   330807 Aug 22 13:48 mc-2-big-Index.db
-rw-r--r--   1 user  wheel    10312 Aug 22 13:48 mc-2-big-Statistics.db
-rw-r--r--   1 user  wheel     3506 Aug 22 13:48 mc-2-big-Summary.db
-rw-r--r--   1 user  wheel       80 Aug 22 13:48 mc-2-big-TOC.txt

將表格重新寫入目前的 Cassandra 版本,並保留舊版本的表格

同樣地,從一個版本中的一組 sstable 開始

ls -al /tmp/cassandra/data/keyspace1/standard1-db532690a63411e8b4ae091830ac5256/
...
-rw-r--r--   1 user  wheel      348 Aug 22 13:58 keyspace1-standard1-ka-1-CRC.db
-rw-r--r--   1 user  wheel  5620000 Aug 22 13:58 keyspace1-standard1-ka-1-Data.db
-rw-r--r--   1 user  wheel       10 Aug 22 13:58 keyspace1-standard1-ka-1-Digest.sha1
-rw-r--r--   1 user  wheel    25016 Aug 22 13:58 keyspace1-standard1-ka-1-Filter.db
-rw-r--r--   1 user  wheel   480000 Aug 22 13:58 keyspace1-standard1-ka-1-Index.db
-rw-r--r--   1 user  wheel     9895 Aug 22 13:58 keyspace1-standard1-ka-1-Statistics.db
-rw-r--r--   1 user  wheel     3562 Aug 22 13:58 keyspace1-standard1-ka-1-Summary.db
-rw-r--r--   1 user  wheel       79 Aug 22 13:58 keyspace1-standard1-ka-1-TOC.txt

升級 Cassandra 版本後,升級 sstable,保留原始 sstable

sstableupgrade keyspace1 standard1 -k
Found 1 sstables that need upgrading.
Upgrading BigTableReader(path='/var/lib/cassandra/data/keyspace1/standard1-db532690a63411e8b4ae091830ac5256/keyspace1-standard1-ka-1-Data.db')
Upgrade of BigTableReader(path='/var/lib/cassandra/data/keyspace1/standard1-db532690a63411e8b4ae091830ac5256/keyspace1-standard1-ka-1-Data.db') complete.

ls -al /tmp/cassandra/data/keyspace1/standard1-db532690a63411e8b4ae091830ac5256/
...
drwxr-xr-x   2 user  wheel       64 Aug 22 14:00 backups
-rw-r--r--@  1 user  wheel      348 Aug 22 13:58 keyspace1-standard1-ka-1-CRC.db
-rw-r--r--@  1 user  wheel  5620000 Aug 22 13:58 keyspace1-standard1-ka-1-Data.db
-rw-r--r--@  1 user  wheel       10 Aug 22 13:58 keyspace1-standard1-ka-1-Digest.sha1
-rw-r--r--@  1 user  wheel    25016 Aug 22 13:58 keyspace1-standard1-ka-1-Filter.db
-rw-r--r--@  1 user  wheel   480000 Aug 22 13:58 keyspace1-standard1-ka-1-Index.db
-rw-r--r--@  1 user  wheel     9895 Aug 22 13:58 keyspace1-standard1-ka-1-Statistics.db
-rw-r--r--@  1 user  wheel     3562 Aug 22 13:58 keyspace1-standard1-ka-1-Summary.db
-rw-r--r--@  1 user  wheel       79 Aug 22 13:58 keyspace1-standard1-ka-1-TOC.txt
-rw-r--r--   1 user  wheel      292 Aug 22 14:01 mc-2-big-CRC.db
-rw-r--r--   1 user  wheel  4596370 Aug 22 14:01 mc-2-big-Data.db
-rw-r--r--   1 user  wheel       10 Aug 22 14:01 mc-2-big-Digest.crc32
-rw-r--r--   1 user  wheel    25256 Aug 22 14:01 mc-2-big-Filter.db
-rw-r--r--   1 user  wheel   330801 Aug 22 14:01 mc-2-big-Index.db
-rw-r--r--   1 user  wheel    10312 Aug 22 14:01 mc-2-big-Statistics.db
-rw-r--r--   1 user  wheel     3506 Aug 22 14:01 mc-2-big-Summary.db
-rw-r--r--   1 user  wheel       80 Aug 22 14:01 mc-2-big-TOC.txt

將快照改寫為目前的 Cassandra 版本

找出快照名稱

nodetool listsnapshots

Snapshot Details:
Snapshot name       Keyspace name                Column family name           True size          Size on disk
...
1534962986979       keyspace1                    standard1                    5.85 MB            5.85 MB

然後改寫快照

sstableupgrade keyspace1 standard1 1534962986979
Found 1 sstables that need upgrading.
Upgrading BigTableReader(path='/var/lib/cassandra/data/keyspace1/standard1-5850e9f0a63711e8a5c5091830ac5256/snapshots/1534962986979/keyspace1-standard1-ka-1-Data.db')
Upgrade of BigTableReader(path='/var/lib/cassandra/data/keyspace1/standard1-5850e9f0a63711e8a5c5091830ac5256/snapshots/1534962986979/keyspace1-standard1-ka-1-Data.db') complete.