nodetool resetlocalschema

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

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

構文

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

構文の凡例

  • 山かっこ(< >)は、リテラルではなく変数を意味する
  • イタリック体は指定が任意であることを意味する
  • パイプ(|)記号はORまたはAND/ORを意味する
  • 省略記号(...)は繰り返し可能を意味する
  • 範囲記号「(」および「)」はリテラルではなく、範囲を示す

説明

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

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

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