postgrespro / pg_probackup

Backup and recovery manager for PostgreSQL
https://postgrespro.github.io/pg_probackup/
Other
703 stars 86 forks source link

postgrespro-1c-15 и pg_probackup-15 #600

Open koledenkoff opened 1 year ago

koledenkoff commented 1 year ago

Здравствуйте! Есть Debian 11 на нем установолен postgrespro 15 для 1С и утилита pgprobackup-15 для ванильной версии. При попытке сделать backup получаем ошибку:

superuser@srv-pg:~$ sudo pg_probackup-15 init -B /backup/
INFO: Backup catalog '/backup' successfully initialized
superuser@srv-pg:~$ sudo pg_probackup-15 add-instance -B /backup --instance srv-pg --pgdata /var/lib/pgpro/1c-15/data/
INFO: Instance 'srv-pg' successfully initialized
superuser@srv-pg:~$ sudo pg_probackup-15 show -B /backup

BACKUP INSTANCE 'srv-pg'
=================================================================================================================
 Instance  Version  ID  Recovery Time  Mode  WAL Mode  TLI  Time  Data  WAL  Zratio  Start LSN  Stop LSN  Status
=================================================================================================================

superuser@srv-pg:~$ sudo pg_probackup-15 backup -B /backup -b FULL --stream --instance srv-pg --pgdata /var/lib/pgpro/1c-15/data/
INFO: Backup start, pg_probackup version: 2.5.12, instance: srv-pg, backup ID: RU6CAT, backup mode: FULL, wal mode: STREAM, remote: false, compress-algorithm: none, compress-level: 1
ERROR: could not connect to database root: подключиться к серверу через сокет "/var/run/postgresql/.s.PGSQL.5432" не удалось: Нет такого файла или каталога
        Сервер действительно работает локально и принимает подключения через этот сокет?

WARNING: Backup RU6CAT is running, setting its status to ERROR

Но дело в том, что pgprobackup ищет файл .s.PGSQL.5432 в каталоге "/var/run/postgresql А он создается по умолчанию в каталоге /tmp. Можно в файле конфигурации поменять параметр unix_socket_directories ='/tmp' на '/var/run/postgresql' ? Но тогда получаем:

superuser@srv-pg:~$  sudo -u postgres psql postgres
psql: ошибка: подключиться к серверу через сокет "/tmp/.s.PGSQL.5432" не удалось: Нет такого файла или каталога
        Сервер действительно работает локально и принимает подключения через этот сокет?

Как корректно решить эту ошибку? Можно ли надеяться на появление отдельной версии pgprobackup для сборки postgrespro для 1С?

fukanchik commented 1 year ago

А если Вы psql без изменения настроек коннектитесь - всё нормально срабатывает? Мы используем обычную libpq поэтому у нас работают все её настройки, например Вы могли бы сделать вот так:

export PGHOST=/tmp
koledenkoff commented 1 year ago

По дефолту после устанавки все срабатывает нормально:

superuser@srv-pg:~$ sudo -u postgres psql postgres                                                                           psql (15.2)
Введите "help", чтобы получить справку.

postgres=#
superuser@srv-pg:~$ export
declare -x PGHOST="/tmp"

superuser@srv-pg:~$ sudo pg_probackup-15 backup -B /backup -b FULL --stream --instance srv-pg --pgdata /var/lib/pgpro/1c-15/data/
INFO: Backup start, pg_probackup version: 2.5.12, instance: srv-pg, backup ID: RU6KXT, backup mode: FULL, wal mode: STREAM, remote: false, compress-algorithm: none, compress-level: 1
ERROR: could not connect to database root: подключиться к серверу через сокет "/var/run/postgresql/.s.PGSQL.5432" не удалось: Нет такого файла или каталога
        Сервер действительно работает локально и принимает подключения через этот сокет?

WARNING: Backup RU6KXT is running, setting its status to ERROR

Вроде ничего не изменилось... та же ошибка.

CapNem0 commented 1 year ago

Ну как бы СОВСЕМ изменилось sudo -u postgres psql postgres это от пользователя постреса sudo pg_probackup-15 backup -B /backup -b FULL .... а это как бы уже от рута системы
ERROR: could not connect to database root: явное указание на траблу

Я это в кроне от от пользователя postgres или если у пострела запрещён вход и нет шеллаковое то сначала вот так sudo su -s /bin/bash -l postgres а потом я уже пользователя postgres