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

И еще вопросик: что за pg_toast_1265865 ? Такая шляпа привязалась

к временной таблице. Удаляли временную каскадно с этой. Могло повлиять?

22 ответов

20 просмотров

Вот прямо любопытно, что означает это "каскадно" :)

если бы ссылочная целостность - то конечно

pg_toast это хранилища для больших объектов других таблиц почитайте, в документации вроде все явно

Сергей Кравчук
pg_toast это хранилища для больших объектов других...

По-моему, эта штука работает прозрачно и пользователь обычно их не видит примерно никогда. Слабо представляю себе некий констрейнт связывающий темповую таблицу и toast ( чужой? ).

Daniella-Starchenko Автор вопроса
Роман Жарков
По-моему, эта штука работает прозрачно и пользоват...

смотрите. Было вот так. Я не вижу тут связей с целевой таблицей

Daniella Starchenko
screenshot смотрите. Было вот так. Я не вижу тут связей с це...

Не понял, чего я там должен увидеть :) Ещё раз: данные от реиндекса не пропадают. По-умолчанию удаление чего бы то ни было не логируется.

Daniella-Starchenko Автор вопроса
Роман Жарков
Не понял, чего я там должен увидеть :) Ещё раз: да...

это скрины временной таблицы, которую удаляли каскадом) Просто не видно связей с целевой таблицей

Daniella Starchenko
это скрины временной таблицы, которую удаляли каск...

А я говорю про эфемерные связи между темповой таблицей и чьим-то toast-ом.

Daniella Starchenko
это скрины временной таблицы, которую удаляли каск...

Вы бы лучше подробнее объяснили, что там произошло, конкретно. Что такое "пропали данные" — таблица или какие-то rows? > причем, временная таблица и целевая, которая очистилась, в разных схемах Хмм... а какая это полная версия PostgreSQL (SELECT version();)?

Daniella-Starchenko Автор вопроса
Yaroslav Schekin
Вы бы лучше подробнее объяснили, что там произошло...

удалились все данные из таблицы, но схема осталась. Версия на скрине. Не могу понять, что вызвало удаление

Daniella Starchenko
screenshot удалились все данные из таблицы, но схема осталась...

Версия уже очень старая (я про minor), обновились бы. Но если это не bug, то, что касается ссылок между таблицами, есть ограничения на них между temporary и permanent, например: ERROR: constraints on permanent tables may reference only permanent tables Так что из какой конкретно таблицы удалились данные? Можете показать её \d+?

Daniella-Starchenko Автор вопроса
Yaroslav Schekin
Версия уже очень старая (я про minor), обновились ...

там была таблица в некоторой схеме cdm. Называлась таблица ma_offer. поля были такими же, как и во временной

Daniella-Starchenko Автор вопроса
Yaroslav Schekin
Версия уже очень старая (я про minor), обновились ...

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

Daniella Starchenko
delete temp.temp_table cascade

ну и уже сказали что такой запрос упал бы с синтаксической ошибкой следовательно, а какой запрос был на самом деле ?

Daniella Starchenko
а если это вдруг баг, то это тоже нельзя увидеть, ...

Это зависит от того, временная эта таблица или нет. Если нет, то даже если логирование не настроено, можно полезть в WAL (pg_waldump). > Схема temp. Да показали бы Вы \d уже, и указали, в какой из этих таблиц удалились данные. Лично я даже этого так и не понял. ;)

Yaroslav Schekin
Это зависит от того, временная эта таблица или нет...

Да пофиг, в принцыпе. Восстановить можно только из бэкапа или первички, с этим они, думаю, разберутся. А делать всякие forensic исследования и смотреть в остатние walы или файлы -- вот уж вряд ли, так что зачем воду в ступе толочь...

Ilya Anfimov
Да пофиг, в принцыпе. Восстановить можно только из...

А вот автору вопроса — не пофиг: https://t.me/pgsql/322137 Хотят предотвратить повторение происшествия, я так думаю.

Yaroslav Schekin
А вот автору вопроса — не пофиг: https://t.me/pgsq...

Чтобы предотвратить происшэствие ему, скорее всего, имеет смысл настраивать wal archive. И вот это был бы очень полезный совет. Заодно будет шанс в следующий раз понять, в какой момент что удалялось.

Ilya Anfimov
Чтобы предотвратить происшэствие ему, скорее всего...

это не предотвращение, это действия по ускорению восстановления а чтобы предотвратить в будущем, нужно понять что именно произошло .. да и просто интересно )

Yaroslav Schekin
Это зависит от того, временная эта таблица или нет...

На самом деле действительно что-то я жёстковато как-то сказал. Ну да, если человек хочет разобраться -- то имеет смысл остановить postgres, снять копию БД, а лучшэ -- жёсткого диска посекторно, снять копии всех клиентских логов, которые доступны (всякие psql, dbeaver, pgadmin обычно пишут некоторый history для своих нужд). Потом -- читать остатки WAL -- возможно (хотя и не очень вероятно), что там останутся обновления страниц, обновляющие записи, читать непосредственно файл базы -- возможно, что vacuum ещё не всё зачисти, читать индэксы -- хотя если там после был vacuum, то это в общем тожэ не очень полезно, читать расположэние файлов на диске -- возможно, удастся найти какие-то обрывки старых и wal или файлов и понять что в какой момент там было.

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта