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

Кстати - а в PostgresSQL есть плюшки из серии

flashback transaction query или select ... as of timestamp позволяющие отыграть назад строки отдельной таблицы даже после коммита?

16 ответов

22 просмотра

А в каких реальных продовских сценариях это уместно?

Denis- Автор вопроса
Anatoliy Burov
А в каких реальных продовских сценариях это уместн...

В моей практике - несколько раз было очень полезно в случае удаления данных в диапазоне нескольких часов. Когда разраб прибегает с воплями "все пропало мы удалили не тот справочник". Можно восстановить одним запросом. Но можно еще придумать, была бы фантазия. Честно говоря ради восстановления данных есть даже желание расширить undo так чтобы там хранились сутки-двое. Это существено дешевле чем возня с бэкапами и стендбаем.

Anatoliy Burov
А в каких реальных продовских сценариях это уместн...

да в любыйх... кривые руки никто не отменял. то таблицу удалят то данные поменяют ошибившись в условии

Штатно нет, да и не реально: бывают in place update-ы, а также местный vacuum силами пишущего процесса. Есть расширение, добавляющее возможность прочитать все строки без учёта видимости. Но это так, на крайний случай, если к БД полез кривыми руками, и ничего не гарантирует.

Alex
да в любыйх... кривые руки никто не отменял. то т...

Ну очень странно отменять закоммиченные изменения.

Нет, нету. Периодически кто-то делает подход к снаряду (и дажэ просит под это не особенно чистить старые номера транзакцый из таблицы) -- но реально все бросают со словами "есть PITR, что ещё надо нормальному DBA").

Denis- Автор вопроса
Anatoliy Burov
Ну очень странно отменять закоммиченные изменения.

Это не отмена, это возможность увидеть данные в состоянии до коммита и если надо - куда-то сохранить.

Anatoliy Burov
Ну очень странно отменять закоммиченные изменения.

еще раз. человек ошибся. поменял не те данные.

Radist
Штатно нет, да и не реально: бывают in place updat...

> бывают in place update-ы, HOT -- он не совсем in-place. Старая версия туда жэ пишэтся.

Alex
еще раз. человек ошибся. поменял не те данные.

И? Другие транзакции на тех данных уже операции выполнили.

Denis- Автор вопроса
Anatoliy Burov
И? Другие транзакции на тех данных уже операции вы...

ничего не отменяется, ACID священен можно "поселектить" данные умозрительно восстановленные к прежнему виду с помощью undo

Ilya Anfimov
> бывают in place update-ы, HOT -- он не совсем ...

Но если потом придёт апдейт, которому не хватит места в блоке, он ведь может отвакуумировать его.

Denis- Автор вопроса
Anatoliy Burov
Ок. Посмотрели и?

и сохранили в новую таблицу, строки которые были проапдейчены, закоммичены, удалены и снова закоммичены можно увидеть полную историю изменений строки за период существующего undo - все её апдейты,делиты и пр.

Radist
Но если потом придёт апдейт, которому не хватит ме...

Необходимость ограничить вакуум старых версии -- самый решаемый тут вопрос. Вот wraparound, и необходимость таки выдумывать для старых транзакцый какие-то компактные xid -- вот это веселее. Возможно, когда перейдут на 64-bit -- полегче станет.

Anatoliy Burov
А в каких реальных продовских сценариях это уместн...

Шёл операционный день банка. Админ вчера перепил и возомнил себя Богом…

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
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
Карта сайта