LINUX.ORG.RU
ФорумAdmin

Умирают реплики postgres одновременно

 ,


0

2

в строго определённое время резко умирают потоковые реплики (10 штук) постгреса и никакие перезапуски не помогают. Началось это внезапно 2 дня назад, вроде ничего не делали с того времени. До этого всё было прекрасно. Запись напрямую в реплику не работает, проверяли (на тот случай, если вдруг какой-то процесс это делает)

ОС ubuntu 16.04, версия PG 9.5

2019-04-11 00:00:02.461 UTC [20140] LOG: invalid record length at 1B62/F21E54D8 2019-04-11 00:00:02.461 UTC [7142] FATAL: terminating walreceiver process due to administrator command 2019-04-11 00:00:02.463 UTC [20140] LOG: invalid record length at 1B62/F21E54D8 2019-04-11 00:00:02.463 UTC [20140] LOG: invalid record length at 1B62/F21E54D8

бах и всё. Пока не прибьёшь весь main и не накатишь в мастера - тогда работает дальше строго до 0 часов по UTC

Кто виноват и что делать?


Конечно, мониторинга у вас нет. Логи тоже не показываете.

Если разом, значит централизованно от мастера (судя по логу в том числе). Смущает их кол-во - 10 штук.
Возможно стоит посмотреть параметр max_wal_senders, может не хватать, но это не причина их отпадания.

Идея выше про backup не исключена
Возможно из-за нагрузки или еще чего мастер перезагружается

Вообще, логи смотрите

uspen ★★★★★
()
Ответ на: комментарий от turtle_bazon

Бекап да, делался именно в это время (сейчас перенёс для проверки теории). Только он делается уже год как в одно и тоже время и чего-то раньше такого замечательного эффекта не наблюдалось.

wadim_
() автор топика
Ответ на: комментарий от uspen

Лог на мастере пустой, там в это время ничего нет вообще, нечего показывать А лог на любом из слейвов я показал выше

max_wal_senders - достаточно, их не прибавлялось и уж точно не должно вызывать эффект мгновенного умирания всех.

С мастером не происходит вообще ничего. Это и печалит. Пока включил логи подробнее на паре реплик

log_error_verbosity = VERBOSE

wadim_
() автор топика
Ответ на: комментарий от wadim_

База могла вырасти. И во время бекапа стандартного, как я помню, блочится база. Или типа того, короче, реплики идут по завершению.

turtle_bazon ★★★★★
()
Ответ на: комментарий от turtle_bazon

Новое открытие - это происходит в 0 часов ровно. Или по EST или по UTC, смотря где

2019-04-12 06:44:54.644 EST [34380] LOCATION: libpqrcv_connect, libpqwalreceiver.c:117 2019-04-12 06:44:58.664 EST [34381] LOG: 00000: started streaming WAL from primary at 1BAA/D9000000 on timeline 1 2019-04-12 06:44:58.664 EST [34381] LOCATION: WalReceiverMain, walreceiver.c:363 2019-04-13 00:00:03.369 EST [32498] LOG: 00000: invalid record length at 1BCA/DA0E0258 2019-04-13 00:00:03.369 EST [32498] LOCATION: ReadRecord, xlog.c:3991 2019-04-13 00:00:03.369 EST [34381] FATAL: 57P01: terminating walreceiver process due to administrator command 2019-04-13 00:00:03.369 EST [34381] LOCATION: ProcessWalRcvInterrupts, walreceiver.c:167 2019-04-13 00:00:03.469 EST [32498] LOG: 00000: invalid record length at 1BCA/DA0E0258 2019-04-13 00:00:03.469 EST [32498] LOCATION: ReadRecord, xlog.c:3991 2019-04-13 00:00:03.469 EST [32498] LOG: 00000: invalid record length at 1BCA/DA0E0258 2019-04-13 00:00:03.469 EST [32498] LOCATION: ReadRecord, xlog.c:3991 2019-04-13 00:00:03.469 EST [32498] LOG: 00000: invalid record length at 1BCA/DA0E0258 2019-04-13 00:00:03.469 EST [32498] LOCATION: ReadRecord, xlog.c:3991 2019-04-13 00:00:08.475 EST [32498] LOG: 00000: invalid record length at 1BCA/DA0E0258 2019-04-13 00:00:08.475 EST [32498] LOCATION: ReadRecord, xlog.c:3991

