Если ты с psql и случайно дропнул таблицу командой, то можешь посмотреть в истории комманд \s
Примерно никак.
Либо в журнале команд клиента, либо заранее побеспокоиться и написать аудит DDL команд через event trigger.
А как понять если дропнул каскадом
создать машину времени
А в момент удаления каскадом как посмотреть какие объекты удаляются?
Или мож сравнить метаданные по объектам с бэкапом?
Отличный вариант.
https://stackoverflow.com/questions/37976832/how-to-list-tables-affected-by-cascading-delete
А в wal файлах нет этой инфы?
Про дроп таблиц -- есть, про удаление строк из таблиц -- нет. Но откуда вы возьмёте wal файлы? Если не было PITR архива -- то они, вероятно, ужэ удалены. А если был -- то, понятно, что можно поднять PITR и сравнить состояние до транзакцыи с командой и после.
Так у него же вопрос как раз про названия таблиц дропнутых. Ну и + про pitr, там может уже она и сместилась, но wal size не достиг лимита по размеру и не почистился. Он же вроде не сразу чистит устаревшие записи. Т.е может и прокатить для автора)
А, названий-то можэт и не будет. Но в любом случае это сложно -- искать страницы, относящиеся к pg_class, смотреть как там в них таплы поменялись...
Обсуждают сегодня