Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Внутренняя реализация журнала снимка



Oracle создает таблицу для хранения элементов ROWID и отметок времени строк, обновленных в главной таблице. Данная таблица имеет следующее имя (через него можно получить доступ к этой таблице): MLOG$_<имя главной таблицы>. ROWID физически указывает, где находится запись(строка) в БД, и представляет собой псевдостолбец.

Oracle создает триггеры строк AFTER по главной таблице, чтобы вставлять в журнал снимков ROWID и отметки времени вставляемых, обновляемых, удаляемых строк из главной таблицы. Этот триггер имеет имя TLOG$_<имя главной таблицы>.

Замечание: невозможно для главной таблицы, имеющей журнал, создать триггер AFTER. Базовая таблица (журнал) и ассоциированный триггер для журнала снимков содержится в той же схеме, что и главная таблица. Рекомендацией является совет не обновлять эти объекты. Назначайте PCTFREE=0 PCTUSED=100.

Привилегии для создания журнала снимков:

· CREATE TABLE

· CREATE TRIGGER

· CREATE ANY TABLE

· CREATE ANY TRIGGER

Строка в журнале занимает примерно 13 байтов (6 байтов – ROWID, 7 – отметка времени).

Проблемы, возникающие при работе со снимками и их журналами:

1) Oracle автоматически отслеживает обновленные строки и удаляет старые; однако, если журнал используется несколькими снимками, Oracle не удаляет строки, пока эти строки не перестанут использоваться другими снимками; данная ситуация может возникнуть в том случае, если имеют место следующие случаи:

· один из снимков не сконфигурирован для автоматического обновления

· один из снимков имеет слишком большой интервал обновления

· сбой сети помешал автоматическому обновлению одного из снимков

Средства борьбы:

1. Обновить снимки, ассоциированные с этим журналом.

2. Сжать журнал, удалив из него строки, необходимые лишь N- самым старым снимкам.

DBMS_SNAPSHOT.PURGE_LOG(‘ таблица‘, <количество>[,DELETE]);

“таблица” – имя главной таблицы, “количество” – указывает число снимков, обновлявшихся давно, чьи строки вы хотите удалить из журнала снимков (если вы укажете 2, то будут удалены строки двух наиболее старых снимков). Чтобы удалить из журнала все записи необходимо задать число больше 9999. Необязательный параметр DELETE гарантирует, что из журнала снимков будут удалены строки хотя бы для одного снимка.





Дата публикования: 2015-02-18; Прочитано: 279 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...