Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Связь между декларативными ограничениями и снимками.
Нельзя создавать декларативные ограничения по снимкам или их журналам. Снимки можно индексировать. Для этого нужно создать индекс по столбцу базовой таблицы снимка.
Управление журналами снимков. Создание журнала снимка осуществляется командой: 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 с.) |