Продолжается подписка на наши издания! Вы не забыли подписаться?

Управление транзакциями с утилитой LogMiner и Flashback Data Archive


Перевод: Марина Орельская

Интерфейс утилиты LogMiner в Oracle Enterprise Manager

LogMiner – часто игнорируемое, но очень мощное средство СУБД Oracle. Эта утилита используется для извлечения выражений DML из файлов журнала повторного выполнения: как исходного SQL, вызвавшего транзакцию, так и SQL, который может отменять транзакции. (Для знакомства с LogMiner и принципами его работы обратитесь к моей статье «Глубинное извлечение информации» (“Mining for Clues”) в журнале «Oracle Magazine»). До настоящего времени это мощное средство, как правило, недооценивалось, поскольку у него был сложный интерфейс. Oracle Enterprise Manager в Oracle Database 11g обладает графическим интерфейсом, предназначенным для извлечения транзакций из журналов повторного выполнения при помощи утилиты LogMiner. Утилита позволяет с чрезвычайной легкостью применять данное средство для проверки и отката транзакций. (Обратите внимание: как и в предыдущих версиях, здесь существует возможность использовать пакет DBMS_LOGMNR, чтобы выполнять команды для глубинного анализа через командную строку).

Приведем пример. Чтобы запустить глубинный анализ журнала, необходимо лишь включить небольшое вспомогательное логирование для базы данных или хотя бы для таблицы. Откат транзакции (Flashback Transaction) нуждается в логировании первичного ключа; для включения этой функциональности во всей базе данных используются следующие команды:

SQL> alter database add supplemental log data;
 
Database altered.
 
SQL> alter database add supplemental log data (primary key) columns;
 
Database altered.

Теперь рассмотрим выполнение следующих выражений в приложении, работающем с вашей БД:

SQL> insert into res values (100002,sysdate,12,1);
 
1 row created.
 
SQL> commit;
 
Commit complete.

SQL> update res set hotel_id = 13 where res_id = 100002;

1 row updated.
 
SQL> commit;
 
Commit complete.

SQL> delete res where res_id = 100002;
 
1 row deleted.
 
SQL> commit;
 
Commit complete.

Посмотрите на эти выражения внимательно: после каждого из них стоит выражение фиксации транзакции. Это означает, что каждое выражение здесь является транзакцией. Давайте теперь посмотрим, каким образом можно проверить транзакции утилитой LogMiner в Oracle Database 11g Database Control.

<...>

Заключение

Ошибки случаются у всех, но теперь вы можете быть уверены, что обладаете способностью определить, какие именно изменения привели к ошибке. У вас есть средства для исправления этих ошибок целиком путем отката транзакций. При этом вы не ограничены извлечением изменений только из архивированных и активных журналов – изменения навсегда записаны в архивах отката (Flashback Archives). И теперь вы в любом случае можете отследить изменения в таблицах в Области восстановления откатов (Flashback Recovery Area), причем используя всего несколько команд.


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

Copyright © 1994-2016 ООО "К-Пресс"