[Clickhouse] MaterializedPostgreSQL: 뻑난 테이블 강제 삭제

수십기가 이상의 대형 데이터를 MaterializedPostgreSQL 엔진으로 복제하다보면, 중간에 알 수 없는 이유로 뻗곤 한다. 근데 그럴때 문제가 Database 전체가 뻗기도 한다는 것이다.

게다가 MaterializedPostgreSQL 기능 자체가 실험적인 기능이다보니, 이렇게 꼬이는 상황에 대한 대처도 되어있지 않다. 쿼리만으로는 문제의 테이블을 제거하지도 못하고, 뭘 추가로 추가하거나 수정하지도 못하는 상황에 빠지는 것이다.

detach만 해도 이렇게 안된다.

이럴때는 여기저기 들어가서 강제로 다 삭제를 해줘야 했다.

PostgreSQL에 들어가서 강제로 복제 정보를 삭제하고

SELECT 
    p.pubname,
    t.schemaname,
    t.tablename
FROM pg_publication p
JOIN pg_publication_tables t ON p.pubname = t.pubname
WHERE p.pubname = '..._ch_publication';
ALTER PUBLICATION [pbname] drop table [tablename]

clickhouse에서는 파일 수준에서 강제로 수정이나 삭제를 해줘야 했다.

sudo rm -rf /var/lib/clickhouse/data/[dbname]/[tablename]
sudo vi /var/lib/clickhouse/metadata/[dbname].sql
sudo rm /var/lib/clickhouse/metadata/[dbname]/[tablename].sql
sudo systemctl restart clickhouse-server

그러고 재시작하면 해결될 것이다.



참조
https://github.com/ClickHouse/ClickHouse/issues/83145