Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

DB::Exception: La parte XXXXX se solapa con la parte anterior YYYYY. Es un error o el resultado de una intervención manual en los datos de ZooKeeper.

Por qué ocurre

Cuando se produce este error, una tabla aparece como de solo lectura y el mensaje de error indica partes superpuestas.

Puedes ver el error en los registros o mediante

SELECT *
FROM system.replicas
WHERE is_readonly = 1

El mensaje de error es similar a este:

Code: 49. DB::Exception: Part XXXXX intersects previous part YYYYY. It is a bug or a result of manual intervention in the ZooKeeper data. (LOGICAL_ERROR) (version 21.12.4.1 (official build))

Causa del error

Este error puede deberse a una condición de carrera entre mergeSelectingTask y la reinicialización de la cola.

Solución

Ejecute las siguientes consultas en todas las réplicas:

DETACH TABLE table_name;  -- Necesario para DROP REPLICA

SYSTEM DROP REPLICA 'replica_name' FROM ZKPATH '/table_path_in_zk/'; -- Eliminará todo lo que haya en /table_path_in_zk

ATTACH TABLE table_name;  -- La tabla estará en modo de solo lectura, ya que no hay metadatos en ZK

Luego, ejecute lo siguiente en todas las réplicas:

SYSTEM RESTORE REPLICA table_name;  -- Desconectará todas las particiones, recreará los metadatos en ZK (como si fuera una tabla nueva vacía) y luego volverá a adjuntar todas las particiones

SYSTEM SYNC REPLICA table_name; -- Espera a que las réplicas sincronicen las partes. También se recomienda verificar `system.detached_parts` en todas las réplicas una vez finalizada la recuperación.

Recursos adicionales

PR e incidencias relacionadas en GitHub:

Versiones afectadas:

ClickHouse v 22.12 y versiones anteriores

Navigation