на сервер долить дельту данных? Запись в источник продолжает идти.
Кто вообще как переносит нагруженные базы с одного сервера на другой [standalone, репликации нет] ?
Возможно, это https://github.com/AlexAkulov/clickhouse-backup/blob/master/Examples.md#how-do-incremental-backups-work-to-remote-storage ответит на часть вопросов. Если в общих чертах, то парты в таблицах MergeTree иммутабельны, поэтому скопировать только новые парты достаточно.
самый простой способ с простоем стоп вставок, перенос данных на новый сервер через rsync, перенос вставки на новый сервер самый простой способ без простоя добавить zookeeper и вторую реплику, подожать пока данные отреплицируются если у вас были просто MergeTree то не получится, придется конвертировать в ReplicatedMergeTree https://kb.altinity.com/altinity-kb-setup-and-maintenance/altinity-kb-converting-mergetree-to-replicated/
про репликацию да, ясно. а через clickhouse-backup долить инкрементально не удастся?
он для этого не предназначен у вас есть Materialized View?
на данном сервере нет
rsync умеет diff доливать. просто на живой базе делаем rsync (работает например 300 часов) по завершению делаем еще раз rsync доливается diff (работает например 1 час) по завершению делаем еще раз rsync доливается diff (работает например 1 минуту) останавливаем живой КХ делаем еще раз rsync доливается diff (за секунду) стартуем новый КХ
какие-нибудь хитрые опции рсинка нужны? типа --delete-after
rsync -rav --delete удалить все файлы в destination которых нет в источнике
доброго утра. Делаю по вашей рекомендации и возник вопрос: а если мне не важен дифф последних N минут данных, можно обойтись без остановки живого КХ? Или данные, по которым долго делается рсинк с живого будут в неконсистентном состоянии и доливка после остановки обязательна?
доливка обязательна
принял. спасибо
Обсуждают сегодня