- •Конспект лекций не официальный, возможны ошибки! Еремеев н.Б.
- •Распределенная база данных
- •Пример транзакции
- •Пример рбд
- •Прямые и косвенные соединения
- •Объекты: схемы и именования в рбд
- •Удаленные и распределенные предложения
- •Прозрачность в системе рбд
- •Архитектура рбд Oracle
- •Прозрачность в рбд. Прозрачность местоположения.
- •Прозрачность транзакций.
- •Прозрачность дублирования.
- •Разрешение имен в рбд
- •Снимки.
- •Двухфазный commit.
- •Фаза подготовки.
- •Фаза подтверждения
- •Создание точки подтверждения.
- •Проектирование распределенных приложений.
- •Уникальность имен.
- •Последовательности в распределенных транзакциях.
- •Обработка ошибок в удаленных процедурах.
- •Разрешение проблем распределенных транзакций
- •Снимки. Управление ими.
- •Спецификация определяющего запроса снимка (as ...).
- •Порядок создания снимков и их журналов:
- •Альтернативы снимкам.
- •Дублирование таблиц с помощью триггеров:
- •Создание триггера
- •Управление снимками
- •Создание снимков
- •Установление параметров памяти для снимков.
- •Конфигурирование автоматических обновлений
- •Ручное обновление снимков.
- •Связь между декларативными ограничениями и снимками.
- •Управление журналами снимков.
- •Внутренняя реализация журнала снимка.
- •Удаление журнала снимков.
- •Управление распределенными бд администратором.
- •Принципы простроения глобального имени бд:
- •Безопасность бд.
- •Характеристики и квоты различных табличных пространств.
- •Ресурсные лимиты и профили пользователей.
- •Лицензирование.
- •Привилегии и роли.
- •Защита таблиц.
- •Защита обзоров:
- •Усиление защиты таблиц через обзоры:
- •Защита процедур.
- •Табличные пространства и файлы данных Файлы данных
- •Табличное пространство
- •Объекты табличного пространства
- •Блок данных
- •Экстенты
- •Сегменты
- •Копирование и восстановление баз данных
- •Рекомендации по копированию баз данных.
- •Стратегии копирования Стратегии копирования в режиме no archive log
- •Стратегии копирования в режиме archive log
- •Процедуры копирования.
- •Процедура полного копирования базы данных
- •Восстановление
- •Опции предложений Audit и NoAudit.
- •Дополнительные опции по аудиту предложений:
- •Включение аудита
- •Выключение аудита.
- •Контролирование роста и размера аудиторского журнала.
- •Защита аудиторского журнала
- •Аудит с помощью триггеров
- •Поддержка национальных языков.
- •Лингвистическая сортировка.
- •Перекрытие стандартных умолчаний.
- •Форматы чисел и дат.
- •Объекты в Oracle.
- •Атрибуты
- •Сравнение объектов
- •Синтаксис объявления типов
- •Объявление и инициализация объектов
- •Вызов методов
- •Хранение объектов в бд
- •Использование оператора select
- •Вставка объектов
- •Обновление объектов
- •Удаление объектов
Табличные пространства и файлы данных Файлы данных
Используемые данные БД Oracle логически хранятся в табличных пространствах, а физически – в файлах данных. В файлах данных содержатся все объекты (таблицы, индексы и т.д.). Объекты хранятся в табличных пространствах и могут располагаться в нескольких файлах данных.
Файлы данных – это физические структуры, каждая из которых связана с одним табличным пространством.
Табличное пространство
Вся БД Oracle состоит из одного или нескольких единиц логической памяти, называемых табличным пространством.
Каждое табличное пространство состоит из одного или нескольких файлов операционной системы. При создании объекта схемы (индексы, таблицы) создается сегмент этого объекта в предназначенном табличном пространстве базы данных. Табличным пространством можно управлять (архивировать, …).
Для хранения данных пользователей не рекомендуется использовать табличное пространство System. Рекомендуется создавать свое табличное пространство, используя команду CREATE TABLE SPACE. В момент создания файлов всегда нужно приблизительно оценивать объем БД, т.к. в дальнейшем изменения будут очень трудоемкими.
Если табличное пространство полностью заполнено, можно добавить файл данных, используя команду ALTER TABLESPACE с опцией atDatafile. Количество файлов данных не ограничено.
Табличное пространство может быть запущено или нет (online/offline). Табличное пространство System всегда находится в состоянии online. Администратор системы может перевести табличное пространство в состояние offline для того чтобы:
сделать часть БД недоступной;
выполнить резервное копирование offline-вого пространства;
сделать приложение вместе с его группой таблиц недоступным на время обновления или сопровождения приложения.
Объекты табличного пространства
Блок данных – это минимальный элемент, который Oracle считывает или записывает на диск. Один блок данных соответствует фиксированному числу байт физического пространства БД на диске. Размер этого блока зависит от используемой ОС, но обычно не превышает установленного максимума (для Oracle - 4Кб).
Экстенты – специфическое число смежных блоков данных, распределяемых для хранения специфического типа информации. При создании любого объекта всегда указывается размер начального и дополнительного экстентов. Например, при создании таблиц создается начальный экстент. При заполнении таблицы экстент заполняется и нужно указать новый экстент. Объект не может занимать дробное число экстентов.
Сегмент – совокупность экстентов, распределенных для специфического типа структуры данных. Для каждой таблицы всегда создается сегмент данных, для каждого индекса создается свой сегмент индекса.
Блок данных
Блок данных – это наименьшая единица ввода/вывода. Формат данных один и тот же, независимо от того, что содержит блок данных.
Блок данных имеет следующие поля:
заголовок (содержит адрес, тип сегмента);
оглавление таблиц (информация о том какие таблицы имеют строки в этом блоке);
оглавление строк (информация о действительных строках в блоке);
данные строк (содержит данные таблицы или индексы). Данные могут переходить из одного блока в другой.
свободное пространство (используется для вставки новых строк и обновления строк, требующих дополнительного пространства).
Для каждого блока определены следующие параметры:
PCTFREE – определяет сколько в процентах должно остаться свободного пространства в блоке, чтобы Oracle посчитал, что данный блок заполнен и перешел заполнять к следующему. Это свободное пространство используется для транзакций.
PCTUSED – определяет сколько в процентах должно быть свободного места, чтобы блок можно было заполнять снова.
