![]() |
#21
|
|||
|
|||
![]() ![]() Пример использования возможности Flashback Query Если какому-то сотруднику недавно ошибочно был изменен оклад, можно вернуть старое значение, выполнив команду update с подзапросом, в котором возвращается хранившееся ранее значение оклада.
__________________
Телеграм чат |
#22
|
|||
|
|||
![]() ![]() Обзор возможности Flashback Versions Query Используя возможность флэшбэк-запроса (Flashback Query), можно извлекать информацию из БД, существовавшую на определенный момент времени или заданный пользователем системный номер изменений (system change number - SCN). Для выбора всех версий строк, существовавших между двумя моментами времени или двумя SCN в команде запроса указывается фраза VERSIONS. Результат, возвращаемый флэшбэк-запросом, отражает хронологию изменения строк в транзакциях. В возвращаемых данных запроса отражаются только зафиксированные значения строк. Незафиксированные версии строк внутри транзакции не показываются. Возвращаемые строки содержат версии удаленных и повторно вставленных позже строк. Запрос Flashback Versions Quay можно использовать для вывода хронологии изменения содержимого строк. Такой запрос предоставляет возможность проведения аудита строк таблицы и выявления транзакций, изменявших значения в строках. Полученный с использованием Flashback Versions Query идентификатор транзакции используется для получения информации о транзакции с помощью LogMiner или запроса сведений о прошедших транзакциях (Flashback Transaction Query), который будет рассмотрен далее в этом уроке. Примечание: в приведенном примере VERSIONS_XID - это псевдостолбец, в котором возвращается идентификатор транзакции для соответствующей версии строки.
__________________
Телеграм чат |
#23
|
|||
|
|||
![]() ![]() Выполнение Flashback Versions Query в Enterprise Manager EM предоставляет возможность выполнить запрос версий данных. Для этого на странице Maintenance перейдите по ссылке Perform Recovery. На странице Perform Recovery выберите Tables в выпадающем списке поля Object Туре, а затем Flashback Existing Tables в Operation Туре. Щелкните на кнопке Perform Object Level Recovery. На выводимой странице "Perform Object Level Recovery: Point-in-Time" выберите 'Evaluate row changes and transactions to decide on a point in time' и укажите имя целевой таблицы. Выберите просматриваемые столбцы в перечне Available Columns, содержащем имена столбцов таблицы, затем введите условие поиска в поле Bind The Row Value. Отметьте Show all row history, а затем щелкните на кнопке Next.
__________________
Телеграм чат |
#24
|
|||
|
|||
![]() ![]() Рассмотрение возможности запроса версий данных Фраза VERSIONS не используется в запросах версий данных следующих видов таблиц: внешних таблиц; временных таблиц; фиксированных таблиц (fixed tables; список таких псевдотаблиц находится в представлении V$FIXED_TABLE). Нельзя задавать фразу VERSIONS в запросах вывода данных из представлений. Однако эту фразу можно указывать в определении представления. Фраза VERSIONS в команде SELECT не дает возможности получить версии строк после момента применения команды DDL, изменяющей структуру соответствующей таблицы. Это означает, что запрос перестает выдавать строки, как только он встречает момент времени в прошлом, когда таблица была изменена. Некоторые операции, выполняемые при сопровождении, например, сжатие сегмента, могут перемещать строки в другие блоки. Запрос версии данных не обращает внимание на такие операции, поскольку строка данных остается такой же.
__________________
Телеграм чат |
#25
|
|||
|
|||
![]() ![]() Обзор запроса сведений о прошедших транзакциях Запрос сведений о прошедших транзакциях (Flashback Transaction Query) - это инструмент диагностики, используемый для просмотра изменений, сделанных в базе данных на уровне транзакций. Он позволяет диагностировать проблемы в базе данных, а также выполнять анализ и аудит транзакций. Представление FLASHBACK_TRANSACTION_QUERY используется для выявления всех команд SQL, которые необходимо выполнить для отмены изменений, выполненных либо заданной транзакцией, либо в определенный период времени.
__________________
Телеграм чат |
#26
|
|||
|
|||
![]() ![]() Использование ЕМ для запроса сведений о прошедших транзакциях Эта возможность используется вместе с запросом версий данных в мастере Perform Recovery. На странице Perform Recovery: Choose SCN щелкните на ссылке соответствующего идентификатора транзакции, выводимого в столбце Transaction ID в секции Flashback Versions Query Result. В примере, приводимом на слайде, сначала в результате выполнения Flashback Versions Query для таблицы JOBS выбираются три строки, удовлетворяющие условию JOB_ID = 'AD_PR.ES'. Затем после щелчка мышью на идентификаторе одной из транзакций показываются все изменения, которые были сделаны в этой транзакции. Обратите внимание на то, что в этой же транзакции производились изменения не только в таблице JOBS, но и в EMPLOYEES.
__________________
Телеграм чат |
#27
|
|||
|
|||
![]() ![]() Рассмотрение возможности запроса сведений о прошедших транзакциях Внутри базы данных команды DDL - это ничто иное, как последовательность операций управления пространством и изменений в словаре данных. По запросу о прошедших транзакциях сведения о командах DDL отображаются в виде изменений, выполненных в словаре данных. Запрос сведений о прошедших транзакциях выводит номера объектов вместо имен таблиц, удаленных из базы данных. Если пользователь, выполнявший транзакцию был удален, тогда по запросу о прошедших транзакциях выдается соответствующий идентификатор пользователя вместо его имени. Примечание: если для конкретной транзакции недостаточно данных отмены, тогда строка содержит значение UNKNOWN в столбце OPERATION представления FLASHBACK_TRANSACTION_QUERY.
__________________
Телеграм чат |
#28
|
|||
|
|||
![]() ![]()
__________________
Телеграм чат |
#29
|
|||
|
|||
![]() ![]()
__________________
Телеграм чат |