Назад | Перейти на главную страницу

Clickhouse: несогласованное резервное копирование / восстановление для последнего раздела при использовании ALTER TABLE FREEZE PARTITION

Я пытаюсь установить процесс резервного копирования и восстановления данных Clickhouse, но, похоже, есть несоответствие в последнем разделе, когда я восстанавливаю данные и выполняю запросы к нему.

В настоящее время я работаю над одним экземпляром сервера Clickhouse версии 1.1.54245, а не над кластером. Я пока не могу перейти на более поздние версии из-за несовместимости.

Вот мой процесс для таблицы ReplacingMergeTree:

  1. Удалите содержимое теневого каталога, чтобы мы не получали теневые файлы от предыдущих запусков процесса резервного копирования.

  2. Прежде всего, выполните оператор select, который позже будет использоваться для проверки успешности восстановления:

    • ВЫБЕРИТЕ Произошедшие_даты_даты, количество (*) ИЗ группы моей таблицы по наступившей_дате_дате, в порядке наступившей_даты_даты
  3. для каждого раздела,

    • ИЗМЕНИТЬ ТАБЛИЦУ mytable FREEZE PARTITION ...
  4. Соберите файлы, которые находятся в каталогах shadow / [0-9] *, и сделайте их резервную копию.

  5. Соберите файлы metadata / mydb.sql и metadata / mydb / * и сделайте их резервную копию.

  6. На другом компьютере запустите новый сервер Clickhouse, используя файлы данных и метаданных из резервной копии.

  7. Выполните тот же оператор выбора, что и на шаге 2, чтобы проверить, есть ли различия.

Проблема в том, что для одной из наших таблиц запрос на шаге 7 возвращает слишком низкие значения для последних двух дат в наборе результатов.

Пример 1: Я выполнил резервное копирование и восстановление 02.10.2017, и вот результаты проверки: Все даты с 01.01.2010 по 30.09.2017 в порядке. но 2017-10-01: до резервного копирования было 99641. После восстановления было 68432 и 2017-10-02: до резервного копирования было 37790. После восстановления было 1330

Пример 2: Я сделал резервную копию и восстановил 3 октября 2017 года. Нет расхождений.

Пример 3. Я сделал вторую резервную копию и восстановил 3 октября 2017 года. Все даты с 01.01.2010 по 30.09.2017 подходят. 2017-10-01 полностью отсутствует в результатах запроса после восстановления. 2017-10-02 полностью отсутствует в результатах запроса после восстановления. 2017-10-03 частично отсутствует: до бэкапа было 30716. После восстановления было 20526

Когда я выполняю операцию FREEZE, отображается одно сообщение об ошибке:

Unknown error field: Poco::Exception. Code: 1000
Unknown error field: e.code() = 2
Unknown error field: e.displayText() = File not found: /var/lib/clickhouse/data/mydb/events/20171003_20171003_568801_568801_0
{ Error: Poco::Exception. Code: 1000, e.code() = 2, e.displayText() = File not found: /var/lib/clickhouse/data/mydb/events/20171003_20171003_568801_568801_0, e.what() = File not found

at parseError (/code/node_modules/@apla/clickhouse/src/parse-error.js:2:15)
at errorHandler (/code/node_modules/@apla/clickhouse/src/clickhouse.js:26:13)
at IncomingMessage.<anonymous> (/code/node_modules/@apla/clickhouse/src/clickhouse.js:94:11)
at emitNone (events.js:110:20)
at IncomingMessage.emit (events.js:207:7)
at endReadableNT (_stream_readable.js:1059:12)
at _combinedTickCallback (internal/process/next_tick.js:138:11)
at process._tickCallback (internal/process/next_tick.js:180:9) type: 'File not found' }

Эта ошибка относится к разделу, с которым у меня возникли проблемы с несоответствием.

Я делаю что-то неправильно? Вы можете что-нибудь посоветовать?