Я пытаюсь установить процесс резервного копирования и восстановления данных Clickhouse, но, похоже, есть несоответствие в последнем разделе, когда я восстанавливаю данные и выполняю запросы к нему.
В настоящее время я работаю над одним экземпляром сервера Clickhouse версии 1.1.54245, а не над кластером. Я пока не могу перейти на более поздние версии из-за несовместимости.
Вот мой процесс для таблицы ReplacingMergeTree:
Удалите содержимое теневого каталога, чтобы мы не получали теневые файлы от предыдущих запусков процесса резервного копирования.
Прежде всего, выполните оператор select, который позже будет использоваться для проверки успешности восстановления:
для каждого раздела,
Соберите файлы, которые находятся в каталогах shadow / [0-9] *, и сделайте их резервную копию.
Соберите файлы metadata / mydb.sql и metadata / mydb / * и сделайте их резервную копию.
На другом компьютере запустите новый сервер Clickhouse, используя файлы данных и метаданных из резервной копии.
Выполните тот же оператор выбора, что и на шаге 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' }
Эта ошибка относится к разделу, с которым у меня возникли проблемы с несоответствием.
Я делаю что-то неправильно? Вы можете что-нибудь посоветовать?
Это ошибка. Исправлено в https://github.com/yandex/ClickHouse/commit/d468473d624f7d9f25d23c98bd3ceb9ca3a4cffd
.....