DBAtlas · データベース運用アトラス

translog_corrupted_exception: translog_corrupted_exception

Elasticsearch

意味

シャードのトランザクションログ (translog) が破損しているため読み取れなかった。リカバリ中に Elasticsearch が translog の整合性チェックの失敗を検出し、シャードを起動できなかった。

原因

translog ファイルは通常、突然の電源喪失、ディスク満杯、ファイルシステムエラー、ハードウェア/ディスク障害、またはデータディレクトリに対する外部操作 (コピー、手動介入) によって破損する。強制シャットダウン (kill -9) 中の部分的に完了した書き込みも原因となる。

対処方法

まずレプリカまたはスナップショットからデータの復旧を試みる。正常なコピーが存在すれば、そこから破損したシャードを再構築するのが最も安全である。他のコピーがなくデータ損失を受け入れる場合は、ノードを停止し、bin/elasticsearch-shard remove-corrupted-data --index <index> --shard-id <n> で破損した translog/データを整理する (これによりまだコミットされていないデータは永久に失われる。旧来の elasticsearch-translog ツールは 7.0 で削除された)。ツールは、ノード再起動後にシャードを割り当てるために必要な POST _cluster/reroute コマンド (allocate_stale_primary、accept_data_loss: true) を出力する。操作前にデータディレクトリをバックアップする。ディスクの健全性と空き容量を確認する。

DBAtlas で開く →

同じデータベースの他の項目