sstableupgrade
将给定表(或快照)中的 sstable 升级到 Cassandra 的当前版本。此过程通常在 Cassandra 版本升级后完成。此操作将重写指定表中的 sstable 以匹配当前安装的 Cassandra 版本。sstableupgrade 命令还可用于将 sstable 降级到以前版本。
快照选项将仅升级指定的快照。在尝试还原比 Cassandra 当前运行的主要版本更早的主要版本的快照之前,需要升级快照。这将替换给定快照中的文件,并破坏与活动 sstable 的任何硬链接。
在执行此工具之前,必须停止 Cassandra,否则会导致意外结果。注意:该脚本不会验证 Cassandra 是否已停止。
用法
sstableupgrade <options> <keyspace> <table> [snapshot_name]
--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.