какой-то момент на 2 серверах закончилось место (недоглядели 🤷). Место почистили, но за время, пока оно закончилось, не писали данные в zookeeper и в clickhouse, соответственно.
Теперь есть рассинхрон а данных 2 реплик, а в логах полно записей вида:
2021.05.10 15:55:00.217590 [ 69 ] {} <Warning> info.data_meter_humidity_shard (ReplicatedMergeTreePartCheckThread): Found parts with the same min block and with the same max block as the missing part 202105_359932_359943_2. Hoping that it will eventually appear as a result of a merge.
2021.05.10 15:55:00.941870 [ 72 ] {} <Warning> info.data_meter_humidity_shard (ReplicatedMergeTreePartCheckThread): Checking part 202105_359932_359943_2
2021.05.10 15:55:00.977746 [ 72 ] {} <Warning> info.data_meter_humidity_shard (ReplicatedMergeTreePartCheckThread): Checking if anyone has a part 202105_359932_359943_2 or covering part.
Внимание, вопрос: как всё вылечить и заставить нормально работать дальше? 🙁
внимательно прочитать что в system.replication_queue
Там очень много всего. На что именно смотреть?
https://kb.altinity.com/altinity-kb-setup-and-maintenance/altinity-kb-replication-queue https://github.com/ClickHouse/ClickHouse/issues/10368#issuecomment-616310015
А можете подсказать, как запрос из первой ссылки совместить с инструкциями из втррой? Тот запрос, что приводится для поиска частей, которые нужно удалить из ZK, не возращает ничего
покажите результат запроса к system_replication_queue
Он огромный 🤷 ┌─database─┬─table────────────────────────────┬─type────────┬─any(last_exception)─┬─any(postpone_reason)──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┬─max(last_attempt_time)─┬─max(last_postpone_time)─┬─max_postponed─┬─max_tries─┬─min_tries─┬─count_err─┬─count_postponed─┬─count_executing─┬─count_all─┐ │ info │ io_status_shard │ GET_PART │ │ Not executing log entry queue-0003877012 for part 210602_2542222_2542222_0 because it is covered by part 210602_2537001_2557843_4287 that is currently executing. │ 2021-05-10 16:11:18 │ 2021-05-10 16:11:23 │ 9026 │ 1 │ 0 │ 0 │ 116299 │ 0 │ 120458 │ │ info │ io_status_shard │ MERGE_PARTS │ │ Not executing log entry queue-0003899021 of type MERGE_PARTS for part 210602_2537001_2557848_4288 because part 210602_2537001_2557843_4287 is not ready yet (log entry for that part is being processed). │ 2021-05-10 16:11:23 │ 2021-05-10 16:11:23 │ 15 │ 1 │ 0 │ 0 │ 39551 │ 3 │ 40223 │ │ info │ network_interface_log_shard │ GET_PART │ │ Not executing log entry queue-0001900136 for part 202105_599365_599365_0 because it is covered by part 202105_296053_623018_114354 that is currently executing. │ 2021-05-10 16:11:13 │ 2021-05-10 16:11:23 │ 13772 │ 3 │ 0 │ 0 │ 23066 │ 0 │ 24666 │ │ info │ data_meter_temperature_shard │ GET_PART │ │ Not executing log entry queue-0001852749 for part 202105_554488_554488_0 because it is covered by part 202105_290217_577559_107457 that is currently executing. │ 2021-05-10 16:11:13 │ 2021-05-10 16:11:22 │ 13982 │ 3 │ 0 │ 0 │ 22179 │ 0 │ 23686 │ │ info │ data_meter_wireless_health_shard │ GET_PART │ │ Not executing log entry queue-0000981079 for part 202105_294152_294152_0 because it is covered by part 202105_293674_306098_5598 that is currently executing. │ 2021-05-10 16:11:22 │ 2021-05-10 16:11:22 │ 7943 │ 1 │ 0 │ 41 │ 16729 │ 1 │ 19421 │ │ info │ data_meter_humidity_shard │ GET_PART │ │ Not executing fetch of part 202105_342475_342475_0 because 8 fetches already executing, max 8. │ 2021-05-10 16:11:21 │ 2021-05-10 16:11:21 │ 9920 │ 1 │ 0 │ 0 │ 13547 │ 1 │ 16724 │ │ info │ data_meter_wireless_health_shard │ MERGE_PARTS │ │ Not executing log entry queue-0000999066 for part 202105_293674_306089_5593 because it is covered by part 202105_293674_306098_5598 that is currently executing. │ 2021-05-10 16:11:22 │ 2021-05-10 16:11:22 │ 109 │ 1 │ 0 │ 21 │ 4917 │ 2 │ 5481 │ │ info │ data_meter_humidity_shard │ MERGE_PARTS │ │ Not executing log entry queue-0001205355 for part 202105_344659_354242_4804 because it is covered by part 202105_344659_359496_7917 that is currently executing. │ 2021-05-10 16:11:21 │ 2021-05-10 16:10:34 │ 120 │ 1 │ 0 │ 0 │ 3500 │ 1 │ 3977 │
│ info │ network_interface_log_shard │ MERGE_PARTS │ │ Not executing log entry queue-0001927252 for part 202105_296053_623037_114355 because it is covered by part 202105_296053_623703_114380 that is currently executing. │ 2021-05-10 16:11:23 │ 2021-05-10 16:09:50 │ 3 │ 1 │ 0 │ 0 │ 121 │ 1 │ 272 │ │ info │ data_meter_temperature_shard │ MERGE_PARTS │ │ Not executing log entry queue-0001878899 for part 202105_290217_577577_107458 because it is covered by part 202105_290217_577606_107460 that is currently executing. │ 2021-05-10 16:11:22 │ 2021-05-10 16:11:21 │ 12 │ 1 │ 0 │ 0 │ 74 │ 1 │ 224 │ │ info │ data_meter_electricity_shard │ GET_PART │ │ Not executing fetch of part 202105_588078_588078_0 because 8 fetches already executing, max 8. │ 2021-05-10 16:11:21 │ 2021-05-10 16:11:21 │ 9 │ 1 │ 0 │ 0 │ 7 │ 3 │ 7 │ └──────────┴──────────────────────────────────┴─────────────┴─────────────────────┴───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┴────────────────────────┴─────────────────────────┴───────────────┴───────────┴───────────┴───────────┴─────────────────┴─────────────────┴───────────┘
system restart replica; на обоих репликах
Прошу прощения, а где именно выполнять эту команду?
это обычный SQL. я бы из клиента выполнял
Вот я так и попробовал, но получил это: cluster-node-02-01 🙂 SYSTEM RESTART REPLICA Syntax error: failed at position 23 (end of query): SYSTEM RESTART REPLICA Expected one of: START TTL MERGES, RELOAD CONFIG, RELOAD DICTIONARY, STOP FETCHES, FLUSH LOGS, RELOAD EMBEDDED DICTIONARIES, STOP DISTRIBUTED SENDS, STOP TTL MERGES, identifier, STOP REPLICATED SENDS, RELOAD SYMBOLS, STOP MOVES, START MOVES, STOP REPLICATION QUEUES, START DISTRIBUTED SENDS, SYNC REPLICA, STOP MERGES, START REPLICATED SENDS, START MERGES, DROP REPLICA, START FETCHES, START REPLICATION QUEUES, FLUSH DISTRIBUTED, RELOAD DICTIONARIES
system restart replicas я букву s забыл
Я выполнил. И что теперь должно произойти?
изменилось что-нибудь в system.replication_queue?
Сейчас посмотрю… Но самое страшное, что в логах появилась надпись Table info.data_meter_temperature_shard doesn't exist
system restart replicas на доли секунды убирает таблицу из видимых
Проблема в том, что запрос этот я выполнил давно, а сейчас пытаюсь посчитать количество записей во всех репликах, и мне база говорит, что нет такой таблицы SELECT FQDN() AS node, COUNT() AS rows FROM clusterAllReplicas('cluster', info, data_meter_temperature_shard) GROUP BY node Query id: 23bdadb8-5da9-425a-9b5b-5c9f0a2e71a3 0 rows in set. Elapsed: 0.085 sec. Received exception from server (version 21.4.4): Code: 279. DB::Exception: Received from localhost:9000. DB::Exception: All connection tries failed. Log: There is no table `info`.data_meter_temperature_shard on server: cluster-node-02-02:9000 : While executing Remote.
attach table info.data_meter_temperature_shard
Это нужно на той ноде, на которой её нет, выполнять?
Это помогло, спасибо. Но пока рассинхров в данных никуда не делся, увы. Как и сообщения об ошибках в логах 🙁
кол-во select count() from system.replication_queue уменьшается ? выполните два раза подряд
На тысячи?
Да, постепенно
Обсуждают сегодня