Инструкция FLASHBACK TABLE

  • Позволяет восстанавливать таблицы до состояния на заданный момент времени с помощью одной инструкции.
  • Восстанавливает табличные данные вместе со связанными индексами и ограничениями.
  • Позволяет возвращать таблицу и ее содержимое в состояние, существовавшее на определенный момент времени, или к изменению системы, определенному номером SCN.

Функция Oracle «Flashback Table» позволяет восстанавливать таблицы на заданный момент времени с помощью одной инструкции. Если база данных находится в интерактивном режиме, можно восстановить табличные данные вместе со связанными индексами и константами, отменяя изменения только в указанных таблицах.

Функция Flashback Table сходна со средством автоматического восстановления. Например, если пользователь случайно удалил из таблицы важные строки, а затем захотел восстановить удаленные строки, можно воспользоваться инструкцией FLASHBACK TABLE для восстановления таблицы на момент времени до удаления и просмотреть пропавшие строки в таблице.

При использовании инструкции FLASHBACK TABLE можно вернуть таблицу и ее содержимое в состояние на конкретный момент времени или к изменению системы с номером SCN.

Примечание. Номер изменения системы (SCN – system change number) – это целочисленное значение, связанное с каждым изменением базы данных. Это уникальное порядковое число в базе данных. Каждый раз, когда выполняется транзакция, записывается новый номер изменения системы (SCN).

Синтаксис FLASHBACK TABLE

  • Средство восстановления случайных изменений таблиц:
    • восстанавливает таблицу до состояния, существовавшего в более ранний момент времени;
    • преимущества: простота использования, доступность и быстрое выполнение;
    • выполняется на месте.

Синтаксис:

FLASHBACK TABLE[schema.]table[, [ schema.]table ]... TO { TIMESTAMP | SCN } expr

[ { ENABLE | DISABLE } TRIGGERS ];

Средство автоматического восстановления

В базе данных Oracle имеется DDL-команда SQL, FLASHBACK TABLE, для восстановления состояния таблицы на более ранний момент времени в случае, когда таблица случайно удалена или изменена.

Команда FLASHBACK TABLE является средством автоматического восстановления данных в таблице вместе со связанными атрибутами, такими как индексы и представления. Восстановление выполняется в базе данных, находящейся в интерактивном режиме, путем отката назад только последующих изменений заданной таблицы. По сравнению с традицион- ными механизмами восстановления эта функция обладает значительными преимуществами, такими как простота использования, доступность и более быстрое восстановление. Она также устраняет для администратора базы данных необходимость поиска и восстановления свойств приложения. Функция Flashback table не предназначена для восстановления физических повреждений данных, обусловленных плохим состоянием диска.

Синтаксис

Операцию FLASHBACK TABLE можно вызвать для одной или нескольких таблиц, даже для таблиц в разных схемах. Момент времени, до которого требуется вернуть назад базу данных, задается путем указания допустимой временной метки. По умолчанию триггеры базы данных во время операции возврата отключены для всех задействованных таблиц. Такое стандартное поведение системы можно переопределить с помощью предложения ENABLE TRIGGERS.

Примечание. Более подробно о корзине и семантике отката flashback см. в документе Oracle Database Administrator’s Guide 11g Release 1 (11.1) (Руководство администратора базы данных Oracle 11g, выпуск 1 (11.1)).

Использование инструкции FLASHBACK TABLE

Синтаксис и примеры

В приводимом примере таблица EMP2 восстанавливается до состояния, предшествовавшего выполнению инструкции DROP.

Корзина является фактически таблицей словаря данных, содержащей сведения об удаленных объектах. Удаленные таблицы и все связанные объекты, такие как индексы, ограничения, вложенные таблицы и так далее, не удаляются и по-прежнему занимают место на диске. Они продолжают учитываться в дисковых квотах пользователя, пока специально не очищаются из корзины или пока не возникнет ситуация, когда они должны быть очищены базой данных из- за ограничений по месту, занимаемому таблицами.

Каждый пользователь может рассматриваться как владелец корзины, так как если пользователь не имеет привилегии SYSDBA, единственные объекты, к которым он имеет доступ в корзине, это объекты, владельцем которых является пользователь. Пользователь может просмотреть свои объекты в корзине с помощью следующей инструкции:

SELECT * FROM RECYCLEBIN;

Когда удаляют пользователя, все объекты, принадлежащие этому пользователю, не помещаются в корзину, а все объекты в корзине очищаются.

Корзину можно очистить с помощью следующей инструкции:

Далее: Резюме по SQL Developer

Похожие записи