config.xml), что она не активна, чтобы на нее не приходили запросы?
Какие запросы имеются ввиду? Distributed select с нее итак читать не будет А если у вас какой то внешний балансировщик то зависит от того какой именно Nginx и haproxy вроде сами сбалансируют если один из upstream хостов недоступен Про chproxy не помню как он себя ведёт но вроде бы также
Вопрос про truncate. Наши приложения пишут на кластер, через запрос on cluster. И в итоге в zk в распределенных запросах я вижу, что даже первая реплика не отмечается как успешно отработанная. Операция truncate висит и все. Если я на определённые таблицы в zk удалю реплику, то запрос должен отработать на одной реплике? Могут быть какие нибудь подводные камни, по удаление реплики в zk? Когда починим вторую, перед запуском клика удалим данные и метадату таблицы, чтобы заново влить данные.
on cluster не работает с инсертом же.
Он работает при изменение структуры и alter
Спасибо, поправил.
On cluster Это distributed ddl Чистите zk руками Просто предполагается что реплика все равно будет со временем online и вычитает distributed ddl task и исполнит их
Можно system delete replica сделать А после восстановления заново просто таблицу создать с тем же uuid если у вас был atomic и uuid макрос в zk пути таблицы И тогда данные отреплицируются
Кроме удаления самой реплики в zk, можно ли удалит сами запросы distributed ddl в zk, чтобы они потом не отработали на реплике или так не стоит делать ? Просто на тесте я уже так пробовал делать и потом реплики ругались, что должны быть вот задача в zk, а ее нет
Эту команду делаем на живой реплики? Почитал. Запускаю на живой реплики с указание имёни мертвой. И взамен delete drop
Реплики ругнеулись но работать продолжили?
Точно не помню. Мы делали alter table, и упали по timeout, потом запустили ещё одну ddl. В итоге все подвисло. Посмотрели в zk, увидели две задачи. Решили очистить первый проблемный запрос. Но он начал пересоздаваться автоматом. Ещё пару раз удалили и вуаля задачи нет, а точнее она появилась как пустышка, но остальные задачи продолжили висеть на исполнение и ничего не происходило. В логах клика появились ошибки, что такая то задача не может быть выполнена. Перезапуск одной реплики не помог, ошибки сыпались бесконечно. Рестартанул кластер и сообщения об ошибках через некоторое время ушли.
Я в клике далеко не эксперт, просто документацию почитываю. Но вы каким образом "первый проблемный запрос" очищали? Руками из zookeeper удаляли что-то, или https://clickhouse.com/docs/en/sql-reference/statements/kill/#kill-mutation использовали?
Обсуждают сегодня