[Перевод] Осваиваем replication slots в Postgres: как предотвратить разрастание WAL и другие проблемы в продакшене

Логическая репликация в Postgres редко ломает прод внезапно — чаще она долго и методично копит проблему, пока replication slot удерживает всё больше WAL, потребитель отстаёт, а свободное место на диске начинает таять. В этой статье разбирается именно такая зона риска: как устроена работа replication slots, почему одних базовых настроек здесь недостаточно и какие практики реально помогают держать под контролем WAL, публикации, heartbeats, failover и мониторинг. Материал особенно полезен тем, кто работает с CDC, Debezium и production-инстансами Postgres, где цена ошибки измеряется уже не теорией, а стабильностью системы. Разбор PostgreSQL

https://habr.com/ru/companies/otus/articles/1018444/

#PostgreSQL #replication_slots #логическая_репликация #WAL #CDC #Debezium #pgoutput #failover #мониторинг_Postgres

Осваиваем replication slots в Postgres: как предотвратить разрастание WAL и другие проблемы в продакшене

Содержание Используйте модуль вывода логического декодирования pgoutput Задайте максимальный размер replication slot Включите Heartbeats Используйте публикации на уровне таблиц Используйте фильтры по...

Хабр

Геораспределенное резервирование Postgres при помощи Debezium

Всем привет, меня зовут Николай Голубев, я — техлид из компании HFLabs. Эта статья написана по мотивам моего выступления на конференции

https://habr.com/ru/companies/oleg-bunin/articles/1001862/

#highload #PostgreSQL #базы_данных #высоконагруженные_системы #Debezium #хранение_данных #Kafka #релоцирование

Геораспределенное резервирование Postgres при помощи Debezium

Всем привет, меня зовут Николай Голубев, я — техлид из компании HFLabs. Эта статья написана по мотивам моего выступления на конференции Saint HighLoad++ . Мы с командой развиваем крупнейший в России...

Хабр
Vandaag #Debezium-corvee. Deze logical replication tool pompt op basis van events data over vanuit twee databases naar een derde. Alle databases worden binnen #Rancher als 1 master en 2 slaves in #pods ondergebracht. #Kubernetes brengt die naar eigen inzicht down en daarna weer up. Het correcte replication slot, op basis waarvan Debezium onthoudt waar hij gebleven was, wordt zo bij wijze van balletje-balletje heen en weer geschoven en hij blijkt dan steeds onder het verkeerde bekertje te kijken.

Note to self: do not kill a postgres process running ALTER TABLE in a throwaway database thinking it was the application while running pg_upgrade. It was pg_upgrade, not the app.

The "quick" rollback worked in terms of service (9 minutes of downtime) but it was an operational nightmare:

- outdated internal documentation
- very long Ansible loops
- unexpected errors when starting Debezium connectors that were stopped (why "stop/resume" and not "stop/start"?)
- pg_basebackup error: could not read COPY data: server closed the connection unexpectedly

And you, how's your week so far?

#postgresql #debezium #pg_upgrade #ansible

Паттерн Transactional Outbox на примере двух микросервисов на java

Всем привет! В данной статье будет описан один из возможных вариантов реализации паттерна outbox transactional. План данной статьи такой. Вначале немного теории, а потом на примере двух микросервисов будет показала реализация данного паттерна с помощью debezium и kafka. Данная статья будет полезна для новичков, которые не встречались с данным паттерном. Весь код микросервисов будет доступен по ссылкам. Но вначале немного теории. Самый главный вопрос зачем нужен данный паттерн и какую он решает задачу. Паттерн Outbox – используется в распределенных транзакциях, то есть в транзакциях, которые проходят и затрагивают несколько микровервисов, для обеспечения гарантированной доставки сообщения от одного микросервиса до другого. Данный паттерн используется там, где очень критично чтобы сообщение не потерялось, даже при сбоях в системе. Outbox паттерн получил распространение именно в микросервисной архитектуре, где нет возможности с помощью одной аннотации обеспечить транзакционность какого-то метода и возможный откат всей транзакции в рамках нескольких микросервисов. Теперь перейдем к практике. Допустим у нас имеется два микросервиса: order-servic, в котором клиент заказывает какой-то товар и bank-service, в котором происходит оплата за этот товар. Весь код микросервисов будет доступен по ссылкам. Задача в том, чтобы при заказе товара обязательно произошло списание денег за него или если денег недостаточно или возникла ошибка на стороне банка микросервис по заказам узнал об этом. Для реализации этого паттерна я буду использовать debezium и kafka.

https://habr.com/ru/articles/991934/

#java #паттерны_проектирования #outbox #outboxпаттерн #transactional_outbox #kafkaconnect #debezium

Паттерн Transactional Outbox на примере двух микросервисов на java

Всем привет! В данной статье будет описан один из возможных вариантов реализации паттерна outbox transactional. План данной статьи такой: вначале немного теории, а потом на примере двух микросервисов...

Хабр

CDC своими руками: Kafka + Debezium в домашней лаборатории

Третья статья цикла о построении CDC-пайплайна с нуля. Сегодня — самое интересное: захватываем изменения из PostgreSQL и отправляем в Kafka. И разбираемся, почему WAL может съесть весь диск, даже если данные не меняются.

https://habr.com/ru/articles/990902/

#kafka #debezium #cdc #devops #data_engineering

CDC своими руками: Kafka + Debezium в домашней лаборатории

Третья статья цикла о построении CDC-пайплайна с нуля. Сегодня — самое интересное: захватываем изменения из PostgreSQL и отправляем в Kafka. И разбираемся, почему WAL может съесть весь диск, даже если...

Хабр

PostgreSQL для CDC-пайплайна: настраиваем logical replication за 30 минут

Вторая статья цикла «CDC Pipeline в домашней лаборатории». В первой мы сделали Telegram-бота для парсинга банковских скриншотов. Теперь подготовим PostgreSQL к тому, чтобы Debezium мог захватывать изменения в реальном времени.

https://habr.com/ru/articles/988114/

#postgresql #cdc #debezium #logical_replication #devops

PostgreSQL для CDC-пайплайна: настраиваем logical replication за 30 минут

Вторая статья цикла «CDC Pipeline в домашней лаборатории». В первой мы сделали Telegram-бота для парсинга банковских скриншотов. Теперь подготовим PostgreSQL к тому, чтобы Debezium мог захватывать...

Хабр
See how Debezium powers row-level change capture while SeaTunnel enhances it with Kafka-free streaming and schema evolution support. https://hackernoon.com/inside-seatunnel-cdcs-debezium-integration-embedded-engine-offsets-and-checkpoints #debezium
Inside SeaTunnel CDC’s Debezium Integration: Embedded Engine, Offsets, and Checkpoints | HackerNoon

See how Debezium powers row-level change capture while SeaTunnel enhances it with Kafka-free streaming and schema evolution support.

Debezium 3.4 Final: A Feature-Packed Release for Modern Data Pipelines

Debezium 3.4.0.Final arrives with Kafka 4.1.1 support, Quarkus DevServices, geometry transformations, enhanced Oracle metrics, and memory protection features for enterprise-scale CDC deployments.

TechLife

Как оптимизация перформанса Debezium JDBC Sink Connector помогла улучшить Open-source версию решения

Debezium — популярный фреймворк для Change Data Capture (CDC), позволяющий отслеживать изменения в источниках данных (таких как базы данных) и передавать их в потоковые платформы вроде Apache Kafka. Одним из компонентов Debezium является JDBC Sink Connector, предназначенный для записи данных из Kafka в реляционные базы данных посредством интерфейса Java Database Connectivity (JDBC). Debezium JDBC Sink Connector может решать множество задач: от репликации данных между БД и синхронизации обновлений между микросервисами до создания резервных копий данных для целей тестирования или разработки. Мы в VK Tech используем Debezium JDBC sink connector, чтобы строить перформанс-интеграции. Но в нагрузочных тестах столкнулись с проблемой производительности, которая не решалась никакими обходными путями. Поэтому нам пришлось детально погрузиться в нюансы обработки событий в Debezium JDBC connector. Привет, Хабр. Меня зовут Артём Дубинин. Я старший разработчик Backend в команде Tarantool CDC — решения для репликации данных в реальном времени между системами управления базами данных (СУБД). В этой статье я изложу свою интерпретацию создания Debezium, расскажу о том, как работает Debezium JDBC connector, а также о нашем варианте оптимизации перформанса, который попал в Open-source версию.

https://habr.com/ru/companies/vktech/articles/967558/

#Tarantool #архитектура #отказоустойчивость #debezium #Kafka #JDBC_Sink_Connector #jdbc #vk_tech #tarantool_cdc #перформанс

Как оптимизация перформанса Debezium JDBC Sink Connector помогла улучшить Open-source версию решения

Debezium — популярный фреймворк для Change Data Capture (CDC), позволяющий отслеживать изменения в источниках данных (таких как базы данных) и передавать их в потоковые платформы вроде Apache Kafka....

Хабр