nodetool scrub
1つ以上のテーブルのSSTableをリビルドします。
スナップショットを作成し、ノード上のSSTableをリビルドします。可能な場合は、再構築ではなく、nodetool upgradesstablesを使用してください。
再構築は、壊れたデータを自動的に破棄し、テーブルのgc_grace
期間を超えたトゥームストーンのマークが付いた行を削除します。パーティション・キーの値がカラムのデータ型と一致しない場合、パーティションは破損しているとみなされ、プロセスは自動的に停止します。
重要: LCSを使用する場合は、すべてのSSTableをレベル0にリセットし、すべてのSSTableを再コンパイルする必要があります。
構文
nodetool main_options scrub [(-j <jobs> | --jobs <jobs>)] \ [(-n | --no-validate)][(-ns | --no-snapshot)] \ [(-s | --skip-corrupted)] \ [--] [<keyspace> <tables>...]
接続オプション
接続オプションで、すべてのnodetoolコマンドの接続方法と認証方法を指定します。
短い形式 | 長い形式 | 説明 |
---|---|---|
-p |
--port |
ポート番号。 |
-pwf |
--password-file |
パスワード・ファイルのパス。 |
-pw |
--password |
パスワード。 |
-u |
--username |
ユーザー名。 |
-- | コマンドのパラメーターとオプションのリストを区切ります。 |
注:
- RMI認証用のユーザー名とパスワードがホストのcassandra-env.shファイルに明示的に設定されている場合は、認証情報を指定する必要があります。
- リペアおよびリビルド・コマンドは、クラスター内の複数のノードに影響することがあります。
- ほとんどのnodetoolコマンドは、-hを使用して1つ以上の他のノードを指定していなければ、クラスター内の1つのノード上で実行されます。コマンド発行元のノードがコマンドの実行対象である場合、-hオプションを使用して実行対象を指定する必要はありません。それ以外の場合は、リモート呼び出しの場合、-hオプションを使用して1つまたは複数の実行対象ノードを指定します。
例:
nodetool -u username -pw password describering demo_keyspace
cassandra-env.shファイルの場所は、インストールのタイプによって異なります。
パッケージ・インストールInstaller-Servicesインストール |
/etc/dse/cassandra/cassandra-env.sh |
tarボール・インストールInstaller-No Servicesインストール |
installation_location/resources/cassandra/conf/cassandra-env.sh |
Scrubパラメーター
scrub
コマンドでは次のパラメーターを使用します。
- -j jobs
- (Long
--jobs jobs
)同時に再構築するSSTableの数。ゼロ(0)にした場合、利用可能なすべてのコンパクション・スレッドを使用します。デフォルト:2。
- -n
- (Long
--no-validate
)。カラムの検証を抑制します。デフォルト:すべてのカラムを検証します。
- -ns
- (Long
--no-snapshot
)。スナップショットの作成を抑制します。デフォルト:SSTableをリビルドする前にスナップショットを作成します。
- -s
- (Long
--skip-corrupted
)。破損したパーティションをスキップするために強制的に再構築して処理を続行します。壊れたパーティションには、カラム・データ型と一致しないカラム値が存在します。スキップしたパーティションをsystem.log
に記録します。デフォルト:破損したパーティションが検出された場合は、再構築を停止します。
注: カウンター・カラムを含むテーブル上の破損したパーティションをスキップすると、カウントが実際より少なくなります。 - keyspace_name table_name […]
- スペース区切りリストを使用して、キースペースを識別し、特定のテーブルをターゲットにします。
デフォルト:引数を指定していない場合は、ノード上のすべてのキースペースとテーブルを含めます。