- •Конспект лекций не официальный, возможны ошибки! Еремеев н.Б.
- •Распределенная база данных
- •Пример транзакции
- •Пример рбд
- •Прямые и косвенные соединения
- •Объекты: схемы и именования в рбд
- •Удаленные и распределенные предложения
- •Прозрачность в системе рбд
- •Архитектура рбд Oracle
- •Прозрачность в рбд. Прозрачность местоположения.
- •Прозрачность транзакций.
- •Прозрачность дублирования.
- •Разрешение имен в рбд
- •Снимки.
- •Двухфазный commit.
- •Фаза подготовки.
- •Фаза подтверждения
- •Создание точки подтверждения.
- •Проектирование распределенных приложений.
- •Уникальность имен.
- •Последовательности в распределенных транзакциях.
- •Обработка ошибок в удаленных процедурах.
- •Разрешение проблем распределенных транзакций
- •Снимки. Управление ими.
- •Спецификация определяющего запроса снимка (as ...).
- •Порядок создания снимков и их журналов:
- •Альтернативы снимкам.
- •Дублирование таблиц с помощью триггеров:
- •Создание триггера
- •Управление снимками
- •Создание снимков
- •Установление параметров памяти для снимков.
- •Конфигурирование автоматических обновлений
- •Ручное обновление снимков.
- •Связь между декларативными ограничениями и снимками.
- •Управление журналами снимков.
- •Внутренняя реализация журнала снимка.
- •Удаление журнала снимков.
- •Управление распределенными бд администратором.
- •Принципы простроения глобального имени бд:
- •Безопасность бд.
- •Характеристики и квоты различных табличных пространств.
- •Ресурсные лимиты и профили пользователей.
- •Лицензирование.
- •Привилегии и роли.
- •Защита таблиц.
- •Защита обзоров:
- •Усиление защиты таблиц через обзоры:
- •Защита процедур.
- •Табличные пространства и файлы данных Файлы данных
- •Табличное пространство
- •Объекты табличного пространства
- •Блок данных
- •Экстенты
- •Сегменты
- •Копирование и восстановление баз данных
- •Рекомендации по копированию баз данных.
- •Стратегии копирования Стратегии копирования в режиме no archive log
- •Стратегии копирования в режиме archive log
- •Процедуры копирования.
- •Процедура полного копирования базы данных
- •Восстановление
- •Опции предложений Audit и NoAudit.
- •Дополнительные опции по аудиту предложений:
- •Включение аудита
- •Выключение аудита.
- •Контролирование роста и размера аудиторского журнала.
- •Защита аудиторского журнала
- •Аудит с помощью триггеров
- •Поддержка национальных языков.
- •Лингвистическая сортировка.
- •Перекрытие стандартных умолчаний.
- •Форматы чисел и дат.
- •Объекты в Oracle.
- •Атрибуты
- •Сравнение объектов
- •Синтаксис объявления типов
- •Объявление и инициализация объектов
- •Вызов методов
- •Хранение объектов в бд
- •Использование оператора select
- •Вставка объектов
- •Обновление объектов
- •Удаление объектов
Экстенты
Экстенты – это логические единицы распределения пространства БД, состоящие из определенного числа непрерывных блоков.
Независимо от типа, каждый сегмент в БД создается с экстентом как минимум одного типа. Исключением являются сегменты отката – они имеют два экстента.
Когда все блоки в начальном сегменте заполняются, Oracle дополнительно выделяет сегмент (инкрементальный, extended), пока в табличном пространстве не исчерпается место.
Распределение сегментов (экстенты для сегментов).
Oracle отыскивает первый свободный непрерывный участок блоков данных, составляющих размер дополнительного экстента. Если точное совпадение не найдено, Oracle ищет множество непрерывных блоков данных, размером не меньше требуемого. В противном случае Oracle соединяет все блоки данных в один непрерывный. Если экстент не может быть распределен после вторичного поиска, возвращается ошибка.
После того, как Oracle находит необходимое свободное место в табличном пространстве, часть этого свободного места, соответствующая значению инкрементирующего экстента, распределяется этому экстенту. Оставшаяся часть пространства помечается как свободная (если она больше пяти блоков).
Заголовок сегмента и словарь данных обновляется, чтобы показать, что новый экстент распределен и что распределенное пространство больше не свободно.
Освобождение экстентов
Экстенты сегмента не возвращаются в табличное пространство, пока сегмент не освобождается как единица (например, при удалении таблицы или кластера).
Исключения:
при выполнении операции TRUNCATE для таблицы все дополнительные экстенты освобождаются для таблицы;
Oracle сам освобождает экстенты для сегментов отката.
Сегменты
Сегмент – это набор экстентов, содержащих все данные для конкретного типа структуры логического пространства внутри табличного пространства.
БД Oracle может содержать четыре типа сегментов:
сегменты данных;
сегменты индексов;
сегменты отката;
временные сегменты.
Сегменты данных создаются косвенно командами CREATE CLASTER, CREATE TABLE, CREATE SNAPSHOT. При создании этих объектов можно указывать размер начального и дополнительного экстентов.
Сегмент индекса. Каждый индекс в БД содержит единственный сегмент индекса, включающий все данные этого индекса. Косвенно сегмент индекса можно создавать командой CREATE INDEX. Индекс создается по primary key и по unique.
Сегмент отката. Каждая БД имеет один или несколько сегментов отката (часть базы данных, в которой записываются действия транзакции). Всегда есть сегмент отката System. Сегмент отката может находиться в состоянии online или offline.
Временные сегменты используются для того, чтобы выделить пространство для промежуточных типов SQL. Использование временного сегмента могут потребовать предложения CREATE INDEX, SELECT…ORDER BY, SELECT DISTINCT, SELECT…GROUP BY, SELECT…UNION, SELECT…INTERSECT, SELECT…MINUS. Временные сегменты создаются обычно в Temporary Table Space (специальные табличные пространства).
Копирование и восстановление баз данных
Существует два режима копирования в Oracle:
когда Oracle запускается в режиме NO ARCHIVE LOG – похоже на обычное копирование; не гарантируется что при восстановлении данных все данные восстановятся;
режим ARCHIVE LOG – восстанавливаются полностью все данные до момента сбоя, даже в том случае, когда носитель полностью вышел из строя, т.к. создаются журнальные файлы. Лучше когда система обладает тремя винчестерами – 1-й использовать для хранения самой БД, 2-й и 3-й – для хранения двух копий журнальных файлов. Тогда при сбое можно полностью восстановить базу данных через журнальные файлы (если архивирование базы данных проводилось регулярно).
