Пятничный деплой
Подборка ссылок, статей и постов из мира DevOps\SRE\разработки. Если вы хотите прислать фидбек, интересную статью или просто поболтать пишите @count0ru https://t.me/s/count0_digest
Більше- Підписники
- Перегляди допису
- ER - коефіцієнт залучення
Триває завантаження даних...
Триває завантаження даних...
Если вспомнить работу репликации в MySQL, то реплики получают данные через бинарный лог — файл-журнал. Реплика копирует этот журнал себе и последовательно выполняет операции из него у себя. Концепция репликации в ClickHouse схожа, однако за хранение этого журнала отвечает не сама база. Для хранения и координации действий репликации в ClickHouse требуется распределённое хранилище данных, которое может гарантировать согласованность состояния. Для этого ClickHouse использует один из двух вариантов: Zookeeper или ClickHouse Keeper.Об этой и других особенностях репликации в ClickHouse вы можете узнать из новой статьи Петра, DevOps-инженера компании Nixys. А ознакомиться с первой частью серии можно по этой ссылке. Приятного чтения! #Хабр #статья_Nixys #ClickHouse
REPLICA IDENTITY USING INDEX
, либо назначение REPLICA IDENTITY FULL
.
🛠️ Репликационные идентификаторы необходимы для однозначной идентификации изменяемых или удаляемых строк при репликации команд UPDATE
и DELETE
.
Репликационные идентификаторы:
🚫 Их можно не настраивать или отключить, если планируется реплицировать только команды INSERT
. Главное — исключить из публикации команды UPDATE
и DELETE
.
⚠️ Для актуальных данных из активно изменяющихся таблиц, где отсутствуют первичные ключи или уникальные NOT NULL
индексы, настройка репликационных идентификаторов обязательна. В противном случае UPDATE
и DELETE
могут привести к отмене транзакций на мастере, что является нежелательным на рабочей базе.
🗂️ Этот запрос поможет вам выявить таблицы без настроенных репликационных идентификаторов.
SELECT pgn.nspname || '.' || pgc.relname AS "Таблицы без репликационных идентификаторов"
FROM pg_class AS pgc,
pg_namespace AS pgn
WHERE pgn.nspname !~ '^(?:pg_.*|information_schema)$'
AND pgc.relreplident IN ('n', 'd')
AND pgc.relkind IN ('r', 'p')
AND pgc.oid NOT IN (SELECT pgi.indrelid FROM pg_index AS pgi WHERE pgi.indisprimary)
AND pgc.relnamespace = pgn.oid
ORDER BY 1;
---
🦄 Не забывайте правильно настраивать репликационные идентификаторы для успешной работы логической репликации!Начиная с 10 версии, перенести данные с одной базы PostgreSQL на другую несложно, с обновлением, без обновления — неважно. Об этом немало сказано и сказанное сводится к следующему: на мастере, 10...
Good development practices for modern Python
Главная конференция о Kubernetes® в России. Возможно офлайн и онлайн участие. Технические доклады, продуктовые обзоры, передовые практики.
На вашому тарифі доступна аналітика тільки для 5 каналів. Щоб отримати більше — оберіть інший тариф.