Проект «SnakeProject» Михаила КозловаРегистрация

Навигация
⇒FreeBSD and Nix⇒

⇐CISCO
⇐Voice(Asterisk\Cisco)
⇐Microsoft
⇐Powershell
⇐Python
⇐SQL\T-SQL
⇐1С
⇐Общая
⇐WEB Разработка
⇐ORACLE SQL \ JAVA
⇐Мото

Потоковая репликация в PostgreSQL (Теория)


 

Потоковая репликация в PostgreSQL (Теория)

 

В продолжение к практической статье теперь немного теории

Практическая статья:

http://snakeproject.ru/rubric/article.php?art=freebsd_postgresql_master_slave_replication_19.06.18

 

REDO журнал в PostgreSQL:

REDO журнал - история "последних" изменений

Изменения записываются в REDO журнал

REDO журнал используется:
При аварийном восстановлении
При резервном копировании
При репликации

REDO журнал имеет имя - WAL (Write Ahead Log)

WAL гарантирует: информация об изменениях будет зафиксирована ДО реальных изменений

Принцип работы:
LSN (log sequence number) – кладет записи внутрь WAL
Страницы маркируются LSN
Перед записью страницы на диск проверяется, что LSN уже записан в журнал

 

WAL Receiver процесс:

Определяет, с какого места начать прием WAL

Подключяется к MASTER и отправляет LSN отметки

Принимает WAL и записывает на диск

Обновляет особую переменную в shared memory

Отправляет статистику на мастер

 

Startup процесс:

Использует особую переменную, чтобы воспроизвести WAL до указанного места

 

WAL Sender процесс:

Для каждого SLAVE создается backend-процесс

Запускает репликацию

Отправляет WAL журнал SLAVE

Спит, если нет новых журналов

 

Схема работы репликации:

Реплика -> Мастер
Проверка источника XLOG
Запуск WAL receiver
Вычисление стартовой позиции
Подключение к мастеру, отправка  
позиции

Мастер -> Реплика
Запуск WAL sender и получение позиции
Проверка наличия журнала
Отправка журнала

Реплика -> Мастер
Запись журнала на диск
Обновление "отметки"
Отправка статистики
Воспроизведение журнала

Мастер -> Реплика
Обновление статистики

 

Мониторинг и поиск проблем:
pg_stat_replication — логи репликации
pg_stat_activity — запросы на реплике
pg_current_xlog_location(), pg_xlog_location_diff()

 

Варианты бэкапов:
pg_basebackup + WAL архив
Утилита pgBarman или pgBackRest

 

 
 

Комментарии пользователей

Эту новость ещё не комментировалиНаписать комментарий
Анонимам нельзя оставоять комментарии, зарегистрируйтесь!

© Snakeproject.ru создан в 2013 году. При копировании материала с сайта - оставьте ссылку.


Яндекс.Метрика

Goon Каталог сайтов Рейтинг@Mail.ru