Связь между декларативными ограничениями и снимками. 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Связь между декларативными ограничениями и снимками.



Нельзя создавать декларативные ограничения по снимкам или их журналам. Снимки можно индексировать. Для этого нужно создать индекс по столбцу базовой таблицы снимка.

 

Управление журналами снимков.

Создание журнала снимка осуществляется командой:

CREATE SNAPSHOT LOG ON emp

TABLESPACE users

STORAGE (initial 10K next pctincrease 50)

PCTFREE 5;

Имя журнала формируется системой и вам не надо следить за его уникальностью.

 

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

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 гарантирует, что из журнала снимков будут удалены строки хотя бы для одного снимка.

 

 

Удаление журнала снимков.

Его можно удалить независимо от главной таблицы и существующих снимков. Удаление осуществляется командой:

DROP SNAPSHOT <имя главной таблицы>;

 

Причинами удаления могут выступить:

· Все простые снимки главной таблицы были удалены.

· Все простые снимки должны быть обновлены полностью.

Копирование таблицы вручную выполняет команда:

CREATE TABLE <имя локальной копии таблицы> AS SELECT * FROM <удаленная копия>;

Замечания:

· Удаляя локальную копию, вы удаляете все ассоциированные с ней триггеры, снимки; их надо будет потом создавать заново.

· Удаляя локальную копию, вы лишаетесь всех объектных привилегий, назначенных по ней пользователю; после пересоздания должны их заново назначить.

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

 



Поделиться:


Последнее изменение этой страницы: 2017-01-26; просмотров: 142; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.119.125.7 (0.007 с.)