Гость
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Непрерывное архивирование и восстановление на момент времени / 13 сообщений из 13, страница 1 из 1
09.02.2021, 12:32
    #40043605
vital8111
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Непрерывное архивирование и восстановление на момент времени
Добрый день.
Postgresql 9.6
Настраиваю непрерывный архив.
При восстановлении на какой то момент времени(подсунув соответственно базовый бекап, архив, команду восстановления) система запускается не с 1 раза.
По логам видно что копирует файлы журнала предзаписи из архива и вылетает с "вежливым выключением".
При повторном запуске начинает копировать файлы журнала с того места где вылетело в прошлый раз.
И так запускаем службу несколько раз(до 6 раз доходило). В итоге достигается согласованное состояние на какой-то момент. Запускаем службу еще раз и только тогда система БД стартует. Никаких действий между запусками службы не проводилось. Только запуск.

Подскажите пожалуйста это нормальное поведение? Или должно все восстанавливаться при первом запуске? Хотелось бы, конечно, при первом запуске. Если это возможно подскажите, плз, куда копать, чтобы пофиксить.

Повысить версию БД нет никакой возможности. ОС Astra Linux 1.6 SE

Заранее благодарен.
...
Рейтинг: 0 / 0
09.02.2021, 12:50
    #40043613
Melkij
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Непрерывное архивирование и восстановление на момент времени
Ищите того, кто отправляет сигнал выключения. Возможно где-то выставили таймаут ожидания запуска. Например, в systemd дефолтый выставлен.
...
Рейтинг: 0 / 0
09.02.2021, 13:02
    #40043626
vital8111
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Непрерывное архивирование и восстановление на момент времени
В логах не найти кто послал сигнал?
...
Рейтинг: 0 / 0
09.02.2021, 13:25
    #40043645
vital8111
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Непрерывное архивирование и восстановление на момент времени
Поискал в сторону systemd. Не оно.
Дефолтный таймаут 90 сек. Увеличил до 900 сек.
Система "вежливо выключается" через 6-7 сек.
...
Рейтинг: 0 / 0
09.02.2021, 13:31
    #40043649
Guzya
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Непрерывное архивирование и восстановление на момент времени
Покажите что в recovery.conf.
...
Рейтинг: 0 / 0
09.02.2021, 14:08
    #40043673
vital8111
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Непрерывное архивирование и восстановление на момент времени
там только команда разархивирования и время на которое нужно восстановить
остальное то что в sample. Закомментировано все.
т.е. у меня
restore_command = 'cp /var/lib/postgresql/archive/%f %p'
и
recovery_target_time = '2021-02-09 10:00 MSK'
больше ничего нет(закомментировано)
...
Рейтинг: 0 / 0
09.02.2021, 14:37
    #40043695
Guzya
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Непрерывное архивирование и восстановление на момент времени
проставьте

Код: sql
1.
recovery_target_action = promote
...
Рейтинг: 0 / 0
09.02.2021, 15:00
    #40043706
vital8111
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Непрерывное архивирование и восстановление на момент времени
не помогло.
в syslog появляется запись
Код: html
1.
2.
3.
4.
5.
6.
не удалось привязаться к сокету IPv6: Невозможно назначить запрошенный адрес
Возможно порт 5432 занят другим процессом postmaster? Если нет, повторите попытку через несколько секунд.
postgresql@9.6-main.service: Control process exited, code=exited status=1
Failed to start PostgreSQL Cluster 9.6-main.
postgresql@9.6-main.service: Unit entered failed state.
postgresql@9.6-main.service: Failed with result 'exit-code'.



Но опять же странно
Через несколько запусков нет этой ошибки в логах и сервер спокойно стартует
...
Рейтинг: 0 / 0
09.02.2021, 15:14
    #40043717
vital8111
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Непрерывное архивирование и восстановление на момент времени
Убрал ipv6 ошибка пропала
Но все равно

Код: html
1.
2.
3.
4.
5.
6.
7.
8.
systemd[1]: Starting PostgreSQL Cluster 9.6-main...
postgresql@9.6-main[2561]: The PostgreSQL server failed to start. Please check the log output:
postgresql@9.6-main[2561]: 2021-02-09 15:13:09.667 MSK [2566] СООБЩЕНИЕ:  передача вывода в протокол процессу сбора протоколов
postgresql@9.6-main[2561]: 2021-02-09 15:13:09.667 MSK [2566] ПОДСКАЗКА:  В дальнейшем протоколы будут выводиться в каталог "pg_log".
systemd[1]: postgresql@9.6-main.service: Control process exited, code=exited status=1
systemd[1]: Failed to start PostgreSQL Cluster 9.6-main.
systemd[1]: postgresql@9.6-main.service: Unit entered failed state.
systemd[1]: postgresql@9.6-main.service: Failed with result 'exit-code'.



Где ошибку то искать?
Больше в логах нет ничего
...
Рейтинг: 0 / 0
09.02.2021, 15:26
    #40043724
Guzya
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Непрерывное архивирование и восстановление на момент времени
Вы случаем не на том же сервере где мастер стартуете?
Логи смотрите в ../pg_log/
...
Рейтинг: 0 / 0
09.02.2021, 15:40
    #40043729
vital8111
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Непрерывное архивирование и восстановление на момент времени
Нет. Новая виртуалка. Путь нового архива в auto.conf изменен.
Но конфиги серверов идентичные. Оба виртуальные. Но по идее какая разница даже если на старом. Я же удаляю все из папки кластера. Потом закидываю туда base backup
Сервис естественно останавливаю перед восстановлением через service postgresql stop.

в pg_log нет ничего. Восстанавливает журнал, а потом получен запрос на вежливое выключение.
...
Рейтинг: 0 / 0
09.02.2021, 16:24
    #40043755
vital8111
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Непрерывное архивирование и восстановление на момент времени
Нашел решение на форуме Astra Linux.
Не знаю уж это именно в Astra он себя так ведет или всегда так...

Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Нужно изменить файл /etc/postgresql/9.6/main/pg_ctl.conf, добавив следующие значения:

pg_ctl_options = '-w -t 1800'

где 1800 - это количество секунд, через которое команда запуска кластера Постгрес вернет systemd информацию о текущем состоянии кластера Постгрес (если конечно запуск не завершится до этого момента).

То есть работает это так:
1. systemd пинает команду
ExecStart=@/usr/bin/pg_ctlcluster postgresql@%i --skip-systemctl-redirect %i start
2. Та по умолчанию через очень короткое время (4-6 секунд) возвращает systemd фразу "знаешь, сейчас кластер сообщает что он восстанавливается".
3. systemd почему-то реагирует на это "ах так, ну тогда SIGTERM тебе".
4. Посгтрес сообщает о вежливом выключении и отменяет процесс восстановления
...
Рейтинг: 0 / 0
11.02.2021, 17:55
    #40044544
big-trot
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Непрерывное архивирование и восстановление на момент времени
Похоже эта проблема не связан с ОС Astra Linux SE.
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Непрерывное архивирование и восстановление на момент времени / 13 сообщений из 13, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]