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.