sstableverify
指定されたテーブルのsstable(s)にエラーまたは破損がないか確認します。
このツールを実行する前にCassandraを停止する必要があります。そうでない場合、予期せぬ結果が発生します。注:このスクリプトはCassandraが停止していることを確認しません。
警告
このツールに関するリスクについては、CASSANDRA-9947とCASSANDRA-17017を参照してください。「検証に失敗したsstableを修復済みではないとマークしますが、それはあなたが思うような動作をしません。これは、ローカルノードが次の修復でそのsstableを使用しますが、他のノードは使用しないことを意味します。したがって、最終的に行われるのは、そこから読み取ることができるデータを他のレプリカにストリーミングすることだけです。ローカルsstableのデータに対応するリモートノード上のsstableを魔法のようにマークできれば機能しますが、それはできません。」
このツールを使用するには、ユーザーがリスクを理解し、使用を試みたいことを示す-fまたは--forceフラグを使用する必要があります。
使用方法
sstableverify <オプション> <keyspace> <table>
--debug |
スタックトレースを表示します。 |
-e, --extended |
拡張検証 |
-h, --help |
このヘルプメッセージを表示します。 |
-v, --verbose |
詳細出力 |
-f, --force |
ツールの使用を許可します(リスクについてはCASSANDRA-17017を参照)。 |
基本検証
これは基本的な検証です。非常に高速なプロセスではなく、メモリを消費します。多くのsstableがある場合は、メモリ設定を増やす必要があるかもしれません。
例
sstableverify keyspace eventlog Verifying BigTableReader(path='/var/lib/cassandra/data/keyspace/eventlog-6365332094dd11e88f324f9c503e4753/mc-32-big-Data.db') (7.353MiB) Deserializing sstable metadata for BigTableReader(path='/var/lib/cassandra/data/keyspace/eventlog-6365332094dd11e88f324f9c503e4753/mc-32-big-Data.db') Checking computed hash of BigTableReader(path='/var/lib/cassandra/data/keyspace/eventlog-6365332094dd11e88f324f9c503e4753/mc-32-big-Data.db') Verifying BigTableReader(path='/var/lib/cassandra/data/keyspace/eventlog-6365332094dd11e88f324f9c503e4753/mc-37-big-Data.db') (3.775MiB) Deserializing sstable metadata for BigTableReader(path='/var/lib/cassandra/data/keyspace/eventlog-6365332094dd11e88f324f9c503e4753/mc-37-big-Data.db') Checking computed hash of BigTableReader(path='/var/lib/cassandra/data/keyspace/eventlog-6365332094dd11e88f324f9c503e4753/mc-37-big-Data.db')
拡張検証
拡張検証では、個々の値がエラーまたは破損がないか検証されます。もちろん、これにはより多くの時間がかかります。
例
root@DC1C1:/# sstableverify -e keyspace eventlog WARN 14:08:06,255 Only 33.096GiB free across all data volumes. Consider adding more capacity to your cluster or removing obsolete snapshots Verifying BigTableReader(path='/var/lib/cassandra/data/keyspace/eventlog-6365332094dd11e88f324f9c503e4753/mc-32-big-Data.db') (7.353MiB) Deserializing sstable metadata for BigTableReader(path='/var/lib/cassandra/data/keyspace/eventlog-6365332094dd11e88f324f9c503e4753/mc-32-big-Data.db') Checking computed hash of BigTableReader(path='/var/lib/cassandra/data/keyspace/eventlog-6365332094dd11e88f324f9c503e4753/mc-32-big-Data.db') Extended Verify requested, proceeding to inspect values Verify of BigTableReader(path='/var/lib/cassandra/data/keyspace/eventlog-6365332094dd11e88f324f9c503e4753/mc-32-big-Data.db') succeeded. All 33211 rows read successfully Verifying BigTableReader(path='/var/lib/cassandra/data/keyspace/eventlog-6365332094dd11e88f324f9c503e4753/mc-37-big-Data.db') (3.775MiB) Deserializing sstable metadata for BigTableReader(path='/var/lib/cassandra/data/keyspace/eventlog-6365332094dd11e88f324f9c503e4753/mc-37-big-Data.db') Checking computed hash of BigTableReader(path='/var/lib/cassandra/data/keyspace/eventlog-6365332094dd11e88f324f9c503e4753/mc-37-big-Data.db') Extended Verify requested, proceeding to inspect values Verify of BigTableReader(path='/var/lib/cassandra/data/keyspace/eventlog-6365332094dd11e88f324f9c503e4753/mc-37-big-Data.db') succeeded. All 17068 rows read successfully
破損ファイル
破損ファイルは、スクリプトによって検出された場合に一覧表示されます。
例
sstableverify keyspace eventlog Verifying BigTableReader(path='/var/lib/cassandra/data/keyspace/eventlog-6365332094dd11e88f324f9c503e4753/mc-40-big-Data.db') (7.416MiB) Deserializing sstable metadata for BigTableReader(path='/var/lib/cassandra/data/keyspace/eventlog-6365332094dd11e88f324f9c503e4753/mc-40-big-Data.db') Checking computed hash of BigTableReader(path='/var/lib/cassandra/data/keyspace/eventlog-6365332094dd11e88f324f9c503e4753/mc-40-big-Data.db') Error verifying BigTableReader(path='/var/lib/cassandra/data/keyspace/eventlog-6365332094dd11e88f324f9c503e4753/mc-40-big-Data.db'): Corrupted: /var/lib/cassandra/data/keyspace/eventlog-6365332094dd11e88f324f9c503e4753/mc-40-big-Data.db
同様の(ただし、冗長性が少ない)ツールは、推奨されるアクションを表示します。
nodetool verify keyspace eventlog error: Invalid SSTable /var/lib/cassandra/data/keyspace/eventlog-6365332094dd11e88f324f9c503e4753/mc-40-big-Data.db, please force repair