postgrespro / pg_probackup

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

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

Closed AndreyMoiseev84 closed 6 months ago

AndreyMoiseev84 commented 6 months ago

Имеем 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:~#

fukanchik commented 6 months ago

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

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

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

AndreyMoiseev84 commented 6 months ago

Спасибо за информацию, насколько я понимаю Можно сделать так В 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.

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

fukanchik commented 6 months ago

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

AndreyMoiseev84 commented 6 months ago

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

fukanchik commented 6 months ago

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

AndreyMoiseev84 commented 6 months ago

А что было-то? С упорством достойным лучшего применения пытался указать настройку так 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#