Flashback oracle что это

Обновлено: 05.07.2024

Сводка: Наша задача — предоставлять решения, которые упрощают ИТ-инфраструктуру. Для ее реализации мы создаем решения для баз данных, специализированные проекты, динамические центры обработки данных и гибкие вычислительные системы. Свернуть Наша задача — предоставлять решения, которые упрощают ИТ-инфраструктуру. Для ее реализации мы создаем решения для баз данных, специализированные проекты, динамические центры Развернуть

Возможно, эта статья была переведена автоматически. Если вы хотите поделиться своим мнением о ее качестве, используйте форму обратной связи в нижней части страницы.

Симптомы

Применение:


Проблема:

Часто при проведении сравнительных тестов перед началом новой серии необходимо загрузить чистую базу данных. Один из способов получения чистой базы данных — воссоздание всей базы данных перед каждым запуском теста, но в зависимости от размера ИТ-инфраструктуры этот подход может быть очень трудоемким или неэффективным.


Решение:

В этой статье описано, как использовать функцию flashback Oracle для быстрого восстановления состояния базы данных, которое существовало перед рабочей нагрузкой. В частности, в этой статье описан порядок использования «гарантированных точек восстановления».


Точка восстановления

Точка восстановления — это только имя, связанное с меткой времени или SCN базы данных. Можно создать обычную или гарантированную точку восстановления. Разница между этими двумя заключается в том, что гарантированная точка восстановления позволяет вернуться к восстанавливаемому состоянию независимо от значения параметра инициализации DB_FLASHBACK_RETENTION_TARGET, т. е. она всегда доступна (если достаточно места в области быстрого восстановления).

SLN310475_ru__1icon

Примечание. В этой статье ведение журнала Flashback не было включено.

Гарантированная точка восстановления

  • пользователь должен иметь системные привилегии SYSDBA,
  • необходимо создать область быстрого восстановления,
  • база данных должна быть в режиме ARCHIVELOG.

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

  1. $> su – oracle
  2. $> sqlplus / as sysdba;
  3. Узнайте, включен ли режим ARCHIVELOG:
    SQL> select log_mode from v$database;
    Если шаг 3 показывает, что режим ARCHIVELOG не включен, продолжите процедуру. В противном случае перейдите к шагу 8 ниже.
  4. SQL> shutdown immediate;
  5. SQL> startup mount;
  6. SQL> alter database archivelog;
  7. SQL> alter database open;
  8. SQL> create restore point CLEAN_DB guarantee flashback database;
    где CLEAN_DB — это имя, заданное гарантированной точке восстановления.


Возврат к гарантированной точке восстановления

  1. $> su – oracle
  2. $> sqlplus / as sysdba;
  3. SQL> select current_scn from v$database;
  4. SQL> shutdown immediate;
  5. SQL> startup mount;
  6. SQL> select * from v$restore_point;
  7. SQL> flashback database to restore point CLEAN_DB;
  8. SQL> alter database open resetlogs;
  9. SQL> select current_scn from v$database;

По Вашему запросу ничего не найдено.

Рекомендуем сделать следующее:

  • Проверьте правильность написания ключевых слов.
  • Используйте синонимы введенных Вами ключевых слов, например “приложение” вместо “программное обеспечение”.
  • Попробуйте воспользоваться одним из популярных поисковых запросов ниже.
  • Начните новый поиск.

Oracle Flashback Reduces Recovery Time from Hours to Minutes

Oracle Flashback Reduces Recovery Time from Hours to Minutes

Despite preventive measures, human errors do happen. Oracle Database Flashback Technologies are a unique and rich set of data recovery solutions that enable reversing human errors by selectively and efficiently undoing the effects of a mistake. Before Flashback, it might take minutes to damage a database but hours to recover it. With Flashback, correcting an error takes about as long as it took to make it. In addition, the time required to recover from this error is not dependent on the database size, a capability unique to the Oracle Database.

Flashback Technologies Features

Overview

Flashback supports recovery at all levels including the row, transaction, table, and the entire database. Flashback provides an ever growing set of features to view and rewind data back and forth in time, namely:

  • Flashback Database: restore the entire database to a specific point-in-time, using Oracle-optimized flashback logs, rather than via backups and forward recovery.
  • Flashback Table: easily recover tables to a specific point-in-time, useful when a logical corruption is limited to one or a set of tables instead of the entire database.
  • Flashback Drop: recover an accidentally dropped table. It restores the dropped table, and all of its indexes, constraints, and triggers, from the Recycle Bin (a logical container of all dropped objects).
  • Flashback Transaction: undo the effects of a single transaction, and optionally, all of its dependent transactions. via a single PL/SQL operation or by using an Enterprise Manager wizard.
  • Flashback Transaction Query: see all the changes made by a specific transaction, useful when an erroneous transaction changed data in multiple rows or tables.
  • Flashback Query: query any data at some point-in-time in the past. This powerful feature can be used to view and logically reconstruct corrupted data that may have been deleted or changed inadvertently.
  • Flashback Versions Query: retrieve different versions of a row across a specified time interval instead of a single point-in-time.
  • Total Recall: efficiently manage and query long-term historical data. Total Recall automatically tracks every single change made to the data stored inside the database and maintains a secure, efficient and easily accessible archive of historical data.

