нодов таблица не удалилась с ошибкой:
Replica was not completely removed from ZooKeeper, /tables/production_cluster/2/db.table/replicas/2 still exists and may contain some garbage.
Куда смотреть и как её удалить?
SYSTEM DROP REPLICA 'replica-name' FROM db.table;
это на тех нодах где они осталась?
вообще странно, если такое есть у вас, то проверьте имена реплик правильно ли заданы? обычно это макрос replica в system.macros
на этих репликах так сделать не даст.. https://clickhouse.com/docs/en/sql-reference/statements/system#drop-replica но вы сначала проверьте что у вас имена реплик разные везде на всех нодах там где не может удалить /2 на конце в replicated path такое себе имя реплики SHOW CREATE TABLE db.table FORMAT Vertical; покажите?
Вот так выглядит CREATE TABLE CREATE TABLE IF NOT EXISTS db.table ON CLUSTER '{cluster}' ( ...columns.. ) ENGINE = ReplicatedMergeTree('/tables/{cluster}/{shard}/prometheus.metrics_repl', '{replica}') PARTITION BY toYYYYMMDD(date) ORDER BY (ts, name)
SELECT DISTINCT cluster FROM system.clusters;
только один, production_cluster расклад такой, что node1, shard1, replica1 ----replication----> node 2, shard1, replica 2 node3, shard2, replica1 ----replication----> node 4, shard2, replica 2 node5, shard3, replica1 ----replication----> node 6, shard3, replica 2 node7, shard4, replica1 ----replication----> node 8, shard4, replica 2 И если делаю select из clusterAllReplicas(production_cluster, system.tables) where table = table and database=db, то всё еще есть эта таблица на нодах 1, 2, 7 и 8.
SELECT hostName() h, * FROM clusterAllReplicas('production_cluster',system.macros) ORDER BY macro, h есть ли одинаовый shard+replica на разных hostName() ?
нет, такого нет, у каждого шарда две разных реплики 1 и 2
тогда может есть какие то еще таблицы которые с заданный replication_path пишут? SELECT hostName() h, database, table, engine_full FROM clusterAllReplicas('production_cluster',system.tables) WHERE engine_full ILIKE '%prometheus.metrics_repl%';
нет, только моя таблица которую хочу дропнуть
попробуйте DETACH TABLE ... потом ATTACH TABLE и после этого DROP TABLE ... SYNC
сейчас в system.parts ничего от неё не осталось, всё равно попробовать detach-attach?
ну если DROP ... SYNC не проходит...
drop sync он без ошибок сработал, просто я потом сразу попытался создать эту таблицу опять и увидел что там еще остатки в зукипере остались.
вы совершенно по другому ставили вопрос вы говорили что у вас DROP SYNC не на всех нодах отработал DROP TABLE db.table ON CLUSTER 'production_cluster' SYNC вот так надежнее всего... и потом только создавать CREATE TABLE ... ON CLUSTER
Прошу прощения если не правильно выразился. Drop sync сработал везде, я ошибок не видел. Все из system.parts ушло. Осталось: на нодах 1, 2, 7 и 8 в system.tables записи и ошибки в логах про зукипер такое (на скриншоте).
в итоге, я еще раз drop sync сделал и теперь из system.tables всё ушло. Осталось только в зукипере эти два: '/tables/production_cluster/3/prometheus.metrics_repl/replicas/1' /tables/production_cluster/2/prometheus.metrics_repl/replicas/2 их как-то можно безопасно почистить? вижу их в system.zookeeper
странно, должны были почиститься вообще то в zookeeper zkCli.sh deleteall /tables/production_cluster/3/prometheus.metrics_repl
Обсуждают сегодня