Гость
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Осстановилась реплика (файловая). Возможно как-то пропустить несколько WAL при восстановл? / 14 сообщений из 14, страница 1 из 1
18.01.2022, 17:14
    #40127510
Синий Слон
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Осстановилась реплика (файловая). Возможно как-то пропустить несколько WAL при восстановл?
Добрый день.

На мастере был сбой и он был перезагружен.

timeline не менялся.

При этом создалось для пустых WAL файла.


И файловая реплика пытается восстановить один из этих файлов.

Бесконечно.



Подскажите можно как-то принудительно пропустить два пустых WAL?
...
Рейтинг: 0 / 0
18.01.2022, 17:27
    #40127516
Синий Слон
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Осстановилась реплика (файловая). Возможно как-то пропустить несколько WAL при восстановл?
или может быть записать в них что-нить чтобы они прочитались репликой но ничего не применилось?
...
Рейтинг: 0 / 0
18.01.2022, 17:46
    #40127521
Melkij
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Осстановилась реплика (файловая). Возможно как-то пропустить несколько WAL при восстановл?
удостоверьтесь, что у вас реплика по крайней мере той же минорной версии, что и primary.
...
Рейтинг: 0 / 0
18.01.2022, 17:54
    #40127525
Синий Слон
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Осстановилась реплика (файловая). Возможно как-то пропустить несколько WAL при восстановл?
Melkij
удостоверьтесь, что у вас реплика по крайней мере той же минорной версии, что и primary.



реплика 11.10
мастер 11.1

линукс
...
Рейтинг: 0 / 0
18.01.2022, 17:56
    #40127527
Синий Слон
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Осстановилась реплика (файловая). Возможно как-то пропустить несколько WAL при восстановл?
Melkij,

без пересоздания реплики возможно ли как-то восстановить ее работу?
...
Рейтинг: 0 / 0
18.01.2022, 20:47
    #40127580
Maxim Boguk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Осстановилась реплика (файловая). Возможно как-то пропустить несколько WAL при восстановл?
Синий Слон
Melkij,

без пересоздания реплики возможно ли как-то восстановить ее работу?


посмотреть что совпадают ли на байтовом уровне проблемный wal файл на мастере и реплике
если нет - то остановить реплику и дать ей скачать wal с мастера заново...

как вариант 2 - взять wal с wal архива если он используется.

пробовать надо в общем разные варианты.

--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
...
Рейтинг: 0 / 0
18.01.2022, 22:19
    #40127601
Синий Слон
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Осстановилась реплика (файловая). Возможно как-то пропустить несколько WAL при восстановл?
Maxim Boguk
Синий Слон
Melkij,

без пересоздания реплики возможно ли как-то восстановить ее работу?


посмотреть что совпадают ли на байтовом уровне проблемный wal файл на мастере и реплике
если нет - то остановить реплику и дать ей скачать wal с мастера заново...

как вариант 2 - взять wal с wal архива если он используется.

пробовать надо в общем разные варианты.

--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru


Они совпадают, везде по 0 байт.

В общем, пересоздаю.
...
Рейтинг: 0 / 0
18.01.2022, 22:51
    #40127611
grgdvo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Осстановилась реплика (файловая). Возможно как-то пропустить несколько WAL при восстановл?
Синий Слон,

Знатоки, а подскажите, пожалуйста, pg_rewind здесь не поможет??
Я понимаю, что линия времени не расходилась и ТС написал об этом.
Но может можно заставить упавший мастер откатиться на предыдущую контрольную точку, чтобы потом перезаписывать эти нулевые WAL, а реплика уже подхватит продолжение??
Спасибо
...
Рейтинг: 0 / 0
18.01.2022, 23:07
    #40127618
Синий Слон
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Осстановилась реплика (файловая). Возможно как-то пропустить несколько WAL при восстановл?
grgdvo,

мастер уже на пол дня вперед уехал.
...
Рейтинг: 0 / 0
18.01.2022, 23:19
    #40127621
Maxim Boguk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Осстановилась реплика (файловая). Возможно как-то пропустить несколько WAL при восстановл?
Синий Слон
Maxim Boguk
пропущено...


посмотреть что совпадают ли на байтовом уровне проблемный wal файл на мастере и реплике
если нет - то остановить реплику и дать ей скачать wal с мастера заново...

как вариант 2 - взять wal с wal архива если он используется.

пробовать надо в общем разные варианты.

--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru

Они совпадают, везде по 0 байт
В общем, пересоздаю.


что то я подозреваю что у вас мастер старый очень и там были какие то баги на этот счёт если меня память не подводит.

--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
...
Рейтинг: 0 / 0
19.01.2022, 11:41
    #40127714
Guzya
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Осстановилась реплика (файловая). Возможно как-то пропустить несколько WAL при восстановл?
Если правильно помню, wal даже пустой должен иметь правильный размер.
Где-то на форуме была проблема не надлежащего размера wal при выключении\переключении postgres и как раз такие "урезанные" файлы реплика не вкуривала.

тогда предлагал такой вариант

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
walsize=16777216  # эталонный размер
filesize=$(stat -c%s "test.partial")   # текущий размер файла

raznica=$( expr $walsize - $filesize )  # считаем сколько не хватает
blok_1024=$( expr $raznica / 1024 )
blok_1=$( expr $raznica % 1024 )

if [[ $blok_1024 -gt 0 ]]; then
    dd if=/dev/zero of=test.partial oflag=append conv=notrunc bs=1024 count=$blok_1024  # дописываем по 1024 байта
fi

if [[ $blok_1 -gt 0 ]]; then
    dd if=/dev/zero of=test.partial oflag=append conv=notrunc bs=1 count=$blok_1  # дописываем по 1 байту
fi



Т.е. берем wal и дописываем его до нужного "эталонного" размера.


P.s. PITR - сценарий. Вопрос к экспертам.
...
Рейтинг: 0 / 0
19.01.2022, 12:48
    #40127748
Maxim Boguk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Осстановилась реплика (файловая). Возможно как-то пропустить несколько WAL при восстановл?
Guzya,

Тут надо смотреть что за ошибки на реплике идут и дальше думать.

--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
...
Рейтинг: 0 / 0
19.01.2022, 13:31
    #40127761
mefman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Осстановилась реплика (файловая). Возможно как-то пропустить несколько WAL при восстановл?
Maxim Boguk
Guzya,

Тут надо смотреть что за ошибки на реплике идут и дальше думать.

--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru

Уже перезалили бы с мастера.
Там у них что сотни терабайт чтоль?
...
Рейтинг: 0 / 0
19.01.2022, 23:31
    #40127959
Maxim Boguk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Осстановилась реплика (файловая). Возможно как-то пропустить несколько WAL при восстановл?
mefman
Maxim Boguk
Guzya,

Тут надо смотреть что за ошибки на реплике идут и дальше думать.

--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru

Уже перезалили бы с мастера.
Там у них что сотни терабайт чтоль?


Даже 10TB переливать через гигабитный линк - безблагодатное занятие, а я всё ещё встречаю базы на 100mbit сети.
Ну и бывают географически удалённые реплики на другом континенте куда переналивать безблагодатно вдвойне
(были уже ситуации когда через base backup вообще не получалось так как скорость сети между хостами была слёзы, приходилось через pg_backrest и S3 у амазона перегонять чтобы хоть как то запустить для начала).

--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Осстановилась реплика (файловая). Возможно как-то пропустить несколько WAL при восстановл? / 14 сообщений из 14, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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