The Flashback features offer the capability to query historical data, perform change analysis, and perform self-service repair to recover from logical corruptions while the database is online. With Oracle Flashback Technology, you can indeed undo the past.

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

Восстанавливает табличные данные вместе со связанными индексами и ограничениями.

Позволяет возвращать таблицу и ее содержимое в состояние, существовавшее на определенный момент времени, или к изменению системы, определенному номером 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 ;

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

oracle

Всем привет, в данном посте речь пойдет о том Как использовать FLASHBACK TABLE для восстановления данных в Oracle. Ситуация такая, что с таблицей что-то сделали не то и выполнили COMMIT? Поговорим, что вообще из себя представляет таблица воспроизведения, я сам пока учусь данной технологии, так что шпаргалка больше для себя.

В случае с Oracle нет ничего проще - достаточно просто откатить таблицу к нужному моменту времени с помощью команды FLASHBACK TABLE.

Что такое FLASHBACK TABLE?

Используя инструкцию FLASHBACK TABLE для восстановления более раннего состояния таблицы в случае ошибки человека или приложения. Время отката до которого таблица может быть восстановлена, зависит от количества данных отмены в системе. Кроме того, Oracle Database не может восстановить таблицу до более раннего состояния с помощью любых операций DDL, которые изменяют структуру таблицы.

Oracle настоятельно рекомендует запускать базу данных в автоматическом режиме отмены, оставив для " UNDO_MANAGEMENT" параметра инициализации значение по умолчанию " AUTO ". Кроме того, установите параметр инициализации " UNDO_RETENTION " на достаточно большой интервал, чтобы включить самые старые данные, которые, по вашему мнению, могут потребоваться. Дополнительные сведения в документации по параметрам инициализации UNDO_MANAGEMENT и UNDO_RETENTION . Рекомендуется записать текущий SCN перед выдачей FLASHBACK TABLE пункта.

flashback_table

Во время операции Oracle Flashback Table Oracle Database устанавливает эксклюзивные блокировки DML для всех таблиц, указанных в списке Flashback. Эти блокировки предотвращают любые операции с таблицами, пока они возвращаются в свое предыдущее состояние.

Операция Flashback Table выполняется за одну транзакцию, независимо от количества таблиц, указанных в списке Flashback. Либо все таблицы вернутся к предыдущему состоянию, либо ни одна из них не вернется. Если операция Flashback Table завершается неудачно для какой-либо таблицы, то весь оператор терпит неудачу.

По завершении операции Flashback Table данные table соответствуют предыдущим из table. Однако FLASHBACK TABLE TO SCN или TIMESTAMP не сохраняет идентификаторы строк и FLASHBACK TABLE TO BEFORE DROP не восстанавливает ссылочные ограничения.

Oracle Database не возвращает статистику, связанную с table в ее более ранней версии. Индексы table, существующие в настоящее время, восстанавливаются и отражают состояние таблицы в точке Flashback. Если индекс существует сейчас, но еще не существовал в точке Flashback, то база данных обновляет индекс, чтобы отразить состояние таблицы в точке Flashback. Однако индексы, которые были отброшены в течение интервала между точкой Flashback и текущим временем, не восстанавливаются.

  • Укажите схему, содержащую таблицу. Если вы не укажете schema , то база данных предполагает, что таблица находится в вашей собственной схеме.
  • Укажите имя одной или нескольких таблиц, содержащих данные, которые вы хотите вернуть к более ранней версии.
  • Укажите номер изменения системы (SCN), соответствующий моменту времени, в который вы хотите вернуть таблицу. expr Должен вычисляться число, представляющее действительное SCN.
  • Укажите значение отметки времени, соответствующее моменту времени, в который вы хотите вернуть таблицу. expr Должны вычисляться действительной метку времени в прошлом. Таблица будет возвращена на время в пределах примерно 3 секунд от указанной временной метки.

Ограничения

  • Операции Flashback Table недействительны для следующих типов объектов: таблицы, которые являются частью кластера, материализованные представления, таблицы Advanced Queuing (AQ), таблицы словаря статических данных, системные таблицы, удаленные таблицы, таблицы объектов, вложенные таблицы или отдельные разделы или подразделения.
  • Следующие операции DDL изменяют структуру таблицы, так что вы не можете впоследствии использовать предложение TO SCN или TO TIMESTAMP для возврата таблицы к моменту, предшествующему операции: обновление, перемещение или усечение таблицы; добавление ограничения в таблицу, добавление таблицы в кластер; изменение или удаление столбца; изменение ключа шифрования столбца; добавление, удаление, объединение, разделение, объединение или усечение раздела или подраздела (за исключением добавления раздела диапазона).

Рассмотрим откат на примере таблицы TEST_1

  • Проверяем есть ли право ROW MOVEMENT на нашу таблицу:
SELECT TABLE_NAME,ROW_MOVEMENT FROM USER_TABLES WHERE TABLE_NAME='TEST_1';
  • Если запрос выдает DISABLE - даем право командой:

Если этого не сделать, то при выполнении команды FLASHBACK TABLE будем выходить на ошибку:
ORA-08189: cannot flashback row movement is not enabled

Читайте также: