172 похожих чатов

Господа, подскажите по вопросу. Есть сервер БД с настроенным непрерывным

архивированием, и есть сервер бэкапа. В один день сервер БД внезапно завис и какое-то время не работал. Сейчас при попытке сделать бэкап probackup ругается, что WAL segment is absent. Проверил в директории WAL на сервере бэкапов, там действительно этого файла нет. На сервере БД, само собой тоже. Как теперь поправить эту ситуацию? Только сделать полный бэкап? И как можно в дальнейшем избежать такой ситуации?

14 ответов

29 просмотров

у вас при попытке снятия полного бэкапа ошибка такая выходит ?

> Только сделать полный бэкап? По идее, да. А как конкретно всё это вообще настроено (т.е. суть в том, что при минимально адекватных настройках архивирования этого не должно было случиться — т.е. происшедшее указывает на bug в чём-то)? > И как можно в дальнейшем избежать такой ситуации? Выяснить, что произошло, в первую очередь.

Вообще, да, full — но как у вас мог сегмент не попасть в архив? Оно вобще-то не удаляется пока до архива не доехало. Смотрите логи — там должна быть об этом информацыя.

Николай-Ласточкин Автор вопроса
Yaroslav Schekin
> Только сделать полный бэкап? По идее, да. А ка...

Я поглядел в логи, там следующее. В 7:21 был отправлен сегмент 0000000200003FA800000066. Он отправился успешно. В 7:22 сервер завис. В 7:39 его ребутнули. И вот после вычитывания WAL и запуска БД был уже отправлен сегмент 0000000200003FA800000068 в 7:43. Как раз сегмент 0000000200003FA800000067 (на который ругается Probackup) и не был отправлен. Видимо, из-за внезапного ребута данный сегмент не был отправлен.

Николай Ласточкин
Я поглядел в логи, там следующее. В 7:21 был отпра...

А как конкретно всё это вообще настроено? И да, SELECT version();? > Видимо, из-за внезапного ребута данный сегмент не был отправлен. А других логов нет? Если PostgreSQL стал отправлять сегмент 0000000200003FA800000068, то это значит, что что-то подтвердило успешную запись предыдущего (если не считать возможных bugs, опять-таки).

Николай-Ласточкин Автор вопроса

Других логов нет, только эти. Версия 11.5, ванильная. Конкретно настроено следующим образом. Включен archive_mode. wal_level установлен в replica. Указан параметр archive_command, который шлет wal к серверу бэкапа. checkpoint_timeout выставлен на 15 минут. archive_timeout выставлен на 1 минуту. Ну и дальше как обычно, WAL-ы отправляются серверов БД, сервер бэкапов раз в неделю в пятницу делает Full, в остальные дни Page.

Николай-Ласточкин Автор вопроса

Обновление планируется, сам хочу перейти на 12-ую версию. Так и я ж не знаю, какие именно настройки вас интересуют, знал бы, все сразу скинул) archive_command следующий pg_probackup-11 archive-push -B /backup/probackup --instance=dbserver --wal-file-path=%p --wal-file-name=%f --remote-host=bkpsrv --remote-user=probackup --compress --overwrite --threads=2 --batch-size=50

Николай Ласточкин
Обновление планируется, сам хочу перейти на 12-ую ...

> Обновление планируется, сам хочу перейти на 12-ую версию. При чём тут 12-я версия? Использование 11.5 в production сейчас как бы намекает нам на качество администрирования (и да, Ваша проблема может быть от этого). ;) > какие именно настройки вас интересуют Относящиеся к делу. А версия probackup какая?

Николай-Ласточкин Автор вопроса
Yaroslav Schekin
> Обновление планируется, сам хочу перейти на 12-у...

Не я не ставил, мне досталось по наследству. А что не так с версией 11.5? Probackup 2.5.12

Николай Ласточкин
Не я не ставил, мне досталось по наследству. А что...

> А что не так с версией 11.5? Да всего лишь https://why-upgrade.depesz.com/show?from=11.5&to=11.21 Короче говоря, ищите там свою проблему сами, если у Вас больше ничего нет. ;) > Probackup 2.5.12 Ну хоть этот актуальный... а в pg_probackup.log (ну или как там у вас настроено) ничего нет?

Николай-Ласточкин Автор вопроса
Yaroslav Schekin
> А что не так с версией 11.5? Да всего лишь http...

Поищу, спасибо. В логе пробэкапа ничего нет, только вот сообщение о отсутствии WAL

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Ребят в СИ можно реализовать ООП?
Николай
33
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Карта сайта