PostgreSQL — репликация

Всем привет,

встала задача добиться 99.9% аптайма у сервера. Идея поднять резервный сервер, даун на 3-4 минуты мы можем себе позволить, больше - нет. Базу PostgreSQL надо реплицировать в реалтайме или близко к нему, код и пользовательские файлы (картинки, в основном) могут синхронизироваться с задержками.

Какие есть best practices в таких случаях?
  • Вопрос задан
  • 9257 просмотров
Пригласить эксперта
Ответы на вопрос 3
lesovsky
@lesovsky
System engineer and PostgreSQL DBA
для репликации бд используйте нативную streaming replication, она довольна проста в освоении.
www.thislinux.org/2014/03/postgresql-streaming-rep...

Repmgr по сути набор скриптов над потоковой репликацией, поэтому с ними можно добиться того же результата.

Best practices следующие:
1. железо стендбая должно быть идентично или лучше чем у мастера, т.к. стендбай может в случае аварии стать мастером и будет грустно если он не потянет нагрузку.
2. обратите внимание на надежность и пропускную способность сети, она должна переваривать те объемы трафика что полетят с мастера на стендбай
3. оттестируйте и составьте инструкции по переключению стендбая в мастер, чтобы в случае аварии не суетиться (оттестировать можно на staging).
4. настройте wal archiving и резервное копирование через basebackup т.к. при потенциальных ошибках оператора/кривой миграции (DROP/TRUNCATE TABLE, DELETE ALL) все изменения улетят на стендбай и он вместе с мастером превратится в тыкву.
Ответ написан
Комментировать
AMar4enko
@AMar4enko
Гляньте в сторону pgpool, это взрослое production-ready решение, в том числе для репликации. Там достаточно подробные примеры.
Ответ написан
Комментировать
@vasilushechka
Рекомендую воспользоваться очень хорошим инструментом repmgr.
Просто, надежно, легко масштабируемо.

https://github.com/2ndQuadrant/repmgr
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы