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

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

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

16 ответов

7 просмотров

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

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
А в каких реальных продовских сценариях это уместн...

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

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

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

@MrMiscipitlick А можешь макрос написать, который будет вычислять смещение относительно переданных меток? Просто .label1-.label2, и вернуть значение.
КТ315
35
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
А еще в перле можно уже @arr1 + @arr2?
Sergei Zhmylove
53
Заметил в ghci 9.4.8: > :t (<*>) @((->)_) (<*>) @((->)_) :: (w -> (a -> b)) -> (w -> a) -> w -> b Разве не должно (w -> (a -> b)) быть записано как (w -> a -> b)? Это баг, ил...
Михаил
13
Привет всем. появился вопрос. Разрабатываю сайт, в данный момент он запущен. Хостинг beget. Добавляю на сайт яндекс метрику с помощью полей client-settings (взято отсюда http...
Andrew
2
Подобного рода ;Следующие три строки это директивы ассемблера, ;которые можно не задавать, т.к.работаем в Visual Studio. ;Символ ";" - это начало однострочного комментария ...
Егор Анелькин
3
Any electron dev here?
Sayanth Tezro
12
Подскажите, где смотреть результат выполнения программы? Код: ;.686 ;Система команд процессора 686 ;.MODEL FLAT,stdcall ;Модель памяти плоская, станда...
Егор Анелькин
5
так это может кто что знает или использует что-то как макбук только не макбук? на 13…14 дюймов
Michael
9
;.686 ;Система команд процессора 686 ;.MODEL FLAT,stdcall ;Модель памяти плоская, стандартный ;вызов процедуры ;option casemap:no...
Егор Анелькин
1
Карта сайта