Oracle Flashback Query
В основном это тип SQL, который обращается к данным, которые существовали в базе данных на более раннее время, но в то время под управлением SQL может не существовать или были изменены. Для этого, Oracle использует данные, которые доступны в течение отрезка времени UNDO. Этот сегмент, как известно, данные, хранящиеся перед серией модификаций. Она используется для обеспечения последовательности в чтении консультации до подтверждения изменений (фиксации) и могут быть использованы в возможной восстановление (откат).
системы> гранта выполнить на dbms_flashback для user1;
Вот пример. Предположим, вы хотите узнать о таблице, содержащей счета клмычание и хотите получить доступ к данным клиента мы уже удалены:
системы> выбрать символ (SYSDATE, 'DD-MM-YYYY hh24: ми ») от двойного fecha_sistema;
Через полчаса, запустив:
системы> Exec dbms_flashback.enable_at_time (TO_DATE ('12-09-2011 12:05, 'DD-MM-YYYY HH24: MI'));
системы> Exec dbms_flashback.enable_at_time (TO_DATE ('12-09-2011 12:05, 'DD-MM-YYYY HH24: MI'));
PL / SQL процедуры успешно завершен.
системы> SELECT * FROM WHERE t_facturas cod_cliente = '00125 ';
... ...
... ...
... ...
... И Хэллир;
4 выбранных записей.
системы> выполнить dbms_flasback.disable;
системы> SELECT COUNT (*) из t_facturas ГДЕ cod_cliente = '00125 ';
COUNT (*)
------
0
Может быть получен доступ к той же SCN количество изменений:
системы> dbms_flashback.get_system_change_number выбрать из двойного;
GET_SYSTEM_CHANGE_NUMBER
------------------------
1307125
системы> Exec dbms_flashback.enable_at_system_change_number (1307125);
PL / SQL процедуры успешно завершен
Кроме того, можно использовать выберите заявление "...по состоянию на ... »:
системы> SELECT * FROM WHERE t_facturas cod_cliente = '00125 'TO_TIMESTAMP на метку ('12-09-2011 12:05', 'DD-MM-YYYY HH24: MI');
системы> SELECT * FROM WHERE t_facturas cod_cliente = '00125 'на SCN 1307125;
Имейте в виду, что в то время как сеанс находится в режиме Flashback запросов, мы можем выполнять только ЗЕЬЕСТ. UPDATE (вставка, удаление и обновление) не допускается.
В повседневной работе с этой опцией полезно использовать временные таблицы для работы с полученными данными:
системы> создать таблицу t_facturas_antкак (SELECT * FROM WHERE t_facturas cod_cliente = '00125 'TO_TIMESTAMP на метку ('12-09-2011 12:05,' DD-MM-YYYY HH24: MI ');
Другие варианты запросов Flashback
- Запросов Flashback версии: Доступ к историческим изменениям в таблицу.
- Запросов Flashback Transaction: Доступ к историческим изменениям в конкретной сделки.
- Flashback Table: Доступ к данным, выше, но для одной таблицы.
- Flashback Drop: Получить удалены таблицы («Корзину»).
- Flashback Database: Позволяет оставить DB как это было в прошлый раз.Как восстановить резервную копию, но с нехваткой времени на воспоминаниях процессов, но намного быстрее, чтобы получить резервную копию. Вы должны иметь включен режим воспоминаниях и области мгновенного восстановления.
Некоторые из этих вариантов требует, чтобы менеджер "Enterprise Edition".
Это, как уже упоминалось, очень полезное заявление с различными вариантами "перемотка назад", и что мы можем взять больше, чем повышение.