little fixes

This commit is contained in:
2023-12-26 04:34:28 +06:00
parent 502633a0d5
commit 299a17db96
25 changed files with 113 additions and 49 deletions

View File

@ -4,6 +4,7 @@ description: Потоковая репликация и репликация с
date: 2022-11-25T16:51:00+05:00
tags: [linux, postgres, nfs]
---
## Установка Postgres Pro
Процесс установки описан в [этом посте](/posts/postgres-pro-astra-se).
@ -11,17 +12,16 @@ tags: [linux, postgres, nfs]
Про различия в реализациях репликаций можно почитать вот [здесь](//edu.postgrespro.ru/dba3/dba3_04_replica_physical.pdf).
### Конфигурация master
Действия с Postgres Pro следует выполнять от имени пользователя postgres.
```shell
su - postgres
```
#### Создание пользователя для репликации
```shell
```bash
su - postgres
psql -c "CREATE ROLE repuser WITH REPLICATION LOGIN ENCRYPTED PASSWORD '<password>';"
```
#### Разрешение подключения для slave
Дописываем в конец файла `/var/lib/pgpro/std-*/data/pg_hba.conf`:
```config
@ -29,7 +29,8 @@ host replication repuser <slave-ip>/32 md5
```
#### Реконфигурация
В файл `/var/lib/pgpro/std-13/data/postgresql.conf` необходимо добавить следующие строки:
В файл `/var/lib/pgpro/std-*/data/postgresql.conf` необходимо добавить следующие строки:
```config
listen_addresses = 'localhost, <master-ip>'
@ -54,13 +55,16 @@ pg_basebackup -P -R -X stream -c fast -h <master-ip> -U postgres -D /var/lib/pgp
```
## Репликация с архивом
Настройка репликации с архивом выролняется с некоторыми отличиями от потоковой репликации:
### Развёртывание NFS
WAL-архивы будут складываться на NFS. Как сконфигурировать NFS написано [здесь](/posts/linux-nfs).
Необходимо смонтировать NFS на master и slave в одинаковые директории.
### Дополнение к реконфигурации
В файл `/var/lib/pgpro/std-*/data/postgresql.conf` необходимо добавить следующие строки:
```config
@ -69,6 +73,7 @@ archive_cleanup_command = 'pg_archivecleanup -d /nfs %r 2>>cleanup.log'
```
## Синхронный и асинхронный режим репликации
При синхронной репликации, изменения применятся на основном сервере только после того, как они запишутся в WAL хотя бы одной реплики, а при асинхронной - сразу.
По умолчанию репликация работает в асинхронном режиме.
Для того, чтобы она работала в синхронном режиме, необходимо изменить две строки в конфигурационном файле Postgres Pro `/var/lib/pgpro/std-*/data/postgresql.conf`: