nodetool resetlocalschema

ノードのローカル・スキーマをリセットし、再同期します。

ノードのローカル・スキーマをリセットし、再同期します。

構文

$ nodetool [options] resetlocalschema [args]
tarボールおよびInstaller-No Servicesのパス:
installation_location/resources/cassandra/bin
表 1. オプション
短い形式 長い形式 説明
-h --host ホスト名またはIPアドレス。
-p --port ポート番号。
-pwf --password-file パスワード・ファイルのパス。
-pw --password パスワード。
-u --username リモートJMXエージェントのユーザー名。
-- オプションと間違えられる可能性のある引数とオプションを分離します。
注:
  • tarボール・インストールの場合は、installation_location/binディレクトリーからコマンドを実行します。
  • RMI認証用のユーザー名とパスワードがホストのcassandra-env.shファイルに明示的に設定されている場合は、認証情報を指定する必要があります。
  • nodetool resetlocalschemaは、-hを使用して1つ以上の他のノードを指定していなければ、クラスター内の1つのノードの上で実行されます。コマンド発行元のノードがコマンドの実行対象である場合、-hオプションを使用して実行対象を指定する必要はありません。それ以外の場合は、リモート呼び出しの場合、-hオプションを使用して1つまたは複数の実行対象ノードを指定します。

説明

このコマンドは、通常、異なるノード間のスキーマの不一致を修正するときに使用します。テーブル・スキーマの変更により、100,000単位の多数のトゥームストーンが生成された場合に便利です。

nodetool resetlocalschema は、ローカル・ノードのスキーマ情報を削除し、別のノードからスキーマを再同期します。スキーマを削除するために、すべてのsystemスキーマ・テーブルが切り詰められます。ノード上のテーブルのメタデータは一時的に失われますが、ノードはその情報を別のノードから取得し、再度書き込みます。トゥームストーンが多すぎて、ノードで問題が発生している場合、テーブルが切り詰められることで、トゥームストーンが排除されます。

このコマンドは、1つのノードがクラスターと同期されていないときに便利です。systemスキーマ・テーブルには、テーブルをフェッチしてくる別のノードが必要です。すべてまたは多くのノードが間違った状態にあるときには、役に立ちません。クラスターに1つしかノードが存在しない(レプリケーション係数=1)場合、テーブルをフェッチしてくるノードは他に存在しないため、ノードはその処理を行いません。このコマンドは、問題が発生しているノードで実行してください。