powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / WARNING: archiving transaction log file failed too many times
11 сообщений из 11, страница 1 из 1
WARNING: archiving transaction log file failed too many times
    #39296084
rinace
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Что-то не могу сообразить в чем проблема.

В логе
2016-08-23 04:10:38 AST [5203-7999] LOG: archive command failed with exit code 1
2016-08-23 04:10:38 AST [5203-8000] DETAIL: The failed archive command was: ssh postgres@172.17.41.215 test ! -e /backups/wals/0000000D000000000000008C && scp pg_xlog/0000000D000000000000008C postgres@172.17.41.215:/backups/wals/0000000D000000000000008C
2016-08-23 04:10:38 AST [5203-8001] WARNING: archiving transaction log file "0000000D000000000000008C" failed too many times, will try again later

На архивном сервере
[postgres@pg-archive1.cur:backups]$ ls -la /backups/wals/0000000D000000000000008C
-rw------- 1 postgres postgres 16777216 Aug 22 06:59 /backups/wals/0000000D000000000000008C

Два вопроса :
1)По моему нормальная ситуация - файл уже есть, архивировать его не надо , но почему запись в лог идет?
2)как избавится от ситуации ? checkpoint n pg_switch_xlog() делал.

Спасибо
...
Рейтинг: 0 / 0
WARNING: archiving transaction log file failed too many times
    #39296110
Melkij
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может, отказаться вообще от archive command и запустить на удалённой машине pg_receivexlog?

Какой код возврата от test? От test поверх ssh? От scp? Может, кто-нибудь из них что интересное пишет в stdout/stderr - не помню, будет ли это попадать в лог pg.
...
Рейтинг: 0 / 0
WARNING: archiving transaction log file failed too many times
    #39296161
rinace
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Melkij,

Спасибо за наводки, по поводу pg_receivexlog - надо подумать
...
Рейтинг: 0 / 0
WARNING: archiving transaction log file failed too many times
    #39296714
Фотография Misha Tyurin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Melkij,

> отказаться вообще от archive command и запустить на удалённой машине pg_receivexlog

это не одно и тоже вообщето
...
Рейтинг: 0 / 0
WARNING: archiving transaction log file failed too many times
    #39296808
Melkij
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Misha Tyurin, как пруф, могу сослаться на доклад Magnus Hagander с pgday16: http://pgday.ru/ru/2016/papers/53 Где прямым текстом сказано не используйте archive_command для получения wal для PitR, используйте pg_receivexlog (плюс, с replication slot)
К сожалению, не знаю, выложили ли уже записи с конференции - вроде бы ещё нет.

Ваши возражения?
...
Рейтинг: 0 / 0
WARNING: archiving transaction log file failed too many times
    #39296848
Фотография vyegorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MelkijMisha Tyurin, как пруф, могу сослаться на доклад Magnus Hagander с pgday16: http://pgday.ru/ru/2016/papers/53 Где прямым текстом сказано не используйте archive_command для получения wal для PitR, используйте pg_receivexlog (плюс, с replication slot)
Он приводил какие-то аргументы почему `archive_command` вдруг стала плоха? (Я не был на его докладе.)
...
Рейтинг: 0 / 0
WARNING: archiving transaction log file failed too many times
    #39296936
ursido
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vyegorov,

Основной довод из доклада:
archive_command срабатывает после формирования WAL файла. Затем идет обычная команда OS по действию над этим файлом.
В случае падения сервера имеем промежуток времени в течение которого файл сформирован, но действие еще не выполнено. Автоматического повторения действия не предпринимается. В результате этого может произойти потеря фала.

pg_receivexlog работает как еще один клиент, получающий данные для репликации. То есть обращается напрямую к БД и получает те данные, которые еще не забраны.
Действия выполняются в более "реальном времени", данные гарантированно уходят на внешний сервер.
...
Рейтинг: 0 / 0
WARNING: archiving transaction log file failed too many times
    #39296950
Melkij
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vyegorov, мне кажется что да, несколько причин называл. Но я не записал.
Одну причину вижу в мануале:
https://www.postgresql.org/docs/9.4/static/app-pgreceivexlog.html
авторpg_receivexlog streams the transaction log in real time as it's being generated on the server, and does not wait for segments to complete like archive_command does
Больше ничего конкретного не могу вспомнить.
...
Рейтинг: 0 / 0
WARNING: archiving transaction log file failed too many times
    #39296978
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vyegorovMelkijMisha Tyurin, как пруф, могу сослаться на доклад Magnus Hagander с pgday16: http://pgday.ru/ru/2016/papers/53 Где прямым текстом сказано не используйте archive_command для получения wal для PitR, используйте pg_receivexlog (плюс, с replication slot)
Он приводил какие-то аргументы почему `archive_command` вдруг стала плоха? (Я не был на его докладе.)

pg_receivexlog куда сложнее сделать неверно
а 99% archive_commands что я видел в поле - они неверны в корне просто.

--
Maxim Boguk
www.postgresql-consulting.ru
...
Рейтинг: 0 / 0
WARNING: archiving transaction log file failed too many times
    #39297240
Фотография Misha Tyurin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Melkij,

> (плюс, с replication slot)

вот, хорошо, это надо было вспомнить. да. // иначе как это ввели в бой в 92 было совсем непригодно. и еще только относительно недавно там начали fsync делать.


а теперь представьте, что у вас нагруженный мастер на пару-тройку-... сотен MBit/sec wal трафика на выходе, и N стендбаев. и вы тогда съедаете канал пропорционально N. а при archive command вы съедаете всегда только 1, и можете еще жать так сильно, как будете успевать по cpu.

там всякие еще тонкости есть, в итоге я бы 99% Максима обобщил бы на все архивы без относительно способов оправки/получения валов.

а по поводу archive command -- система развивается также, и вот щас сделали режим always, например, крайне полезный.
...
Рейтинг: 0 / 0
WARNING: archiving transaction log file failed too many times
    #39297545
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Misha TyurinMelkij,
а теперь представьте, что у вас нагруженный мастер на пару-тройку-... сотен MBit/sec wal трафика на выходе, и N стендбаев. и вы тогда съедаете канал пропорционально N. а при archive command вы съедаете всегда только 1, и можете еще жать так сильно, как будете успевать по cpu.


Если у вас столько WAL и такие нагрузки - нет проблемы сделать 10GBit сетку на базе (IMHO 10gbit На базе вообще на любой стоит по умолчанию иметь если там хоть какая то нагрузка ожидается... 1Gbit - это сетка для дома и офиса).
Ну и отставание реплик с streaming сильно меньше (а в 9.6 можно будет syncronous_commit=remote_apply иметь и вообще иметь реплики синхронные с мастером по чтению).

--
Maxim Boguk
www.postgresql-consulting.ru
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / WARNING: archiving transaction log file failed too many times
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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