Cassandra ドキュメント

バージョン

プレリリースバージョンのドキュメントを表示しています。

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