/Otus-Pr-linux-HW27

Work with Postgres

Primary LanguageShell

Введение

В данном домашнем задании нам необходимо настроить репликацию Postgres.


  • Для выполнения данного ДЗ, необходимо скачать стенд и запустить его.
https://github.com/Dmitriy-Iv/Otus-Pr-linux-HW27.git
cd Otus-Pr-linux-HW27/
vagrant up
  • В результате у нас будут созданы два виртуальных сервера, с установленными PostgreSQL 14.5 и настроенной потоковой асинхронной репликацией в режиме Master-Replica. В playbook создаётся тестовая база с тестовой табличкой на master сервере. Проверим её наличие на slave, а также создадим ещё одну и проверим рпликацию.

Проверка репликации:

alt text

alt text

alt text

А также на slave можно посмотреть статус потоковой передачи командой SELECT * FROM pg_stat_wal_receiver;

alt text

  • В качестве бэкапа базы была выбрана встроенная утилита - pg_dump. Создан небольшой скрипт, который бэкапит базу test_base и чистит бэкапы старше 7 дней. Задание добавлено в крон - выполнять бэкап каждую минуту. Выполняется на slave сервере. Для проверки, удалим на мастере из базы test_base ранее созданные таблицы, далее скачаем бэкап и восстановим его на мастере, и проверим, как данные снова реплицируются на slave.

Востановление из бэкапа:

alt text

alt text