wadim_
() автор топика
Ответ на: комментарий от turtle_bazon

Ещё одна поправка. В этот раз случилось ровно в 0 по EST

2019-04-13 01:25:20.929 UTC [12945] LOG: started streaming WAL from primary at 1BC4/4000000 on timeline 1 2019-04-13 05:00:03.409 UTC [12036] LOG: invalid record length at 1BCA/DA0E0258 2019-04-13 05:00:03.417 UTC [12945] FATAL: terminating walreceiver process due to administrator command 2019-04-13 05:00:03.418 UTC [12036] LOG: invalid record length at 1BCA/DA0E0258 2019-04-13 05:00:03.418 UTC [12036] LOG: invalid record length at 1BCA/DA0E0258 2019-04-13 05:00:03.418 UTC [12036] LOG: invalid record length at 1BCA/DA0E0258 2019-04-13 05:00:08.423 UTC [12036] LOG: invalid record length at 1BCA/DA0E0258

wadim_
() автор топика
Ответ на: комментарий от Turbid

Это не открытие, просто вставлять в текст теги вручную в 2к19 - это слишком круто.

wadim_
() автор топика
Ответ на: комментарий от turtle_bazon

А на мастере в это время - ничего, вообще!

2019-04-12 23:59:49.854 EST [49236] tracker@aaa LOG: 08006: could not receive data from client: Connection reset by peer

2019-04-12 23:59:49.854 EST [49236] tracker@aaa LOCATION: pq_recvbuf, pqcomm.c:919

2019-04-13 00:00:09.589 EST [49559] tracker@aaa LOG: 08006: could not receive data from client: Connection reset by peer

2019-04-13 00:00:09.589 EST [49559] tracker@aaa LOCATION: pq_recvbuf, pqcomm.c:919

2019-04-13 00:00:09.589 EST [49561] tracker@aaa LOG: 08006: could not receive data from client: Connection reset by peer

2019-04-13 00:00:09.589 EST [49561] tracker@aaa LOCATION: pq_recvbuf, pqcomm.c:919

2019-04-13 00:00:09.589 EST [49556] tracker@aaa LOG: 08006: could not receive data from client: Connection reset by peer

wadim_
() автор топика
Ответ на: комментарий от turtle_bazon

База не растёт, максимум мегов на 50 в сутки

сейчас оживил 2 реплики, буду ждать 0 по EST, завтра гляну

не очень понял, что тут надо увидеть?

postgres=# select * from pg_stat_replication;

pid | usesysid | usename | application_name | client_addr | client_hostname | client_port | backend_start | backend_xmin | state | sent_location | write_location | flush_location | replay_location | sync_priority | sync_state -------+----------+----------+------------------+----------------+-----------------+-------------+-------------------------------+--------------+-----------+---------------+----------------+----------------+-----------------+---------------+------------

92078 | 10 | postgres | walreceiver | 18.72.2.14 | | 2184 | 2019-04-13 05:59:55.361197-05 | | streaming | 1BD6/63740D68 | 1BD6/63740D68 | 1BD6/63740D68 | 1BD6/6373DE78 | 0 | async

91982 | 10 | postgres | walreceiver | 31.22.2.8 | | 31620 | 2019-04-13 05:59:38.198516-05 | 486133549 | streaming | 1BD6/63740D68 | 1BD6/63740D68 | 1BD6/63740D68 | 1BD6/6373DE78 | 0 | async

(2 rows)

wadim_
() автор топика

FATAL: terminating walreceiver process due to administrator command

Явно нам говорит что кто-то шлет валресиверу сигнал 15. Копайте в кронтабы.

ventilator ★★★
()
Последнее исправление: ventilator (всего исправлений: 1)

версия PG 9.5

Версию целиком нужно писать, всё что в select version()

В 9.5 ветке 16 версий: «9.5.16 · 2019-02-14»

anonymous
()

Пока не прибьёшь весь main и не накатишь в мастер

настройте дополнительно, archive_mode = on + archive_command на внешнюю шару, и на реплике добавьте restore_command

тогда уже при поднятии реплики если нет необходимых wals в мастере он их вытащит из архива

anonymous2 ★★★★★
()
Последнее исправление: anonymous2 (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.