flashback transaction query или select ... as of timestamp позволяющие отыграть назад строки отдельной таблицы даже после коммита?
А в каких реальных продовских сценариях это уместно?
В моей практике - несколько раз было очень полезно в случае удаления данных в диапазоне нескольких часов. Когда разраб прибегает с воплями "все пропало мы удалили не тот справочник". Можно восстановить одним запросом. Но можно еще придумать, была бы фантазия. Честно говоря ради восстановления данных есть даже желание расширить undo так чтобы там хранились сутки-двое. Это существено дешевле чем возня с бэкапами и стендбаем.
да в любыйх... кривые руки никто не отменял. то таблицу удалят то данные поменяют ошибившись в условии
Штатно нет, да и не реально: бывают in place update-ы, а также местный vacuum силами пишущего процесса. Есть расширение, добавляющее возможность прочитать все строки без учёта видимости. Но это так, на крайний случай, если к БД полез кривыми руками, и ничего не гарантирует.
Ну очень странно отменять закоммиченные изменения.
Нет, нету. Периодически кто-то делает подход к снаряду (и дажэ просит под это не особенно чистить старые номера транзакцый из таблицы) -- но реально все бросают со словами "есть PITR, что ещё надо нормальному DBA").
Это не отмена, это возможность увидеть данные в состоянии до коммита и если надо - куда-то сохранить.
еще раз. человек ошибся. поменял не те данные.
> бывают in place update-ы, HOT -- он не совсем in-place. Старая версия туда жэ пишэтся.
И? Другие транзакции на тех данных уже операции выполнили.
ничего не отменяется, ACID священен можно "поселектить" данные умозрительно восстановленные к прежнему виду с помощью undo
Но если потом придёт апдейт, которому не хватит места в блоке, он ведь может отвакуумировать его.
Ок. Посмотрели и?
и сохранили в новую таблицу, строки которые были проапдейчены, закоммичены, удалены и снова закоммичены можно увидеть полную историю изменений строки за период существующего undo - все её апдейты,делиты и пр.
Необходимость ограничить вакуум старых версии -- самый решаемый тут вопрос. Вот wraparound, и необходимость таки выдумывать для старых транзакцый какие-то компактные xid -- вот это веселее. Возможно, когда перейдут на 64-bit -- полегче станет.
Шёл операционный день банка. Админ вчера перепил и возомнил себя Богом…
Обсуждают сегодня