Случайно удалил все данные из zookeeper, сервер не запускается

2,531 views
Skip to first unread message

Mike Eremin

unread,
Mar 10, 2017, 7:47:46 AM3/10/17
to ClickHouse
Коллеги, подскажите как быть в ситуации, когда из зукипера удалили все данные, т.е. ноды clickhouse больше нет.

В логах сервера такое:

<Error> Application: DB::Exception: Cannot create table from metadata file /opt/clickhouse/metadata/store//store_log_local.sql, error: zkutil::KeeperException: Can't get data for node /clickhouse/tables/01-01/hits/metadata: node doesn't exist (no node), stack trace:
0. clickhouse-server(StackTrace::StackTrace()+0x16) [0x1161fc6]


Можно ли как-то вручную создать нужную запись в зукипере?


Vitaliy Lyudvichenko

unread,
Mar 14, 2017, 8:59:11 AM3/14/17
to ClickHouse
  • Сохраните где-нибудь схему таблицы (она хранится /opt/clickhouse/metadata/store/store_log_local.sql)
Пусть это будет 
ATTACH TABLE dummy (p Date, k Int8, d String ) ENGINE = ReplicatedMergeTree('/clickhouse/tables/dummy', 'replica0', p, k, 8192)
  • остановите clickhouse-server на всех серверах;
  • Удалите все /opt/clickhouse/metadata/store/store_log_local.sql
  • запустите clickhouse-server и создайте нереплицированную MergeTree таблицу из имеющихся данных с использованием запроса ATTACH
    ATTACH TABLE dummy (p Date, k Int8, d String ) ENGINE = MergeTree(p, k, 8192)
  • Переименуйте созданную таблицу
    RENAME TABLE dummy TO dummy_no_replica
  • Создайте на всех репликах оригинальную таблицу
    ATTACH TABLE dummy (p Date, k Int8, d String ) ENGINE = ReplicatedMergeTree('/clickhouse/tables/dummy', 'replica0', p, k, 8192)
  • Переместите данные из нереплицированной таблицы в исходную, с помошью ALTER TABLE ATTACH PART согласно инструкции
    https://clickhouse.yandex/reference_ru.html#Преобразование из MergeTree в ReplicatedMergeTree
    sudo mv /opt/clickhouse/data/default/dummy_no_replica/* /opt/clickhouse/data/default/dummy/detached/
    rm -r /opt/clickhouse/data/default/dummy/detached/detached
    for i in `ls /opt/clickhouse/data/default/dummy/detached`; do clickhouse-client -q "ALTER TABLE dummy ATTACH PART '$i'"; done









пятница, 10 марта 2017 г., 15:47:46 UTC+3 пользователь Mike Eremin написал:

Дима Куликов

unread,
Jun 9, 2017, 2:13:47 AM6/9/17
to ClickHouse
Добрый день.
Такая же проблема. Делаю все по вашей инструкции , но на этапе создания реплицируемой таблицы получаю сообщение

Code: 999. DB::Exception: Received from localhost:9000, ::1. zkutil::KeeperException. zkutil::KeeperException: Can't get data for node /clickhouse/tables/01/log_requests_1c_test/metadata: node doesn't exist (no node).



вторник, 14 марта 2017 г., 15:59:11 UTC+3 пользователь Vitaliy Lyudvichenko написал:

Vitaliy Lyudvichenko

unread,
Jun 9, 2017, 7:03:42 AM6/9/17
to ClickHouse
Извиняюсь, там вместо 
ATTACH TABLE dummy (p Date, k Int8, d String ) ENGINE = ReplicatedMergeTree('/clickhouse/tables/dummy', 'replica0', p, k, 8192)
Надо использовать:
CREATE TABLE dummy (p Date, k Int8, d String ) ENGINE = ReplicatedMergeTree('/clickhouse/tables/dummy', 'replica0', p, k, 8192)




пятница, 9 июня 2017 г., 9:13:47 UTC+3 пользователь Дима Куликов написал:
Message has been deleted

Дима Куликов

unread,
Jun 9, 2017, 9:08:09 AM6/9/17
to ClickHouse
Спасибо, помогло.

пятница, 9 июня 2017 г., 14:03:42 UTC+3 пользователь Vitaliy Lyudvichenko написал:
Reply all
Reply to author
Forward
0 new messages