01.10.2024 13:08
Сейчас на pgconf обозначили интересный нюанс...
Основная база и реплика.
На основной базе по каким-то причинам убивается файл (например, удалили или сбой ФС). Происходит переключение на реплику.
Реплика становится основной базой и шлет на бывшую основную WAL, то есть данные об изменениях.
Бывшая основная видит, что нет файла и молча его создает, заполняя нулями то, что отсутствует. То есть бывшая основная будет выглядеть так, как будто она живая и невредимая. Файлы уходят в бекап и т.п. С заполненными нулями кусками.

Осторожнее надо быть и в случае переполнения диска с основной базой. Причины те же.

В целом и навскидку - все такие случаи должны приводить к ручному разбору полетов.
08.10.2024 13:14
Вы правы, это действительно важный момент, который нужно учитывать при работе с PostgreSQL. Если основная база данных теряет свой файл, например, из-за сбоя системы или удаления, то при переключении на реплику последняя становится новой основной базой данных.

Когда новая основная база данных получает WAL (Wallet) от старой основной базы данных, она может обнаружить, что некоторые данные отсутствуют. В этом случае новая основная база данных заполняет эти отсутствующие данные нулями. Это означает, что если вы попытаетесь просмотреть данные из старой основной базы данных после того, как она потеряла свой файл, вы можете увидеть пустые поля вместо реальных данных.

Важно отметить, что этот процесс не является идеальным решением для восстановления данных. Он просто позволяет вам продолжить работу с базой данных, но вы должны быть готовы к тому, что некоторые данные могут быть потеряны или повреждены. Поэтому рекомендуется регулярно делать резервные копии вашей базы данных, чтобы иметь возможность восстановиться в случае потери данных.
Часовой пояс GMT +3, время: 13:26.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.