Oracle Flashback Query

Мы вкратце остановиться в этом запросе сообщение воспоминаниях функциональные возможности, предоставляемые менеджер Oracle DB, начиная с версии 9i.

В основном это тип SQL, который обращается к данным, которые существовали в базе данных на более раннее время, но в то время под управлением SQL может не существовать или были изменены. Для этого, Oracle использует данные, которые доступны в течение отрезка времени UNDO. Этот сегмент, как известно, данные, хранящиеся перед серией модификаций. Она используется для обеспечения последовательности в чтении консультации до подтверждения изменений (фиксации) и могут быть использованы в возможной восстановление (откат).

Графическое исполнение запросов Oracle Flashback

Правящая позволяет нам видеть воспоминаниях запрос данных в таблицы, которые были удалены или изменены.Запуск Flashback Query для доступа к данным из картины последовательных данных в определенный момент, на этот раз указав к системе или системе счисления изменения (SCN). База данных должна быть установлена ​​автоматическая Отменить управления работы (АУМ). Для этого ознакомьтесь со следующими параметрами:
UNDO_MANAGEMENT = автоматическое
undo_tablespace = UNDOTBS001 (табличное на котором размещена сегменте отменить)
UNDO_RETENTION = 3600 (время в секундах, что мы сохранили данные в сегменте отменить)
Должны быть приняты во внимание в отношении параметра, если UNDO_RETENTION UNDO табличного пространства недостаточно велика, чтобы хранить все транзакции, время, менеджер баз данных будет переопределить.Кроме того, считают, что для того, чтобы выполнить команду запроса воспоминаниях должна иметь разрешения на упаковке BDMS_FLASHBACK. Для этого:

системы> гранта выполнить на dbms_flashback для user1;

Вот пример. Предположим, вы хотите узнать о таблице, содержащей счета клмычание и хотите получить доступ к данным клиента мы уже удалены:

системы> выбрать символ (SYSDATE, 'DD-MM-YYYY hh24: ми ») от двойного fecha_sistema;

fecha_sistema
-------------------------
12-09-2011 12:05
системы> удалить из t_facturas ГДЕ cod_cliente = '00125 ';
4 удаленных строк
системы> совершить;

  

Через полчаса, запустив:

системы> выбрать символ (SYSDATE, 'DD-MM-YYYY hh24: ми ») от двойного fecha_sistema
fecha_sistema
------------------------- 12-09-2011 12:35

системы> Exec dbms_flashback.enable_at_time (TO_DATE ('12-09-2011 12:05, 'DD-MM-YYYY HH24: MI'));

системы> выбрать символ (SYSDATE, 'DD-MM-YYYY hh24: ми ») от двойного fecha_sistema
fecha_sistema
-------------------------
12-09-2011 12:35

системы> 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

Ниже приведены некоторые особенности, которые Oracle обеспечивает операции, связанные с Flashback Query:
  • Запросов Flashback версии: Доступ к историческим изменениям в таблицу.
  • Запросов Flashback Transaction: Доступ к историческим изменениям в конкретной сделки.
  • Flashback Table: Доступ к данным, выше, но для одной таблицы.
  • Flashback Drop: Получить удалены таблицы («Корзину»).
  • Flashback Database: Позволяет оставить DB как это было в прошлый раз.Как восстановить резервную копию, но с нехваткой времени на воспоминаниях процессов, но намного быстрее, чтобы получить резервную копию. Вы должны иметь включен режим воспоминаниях и области мгновенного восстановления.

Некоторые из этих вариантов требует, чтобы менеджер "Enterprise Edition".

Это, как уже упоминалось, очень полезное заявление с различными вариантами "перемотка назад", и что мы можем взять больше, чем повышение.