sstablescrub
破損した SSTable を修正します。スクラブプロセスは SSTable を書き直し、破損した行をスキップします。これらの行は失われるため、このプロセスの後に修復を実行してください。
このツールを実行する前に Cassandra を停止する必要があります。そうしないと、予期しない結果が発生します。注意: スクリプトは Cassandra が停止していることを検証しません。
使用方法
sstablescrub <オプション> <キースペース> <テーブル>
--debug | スタックトレースを表示 |
---|---|
-h,--help |
このヘルプメッセージを表示 |
-m,--manifest-check |
レベルマニフェストのみをチェックおよび修復し、実際に SSTable をスクラブしない |
-n,--no-validate |
カラムバリデータを使用してカラムを検証しない |
-r,--reinsert-overflowed-ttl |
CASSANDRA-14092 の影響を受けた最大有効期限(2038-01-19T03:14:06+00:00)を超えた有効期限を持つ行を書き換えます。行は元のタイムスタンプに1ミリ秒加算されたタイムスタンプで書き換えられ、影響を受けた行のコンパクション中に生成された可能性のある潜在的な削除マーカーを上書き/優先します。 |
-s,--skip-corrupted |
カウンタテーブル内の破損した行をスキップする |
-v,--verbose |
詳細出力 |
基本的なスクラブ
オプションなしのスクラブは、最初にスナップショットを作成し、次に破損していないすべてのファイルを新しい SSTable に書き込みます。
例
sstablescrub keyspace1 standard1 Pre-scrub sstables snapshotted into snapshot pre-scrub-1534424070883 Scrubbing BigTableReader(path='/var/lib/cassandra/data/keyspace1/standard1-6365332094dd11e88f324f9c503e4753/mc-5-big-Data.db') (17.142MiB) Scrub of BigTableReader(path='/var/lib/cassandra/data/keyspace1/standard1-6365332094dd11e88f324f9c503e4753/mc-5-big-Data.db') complete: 73367 rows in new sstable and 0 empty (tombstoned) rows dropped Checking leveled manifest
検証なしのスクラブ
誤って表現されている(例:longフィールドに格納されている整数)が破損していないデータを保持するには、--no-validateオプションを使用します。このデータは通常、クライアントにエラーを表示しません。
例
sstablescrub --no-validate keyspace1 standard1 Pre-scrub sstables snapshotted into snapshot pre-scrub-1536243158517 Scrubbing BigTableReader(path='/var/lib/cassandra/data/keyspace1/standard1-bc9cf530b1da11e886c66d2c86545d91/mc-2-big-Data.db') (4.482MiB) Scrub of BigTableReader(path='/var/lib/cassandra/data/keyspace1/standard1-bc9cf530b1da11e886c66d2c86545d91/mc-2-big-Data.db') complete; looks like all 0 rows were tombstoned
破損したカウンタテーブルをスキップ
カウンタテーブルがsstablescrubの完了を妨げる方法で破損している場合は、--skip-corruptedオプションを使用して、それらのカウンタテーブルのスクラブをスキップできます。この回避策はバージョン 2.0 以降では不要です。
例
sstablescrub --skip-corrupted keyspace1 counter1