Требуется ли Барману установка соединения ssh при установке на том же хосте, что и Хост PostgreSQL?

Я пытаюсь настроить Barman ( pgbarman ) для работы вместе с базой данных PostgreSQL на одном и том же хосте, я не хочу устанавливать barman на отдельный хост, но могу ' не найти никакой документации о таком подходе. Все ресурсы в Интернете посвящены настройке бармена на отдельном сервере, а затем настройке SSH-соединения для архивирования и резервного копирования WAL, нужно ли мне настраивать ssh-соединение также, когда я нахожусь на одном хосте, когда 'ДА' , тогда как настроить Barman и базу данных?!

для достижения того, что я хочу (частично), я сделал следующее:

  • Конфигурация сервера Barman:
 $ cat /etc/barman.d/  10-main.conf

 [10 пг]
description = "Главный сервер PostgreSQL"
conninfo = host = 127.0.0.1 user = barman dbname = postgres port = 5432
backup_method = postgres
архиватор = включен
 
  • Конфигурация PostgreSQL Wal (postgresql.conf):

Мне пришлось добавить команду chown, потому что она не распознает файлы (WAL), если они принадлежат другому пользователю (кроме barman)

 wal_level = реплика
archive_mode = on
archive_command = 'test!  -f / var / lib / barman / 10pg / incoming /% f && cp% p / var / lib / barman / 10pg / incoming /% f && sudo chown barman / var / lib / barman / 10pg / incoming /% f '
 
  • PostgreSQL HBA (pg_hba.conf):
 локальный одноранговый узел
 
  • sudo без пароля для пользователя "postgres" (/ etc / sudoers):
 postgres ALL = (ALL) NOPASSWD: ALL
 

Как видите, описанный выше метод не выглядит нормальным.

-1
задан 4 October 2019 в 17:56
1 ответ

Следующая настройка позволит Барману выполнять резервное копирование базы данных с помощью pg_basebackup и получать журналы WAL с помощью pg_receivewal, где Barman установлен на той же ОС, что и база данных PostgreSQL (без SSH / RSYNC) :

1-й. подготовить файл глобальной / общей конфигурации (бармен).

2-й. подготовьте файл конфигурации сервера (бармен):

$ cat /etc/barman.d/{servername}.conf 

[streaming] # the name of the server configuration file, which would be later refer to as {barman-server-config-name} 
# Human readable description 
description =  "Main PostgreSQL 10 Database (Streaming-Only)" 
# ######################################################### 
# PostgreSQL connection string (mandatory) 
# ######################################################### 
conninfo = host=localhost user=barman dbname=postgres 
# ######################################################### 
# PostgreSQL streaming connection string 
# ######################################################### 
# To be used by pg_basebackup for backup and pg_receivexlog for WAL streaming 
streaming_conninfo = host=localhost user=barman 
# ######################################################### 
# Backup settings (via pg_basebackup) 
# ######################################################### 
backup_method = postgres  
# ######################################################### 
# WAL streaming settings (via pg_receivexlog) 
# ######################################################### 
streaming_archiver = on 
slot_name = barman 
#streaming_archiver_name = barman_receive_wal 
#streaming_archiver_batch_size = 50 
# PATH setting for this server 
#path_prefix = "/usr/pgsql-12/bin" 
backup_method = postgres 
incoming_wals_directory = /var/lib/barman/streaming/incoming 

3-й. подготовьте файл ~ / .pgpass:

$ cat ~/.pgpass 

#hostname:port:database:username:password 
localhost:5432:replication:barman:barman 
localhost:5432:postgres:barman:barman 

$ chmod 0600 ~/.pgpass 

4-й. подготовить базу данных PostgreSQL:

создать пользователя базы данных:

$ psql –c “create user barman superuser replication password 'barman';” 

Отредактировать файл конфигурации PostgreSQL /etc/postgresql/{major-realease}/{cluster-name}/postgresql.conf:

wal_level = replica 
archive_mode = on
archive_command = 'test ! -f /var/lib/barman/{barman-server-config-name}/incoming/%f && cp %p /var/lib/barman/ {barman-server-config-name} /incoming/%f'
archive_timeout = 3600
max_wal_senders = 2
max_replication_slots = 10

Создать слот и запустить Процесс получения-сообщения для Бармена:

Запустить процесс получения-сообщения. Процесс использует протокол потоковой передачи для получения файлов WAL с сервера PostgreSQL.

$ barman cron 
$ barman receive-wal –create-slot {barman-server-config-name} 
$ barman receive-wal {barman-server-config-name} 

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

$ barman check {barman-server-config-name} 
$ barman status {barman-server-config-name} 
$ barman replication-status {barman-server-config-name} 
0
ответ дан 5 December 2019 в 20:13

Теги

Похожие вопросы