Отказоустойчивость для СУБД PostgreSQL

Postgres Professional
Postgres Professional
2 min readJun 17, 2019
СУБД PostgreSQL все шире применяется сегодня для поддержки критичных для бизнеса систем, однако для обеспечения автоматической поддержки отказоустойчивости в открытой версии этой системы требуется дополнительное ПО.

Для создания отказоустойчивых конфигураций на базе СУБД PostgreSQL, работающих в автоматическом режиме, требуется дополнительное ПО.

Отказоустойчивость PostgreSQL обеспечивается переключением ролей сервера с Реплики на Мастер СУБД и механизмом потоковой репликации, позволяющим передавать изменения с ведущего сервера на ведомые так, чтобы в каждый момент времени на ведомом сервере хранилась полная и консистентная копия базы данных. Все, что требуется от администратора СУБД в случае сбоя на основном сервере, — это вручную переключить роль мастера на резервный сервер. Но в бизнес-критичных системах нужно, чтобы все операции выполнялись в автоматическом режиме, полностью исключающем моменты недоступности базы данных.

Для обеспечения режима автоматической обработки отказов СУБД PostgreSQL необходимы резервные узлы переключения и дополнительное программное обеспечение, которое не входит в состав поставки. Дополнительная программная «обвязка» обнаруживает сбой основного узла, автоматически производит переключение на резервный узел и, если потребуется, изолирует аварийный узел для исключения ситуации split-brain (появление в кластере одновременно двух узлов, выполняющих роль мастераСУБД). Все эти функции могут выполнять такие программы, как Stolon от компании SorintLab, Patroni от Zalando, Corosync&Pacemaker от ClusterLabs и др. Каждая из них имеет свои преимущества и недостатки, но здесь мы ограничимся разбором программного стека Corosync&Pacemaker, задействующего разные уровни управления и коммуникаций: за управление ресурсами отвечает модуль Pacemaker, а Corosync отвечает за взаимодействие между узлами.

Corosync&Pacemaker — штатное решение обеспечения отказоустойчивости для ОС RedHat/CentOS версий 6, 7, 8, работающее и в ОС Debian, Ubuntu, а также с СУБД PostgreSQL и различными типами сервисов, среди которых веб, базы данных, файловые системы и др. Corosync&Pacemaker берет на себя мониторинг работоспособности узлов кластера, процессов СУБД, а также своих собственных модулей. В случае сбоя на основном узле (мастере) управление передается резервному узлу — реплике. Отказоустойчивый кластер на базе Corosync&Pacemaker защищает от сбоев по питанию на текущем мастере или на реплике; от сбоев процесса PostgreSQL по причине нехватки памяти, при недостатке файловых дескрипторов, превышении максимального числа открытых файлов; от потери сетевой связности с каким-либо из узлов в случае выхода из строя сетевой карты либо порта коммутатора.

Статья на нашем сайте: https://postgrespro.ru/blog/pgsql/4239113

--

--