0

2 つのデータノード、1 つの mgmt 、および 2 つの SQL ノードを備えた、ディスク ベースのテーブルを使用してクラスターをセットアップしました。

クラスターは正常に動作しています...その HA をテストしたかったので、Linuxプロンプトで KILL コマンドを使用して1つのデータノードを手動で強制終了し、SQLノードに接続していくつかのレコードをテーブルに挿入しました。

次に、このコマンドで殺したデータノードを開始しようとしました

--initial を使用せずに bin/ndbd

managmnt ノードのログを見ると、以下のエラーが表示され、データ ノードが起動していません。

/ノード 3: ノードの強制シャットダウンが完了しました。startphase 5 中に発生しました。エラー 2355 が原因でした: 「スキーマの復元に失敗しました (リソース構成エラー)。永久エラー、外部アクションが必要です。

しかし、 --initial を使用すると、最初からクリーン スタートを実行することになります (100G の場合は、すべてのデータ ファイルをコピーするのに時間がかかります)。

しかし、データノードが停止した(殺された)時点からレコードのコピーを開始するようにしたい

どうすればいいですか?

4

1 に答える 1

1

(クラスター全体ではなく、そのノードに対して) 回復不能な障害が発生したため、再構築するしかありません。このシナリオを回避するには、プロセスを強制終了するのではなく、ノードを安全に停止します。たとえば、ノード 3 の実行を停止するには:

ndb_mgm -e '3 stop'

ただし、そのノード グループ (グループは 1 つしかありません) 内のノードがまだデータを回復できる場合は、データを失うことはありません。

最初に、ノード グループ内の他のノードを起動します。

/bin/ndbd

それらが「開始」されていることを確認します(またはデータが失われます)

ndb_mgm -e show

破損したノードで、他のノードのデータで初期化します

node 3> /bin/ndbd --initial
于 2014-03-25T00:04:28.447 に答える