← На главную

Блог · Бессонный Кодер

Переносим базу PostgreSQL используя репликацию

Сегодня мы поговорим как перенести боевую базу данных PostgreSQL без простоя нашего приложения. Для этого мы будем использовать репликацию.

Для начала нам нужен наш второй сервер, на который мы будем переносить базу, обратите вниманеи что для избежания большенства проблем, вам нужно использовать сервера с одинаковым программным обеспечением и версией PostgreSQL.

Для упрощения исходный сервер я буду называть master, а сервер на который мы будем переносить базу replica.

  1. СДЕЛАЙТЕ БЕКАП БАЗЫ ДАННЫХ И КОНФИГУРАЦИИ НА МАСТЕР СЕРВЕРЕ
  2. Включаем репликацию на мастер сервере, для этого в конфиг postgresql.conf добавляем следующие строки:
wal_level = replica
max_wal_senders = 3
wal_keep_size = 1024
  1. Разрешаем доступ к репликации, для этого в конфиг pg_hba.conf добавляем следующие строки:
host    replication all <replica IP>    scram-sha-256
  1. Производим первичную репликацию, при этом процессе у нас копируется вся информация с мастер сервера на реплику:
pg_basebackup -h <master IP> -D /var/lib/postgresql/data -U <replication_user> -Fp -Xs -P
  1. После этого мы можем запустить нашу реплику.
  2. Подготавливаем наши приложения к переносу, для этого мы должны изменить конфигурацию наших приложений, чтобы они использовали новый сервер.
  3. Останавливаем запись данных на мастер сервере:
SELECT pg_switch_wal();
  1. Переносим приложения на новый сервер.
  2. Повышаем реплику до мастера:
pg_ctl promote -D /var/lib/postgresql/data

Если что-то пошло не так

The database was initialized with LC_COLLATE “en_US.UTF-8”, which is not recognized by setlocale().

sudo locale-gen en_US.UTF-8
localedef -f UTF-8 -i en_US en_US.UTF-8
sudo update-locale

database “postgres” has a collation version mismatch

ALTER DATABASE guard REFRESH COLLATION VERSION;
R
АвторБессонный Кодер

Пишу о разработке, системах и играх.

Telegram-канал

Продолжить чтение

Похожие материалы

Статья

Уменьшаем размер диска контейнера в Proxmox

Порой наступает момент когда контейнер в Proxmox становится бесполезно большим, и его размер нужно

Статья

Чистка места на диске после докера

Используя докер на вашем компьютере, вы можете заметить как активно он использует место для контейн

Статья

Java №1. Java — не просто название в версии майна

Что тут сказать, я обещал вам Java, время исполнять обещание. Надеюсь на хорошую обратную связь, а

Статья

Java №3. Что такое JVM

Мы привыкли к мы привыкли думать, что когда вы запускаете программу — компьютер исполняет машинный

Статья

Размышляем о Головоломке: важность печали и опасность экстремального оптимизма

Совсем недавно (как минимум по меркам даты написания этого сценария), на большие экраны вышла Голов

Статья

Java №2. Чем помогла Minecraft-у java

Как мне кажется, одной из важных частей успеха Minecraft — тот факт что он написан на Java. Да, ин

Статья

Этика игр №2. Что дают игры

![https://s3 ru1.redguy.ru/site assets/blogs/etics about games 2 what games gives/header.jpg](https

Статья

Этика игр №4. Читеры

Говорить о политке конечно весело, но боюсь это не единственный вопрос этики , который затрагивает

Статья

Отчёт о сбое Подпольного транскриптора 01.08.23-02.08.23

Совсем не дают спокойствия в отпуске 01.08.23 (GMT+3) 10:00 Один из пользователей отправл