postgrespro/pg_probackup

Проблем с запуском full pg_probackup-16

AndreyMoiseev84 opened this issue · 6 comments

Имеем Debian 11 + postgrespro-1c-16
Установил g_probackup-16 добавил хранилище и инстансе в нём.
Пытаюсь запустить создание фулл бэкапа, получаю следующую ошибку

postgres@PGAUTO:~$ pg_probackup-16 backup --threads=3 -B /backup_pg --instance backup -b FULL --stream --compress
WARNING: Control file "/backup_pg/backups/backup/S93KQV/backup.control" doesn't exist
WARNING: Control file "/backup_pg/backups/backup/S93JUP/backup.control" doesn't exist
INFO: Backup start, pg_probackup version: 2.5.13, instance: backup, backup ID: S93LBZ, backup mode: FULL, wal mode: STREAM, remote: false, compress-algorithm: zlib, compress-level: 1
ERROR: could not connect to database postgres: не удалось подключиться к серверу: Нет такого файла или каталога
Он действительно работает локально и принимает
соединения через Unix-сокет "/var/run/postgresql/.s.PGSQL.5432"?

Postgres pro работает

root@PGAUTO:~# systemctl status postgrespro-1c-16.service
● postgrespro-1c-16.service - Postgres Pro 1c 16 database server
Loaded: loaded (/lib/systemd/system/postgrespro-1c-16.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2024-02-19 11:12:21 MSK; 2h 5min ago
Process: 372 ExecStartPre=/opt/pgpro/1c-16/bin/check-db-dir ${PGDATA} (code=exited, status=0/SUCCESS)
Main PID: 384 (postgres)
Tasks: 10 (limit: 23394)
Memory: 2.3G
CPU: 11min 6.465s
CGroup: /system.slice/postgrespro-1c-16.service
├─ 384 /opt/pgpro/1c-16/bin/postgres -D /var/lib/pgpro/1c-16/data
├─ 451 postgres: logger
├─ 452 postgres: checkpointer
├─ 453 postgres: background writer
├─ 455 postgres: walwriter
├─ 456 postgres: autovacuum launcher
├─ 457 postgres: logical replication launcher
├─2137 postgres: postgres auto 192.168.250.110(56752) idle
├─2868 postgres: postgres auto 192.168.250.110(60419) idle
└─2869 postgres: postgres auto 192.168.250.110(60420) idle

фев 19 11:12:20 PGAUTO systemd[1]: Starting Postgres Pro 1c 16 database server...
фев 19 11:12:21 PGAUTO postgres[384]: 2024-02-19 11:12:21.307 MSK [384] СООБЩЕНИЕ: передача вывода в протокол процессу сбора протоколов
фев 19 11:12:21 PGAUTO postgres[384]: 2024-02-19 11:12:21.307 MSK [384] ПОДСКАЗКА: В дальнейшем протоколы будут выводиться в каталог "log".
фев 19 11:12:21 PGAUTO systemd[1]: Started Postgres Pro 1c 16 database server.
root@PGAUTO:~#

Скорее всего у Вас в системе установлен системный пакет libpq. Системный libpq пытается установить соединение с сервером через /var/run, в то время как не-дебиановские постгресы ожидают соединения в /tmp.

Детали (про ваниллу, но и в пгпро то же самое) - https://www.postgresql.org/message-id/21044.1326496507@sss.pgh.pa.us

Если у Вас нет возможности удалить этот пакет из системы, придётся устанавливать LD_LIBRARY_PATH перед запуском probackup.

Спасибо за информацию, насколько я понимаю Можно сделать так
В postgresql.con
Раскоментить и указать нужное значение для unix_socket_directories
unix_socket_directories = '/var/run/postgresql/'

но почему то после указания данного параметра перестает стартовать служба postgres

Job for postgrespro-1c-16.service failed because the control process exited with error code.
See "systemctl status postgrespro-1c-16.service" and "journalctl -xe" for details.

Вопрос в том почему не работает ?

journalctl -xe даст нужную информацию. Скорее всего сокет в /var/run/postgresql уже занят процессом другим постгрес который вы ставили из репозитория debian. Попробуйте сконфигурировать другой номер порта.

journalctl -xe даст нужную информацию. Скорее всего сокет в /var/run/postgresql уже занят процессом другим постгрес который вы ставили из репозитория debian. Попробуйте сконфигурировать другой номер порта.
Это было бы слишком просто )) Pg установлен только 1 - postgrespro-1c-16

А что было-то?

А что было-то?
С упорством достойным лучшего применения пытался указать настройку так
unix_socket_directories = /var/run/postgresql/
затем выспался и понял что дичь творю (логи наше все ) )
root@bakupTest:/var/lib/pgpro/1c-16/data# cat postgresql.conf | grep unix
unix_socket_directories = '/var/run/postgresql/' # comma-separated list of directories

И вуаля

root@bakupTest:/var/lib/pgpro/1c-16/data# sudo -u postgres pg_probackup-16 backup --threads=3 -B /bg_bakup --instance backup -b FULL --stream --compress
WARNING: Control file "/bg_bakup/backups/backup/S93OIM/backup.control" doesn't exist
WARNING: Control file "/bg_bakup/backups/backup/S93YCT/backup.control" doesn't exist
WARNING: Control file "/bg_bakup/backups/backup/S93WUA/backup.control" doesn't exist
WARNING: Control file "/bg_bakup/backups/backup/S93XBY/backup.control" doesn't exist
WARNING: Control file "/bg_bakup/backups/backup/S95GNQ/backup.control" doesn't exist
WARNING: Control file "/bg_bakup/backups/backup/S93YE0/backup.control" doesn't exist
INFO: Backup start, pg_probackup version: 2.5.13, instance: backup, backup ID: S95GOE, backup mode: FULL, wal mode: STREAM, remote: false, compress-algorithm: zlib, compress-level: 1
WARNING: This PostgreSQL instance was initialized without data block checksums. pg_probackup have no way to detect data block corruption without them. Reinitialize PGDATA with option '--data-checksums'.
WARNING: Current PostgreSQL role is superuser. It is not recommended to run pg_probackup under superuser.
INFO: Database backup start
INFO: wait for pg_backup_start()
INFO: Wait for WAL segment /bg_bakup/backups/backup/S95GOE/database/pg_wal/000000010000000000000002 to be streamed
INFO: PGDATA size: 22MB
INFO: Current Start LSN: 0/2000028, TLI: 1
INFO: Start transferring data files
INFO: Data files are transferred, time elapsed: 0
INFO: wait for pg_stop_backup()
INFO: pg_stop backup() successfully executed
INFO: stop_lsn: 0/20001A0
INFO: Getting the Recovery Time from WAL
INFO: Syncing backup files to disk
INFO: Backup files are synced, time elapsed: 0
INFO: Validating backup S95GOE
INFO: Backup S95GOE data files are valid
INFO: Backup S95GOE resident size: 24MB
INFO: Backup S95GOE completed
root@bakupTest:/var/lib/pgpro/1c-16/data#