🛠️ После crash PostgreSQL таблица существует, а строки исчезли?

Проверьте, не была ли она:

CREATE UNLOGGED TABLE ...

Для UNLOGGED это может быть ожидаемым поведением.

PostgreSQL не записывает данные такой таблицы в WAL, поэтому WAL overhead ниже.

Но цена — другие durability guarantees:

— UNLOGGED table не crash-safe; — после crash или unclean shutdown её содержимое автоматически очищается; — содержимое не реплицируется на standby.

То есть:

таблица есть + данных после аварии нет

не обязательно означает corruption.

Тип relation можно проверить через:

SELECT relname, relpersistence FROM pg_class WHERE relname = 'work_queue';

u означает unlogged.

Дальше спросите:

— был ли именно crash/unclean shutdown, а не обычный restart; — что хранилось в таблице; — можно ли восстановить содержимое; — есть ли другой source of truth; — нужны ли эти данные на standby; — действительно ли WAL был bottleneck.

Самый важный вопрос до использования UNLOGGED:

«Что сделает приложение, если после аварии таблица окажется пустой?»

Если данные можно безопасно перестроить — модель может быть подходящей.

Если это единственная копия критичных данных — решение требует пересмотра.

Сохраните вопросы, которые стоит задать до использования UNLOGGED для рабочих данных.

😄VK | 💬Макс | 🌐 Cайт 🔹🔹🔹🔹

🛠️ После crash PostgreSQL таблица существует, а строки исчезли?
Проверьте, не была ли она:
CREATE UNLOGGED TABLE ...
Для UNLOGGED это может быть ожидаемым поведением | Сетка — социальная сеть от hh.ru