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

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

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

16 ответов

18 просмотров

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

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

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

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

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

Мужики и девушки, привет) в Вelphi xe7 в настройках во вкладке "Editor Options" далее " Color" есть список: "Elements", открыв который мы можем настраивать отображение разных...
Kraszx
14
Добрый вечер. Есть вопрос, а может и предложение. Был у меня диалог в другой группе о делфи и я задался вопросом: "А нельзя ли в делфи цвет //коментария и {комментария} сде...
Kraszx
24
Я вот подумал. SSE выполняет операции максимум с 64-битной точностью. А FPU - всегда с 80-битной. Разве не должно быть FPU точнее тогда?
The Bird of Hermes
13
как быть с принтером? такой подход прокатит?
zamtmn
12
Мдя, прикол, боевая сборка запускается (именно под отладчиком) после F9 примерно полторы минуты (97 секунд если быть точным). Начал копать - проблема детектится сразу - зависа...
Александр (Rouse_) Багель
38
Всем привет! Подскажи, пожалуйста, как передать в TComboBox сразу значение и id записи. На Delphi я делал так: ComboBox1.Items.AddObject('Какое-то значение', Pointer(id запис...
Евгений
13
Я не понимаю, это троллинг или что? Швабрика поддерживают, который буквально пишет на ассемблере взаимодействия с винапи. Я это ещё написал загрузчик и хоть что-то изучаю в о...
Shadow Akira
6
Здравствуйте, вопрос по структурам данных. Были у вас случаи, когда пришлось писать деревья или двунаправленные списки?
/ /
50
А вот это что за конструкция? Вернее, она тут нафига?
Serjone
10
Привет. Подскажите, как правильно сматчить лист фиксированного размера, чтобы компилятор не говорил мне о неполном паттерне? Допустим что-то такое [x', y'] = sort [x, y]?
Arseny
8
Карта сайта