LINUX.ORG.RU

репликация

 


0

2

Есть postgresql сервер master, положим в транзакции на нем мы изменяем две таблицы A и B.

Понятно что изменения этих таблиц на master будут атомарны - не будет ситуации когда сервер изменяет таблицу A, приложение читает таблицу A с новыми данными, приложение читает таблицу B со старыми данными, сервер изменяет таблицу B.

Положим у нас включена асинхронная или синхронная репликация средствами postgresql (не на триггерах) на другой сервер slave.

Вопрос: гарантируется ли появление на slave изменений сделанных в транзакции на master так же транзакционно?

★★★★

Ответ на: комментарий от maxcom

Спасибо. А в случае асинхронной репликации как понять что slave синхронен в данный момент? Как вы переключаете master-slave? Как вы защищаетесь от ситуации когда master может упасть, а slave не синхронен? вы синхронизируете его и потом выставляете в работу либо сразу выставляете в работу и начинаете синхронизировать? А что если он упадет в момент синхронизации? Какие инструменты для автоматизации всего этого вы используете. Заранее спасибо.

quest ★★★★ ()
Последнее исправление: quest (всего исправлений: 1)
Ответ на: комментарий от quest

А в случае асинхронной репликации как понять что slave синхронен в данный момент?

Наверное вы имеете ввиду лаг репликации

Master:

SELECT pg_current_xlog_location();

Slave:

SELECT pg_last_xlog_receive_location();

Как вы переключаете master-slave?

trigger_file / с помощью pgpool-II

вы синхронизируете его и потом выставляете в работу либо сразу выставляете в работу и начинаете синхронизировать?

если нужен еще один standby, то вестимо

psql -c "SELECT pg_start_backup('label', true)"

rsync data с мастера с исключением pid'a, конфигов / pg_basebackup

psql -c "SELECT pg_stop_backup()"

А что если он упадет в момент синхронизации?

WAL

Рекомендую к прочтению:

Работа с PostgreSQL настройка и масштабирование

Streaming Replication

24.3. Continuous Archiving and Point-in-Time Recovery (PITR)

dober ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.