Кликхаус регулярно начал терять соединение с Зукипером. При этом некоторые инсерты и мерджи падали. После добавления ресурсов серверам с Зукипером, вроде, всё нормализовалось. Но сейчас появились проблемы с селектами. Ошибки вида:
Cannot read all data in MergeTreeReaderCompact. Rows read: 0. Rows expected: 10
Code: 432. DB::Exception: Unknown codec family code: 32: (while reading column client_ts): While executing MergeTreeInOrder. (UNKNOWN_CODEC)
Грешу на некоторые парты, которые со вчера почему-то не смерджены. Т.е. новые парты, которые начали приходить после - мерджатся, а эти - никак.
Попытался их детачнуть, но выдает такие ошибки:
Part 202203_485644_485644_0 is currently participating in a background operation (mutation/merge), try again later. (PART_IS_TEMPORARILY_LOCKED).
Но при этом в таблицах system.merges и system.replication_queue ничего нет.
В общем, сейчас пробуем перезапустить одну из реплик с флагом force_restore_data, но не уверен что поможет. Может идеи как еще это всё можно исправить?
На всякий случай апну, а то ситуация крайне неприятная. В дополнение, после перезапуска одной реплики с force_restore_data, начали перезапускаться все реплики и в итоге так и не могут нормально поднятся. Постоянно падают. При этом в логах в момент падения ничего нет. Из ошибок в логах мелькает что-то такое: Code: 49. DB::Exception: Part 202203_509162_509173_1 intersects previous part 202203_502266_509165_6122. It is a bug or a result of manual intervention in the ZooKeeper data. (LOGICAL_ERROR) При этом, само собой, в Зукипер вручную никто не лазил. В общем, что делать пока не понятно. Есть идея развернуть Кликхаус и Зукипер заново с нуля и потом вручную просто приаттачить старые парты. Но я не знаю, могут ли быть у такого решения какие-то подводные камни. Тем более что большинство данных лежит в S3. Плюс может всё-таки как-то можно оживить из текущего положения.
Если кто-то сможет помочь, буду очень благодарен.
разобрались? встретил такую же проблему
LOGICAL_ERROR = БАГ КХ нужно создавать issue
LOGICAL_ERROR = БАГ КХ нужно создавать issue
печально, нет возможности ждать пока пофиксят, проблема ну очень болезненная
issue ищите в гитхабе может рассказывают как пофиксить
Да, разобрались. На сколько я помню, пришлось сделать что-то такое: 1. Полностью остановить все клиенты чтобы не было запросов в Кликхаус. 2. Остановить все реплики Кликхауса. 3. Убить все реплики Зукипера и развернуть их с нуля. 4. На одной из реплик Кликахуса создать новые, не реплицируемые, таблицы с той же структурой что и старые, но с другим именем 4. В ручном режиме скопировать файлы старых таблиц в папки новых таблиц. 5. Запустить реплику с новыми таблицами с флагом force_restore_data. 6. Сделать новые таблицы реплицируемыми и запустить остальные реплики Кликхауса. 7. Профит. Не уверен, что в точности вспомнил что делалось, но направление примерно такое. Также абсолютно не уверен что это решение адекватное. По идее, должен быть способ восстановить Зукипер не таким варварским методом. Но как бы там ни было, кластер восстановить удалось.
Обсуждают сегодня