Выбери формат для чтения
Загружаем конспект в формате pdf
Это займет всего пару минут! А пока ты можешь прочитать работу в формате Word 👇
Курс: Администрирование
СУБД Oracle 11g
Тема 1: Основные задачи
администратора БД
Автор: Барабанщиков И.В.
Содержание курса
1. Основные задачи
администратора БД.
2. Компоненты архитектуры
СУБД Oracle.
3. Создание и управление
БД.
4. Структуры хранения
данных.
5. Сетевые сервисы СУБД
Oracle.
6. Безопасность БД.
Содержание курса
7. Целостность данных и
конкурентный доступ.
8. Мониторинг
работоспособности и
производительности
БД.
9. Управление памятью
экземпляра БД.
10. Резервное
копирование БД.
11. Восстановление БД.
12. Утилиты СУБД Oracle.
Список литературы
1. Т. Кайт «Oracle для профессионалов. Архитектура,
методики программирования и особенности версий 9i,
10g и 11g» : Вильямс, 2011
2. С. Алапати «Oracle Database 11g. Руководство
администратора баз данных» : Вильямс, 2010
3. Б. Брила, К. Луни «Oracle 11g Настольная книга
администратора БД» : Лори, 2014
4. Дж. Льюис «Ядро Oracle. Внутреннее устройство для
администраторов и разработчиков баз данных»: ДМК,
2015
5. Oracle Database Documentation Library 11gR2 (Concepts,
Installation Guide, Administrator’s Guide, 2 Day DBA)
Интернет ресурсы
• www.oracle.com – официальный сайт
компании Oracle
• http://www.all-oracle.ru - Весь Oracle
• http://my-oracle.it-blogs.com.ua - записки
для начинающих о СУБД Oracle
• http://www.interface.ru - сайт компании
«Интерфейс»
• http://www.fors.ru – сайт компании «ФОРС»
СУБД Oracle
• СУБД Oracle – лидер
на рынке СУБД.
• СУБД Oracle активно
используется в разных
отраслях:
- банки
- энергетика
- промышленность
- медицина
История СУБД Oracle
• 1979г – Oracle 2: первая в мире СУРБД на
основе SQL. Написана на ассемблере.
• 1983г – Oracle 3: переписана на Си, стала
доступна для разных платформ.
• 1984г – Oracle 4: согласованное чтение.
• 1985г – Oracle 5: одна из первых СУРБД для
клиент-серверных сред.
• 1988г - Oracle 6: блокировки на уровне
строки, поддержка языка PL/SQL.
История СУБД Oracle
• 1992г – Oracle 7: ссылочная целостность,
хранимые процедуры, триггеры.
• 1997г – Oracle 8: поддержка ООП,
секционирование, мультимедиа.
• 1998г – Oracle 8i: встроенная в СУБД Java VM.
• 2001г – Oracle 9i: XML, RAC, OLAP, Streams.
• 2004г – Oracle 10g: grid-вычисления, AWR
• 2007г – Oracle 11g: Flashback Database
• 2013г – Oracle 12c: облачные вычисления,
контейнерная и подключаемые БД.
Линейка СУБД Oracle 11g
• Enterprise Edition
• Standard Edition
• Standard Edition One
• Personal Edition
• Express Edition (XE)
Сравнение редакций Oracle 11gR2
Ограничения/ Доступность Express Edition
Personal Edition
Standard Edition
One
Standard Edition
Enterprise Edition
Количество CPU/Sockets
1 CPU
Без ограничений
2 Sockets
4 Sockets
Без ограничений
RAM
1GB
Максимум ОС
Максимум ОС
Максимум ОС
Максимум ОС
Максимальное количество
пользователей
Без ограничений
1
Без ограничений
Без ограничений
Без ограничений
Баз данных на сервер
1
Без ограничений
Без ограничений
Без ограничений
Без ограничений
Минимально
пользовательских
лицензий
Not Apply
Not Apply
5 Named Users Plus
5 Named Users Plus
25 Named Users Plus
per CPU
Размер базы данных
4GB
Без ограничений
Без ограничений
Без ограничений
Без ограничений
Windows
Да
Да
Да
Да
Да
Linux
Unix
64-Bit
Да
Нет
Нет
Нет
Нет
Да
Да
Да
Да
Да
Да
Да
Да
Да
Да
Администратор БД (DBA)
• Администратор БД –
специалист, отвечающий
за работоспособность
корпоративной СУБД.
• Главная обязанность DBA
– обеспечение для
пользователей
организации доступа к
корпоративным данным.
Задачи DBA
•
•
•
•
•
•
•
•
•
•
Проектирование БД.
Установка и обновление ПО СУБД Oracle.
Создание, конфигурирование и управление БД.
Управление объектами БД
Управление пользователями.
Обеспечение безопасности БД.
Загрузка и преобразование данных.
Мониторинг и настройка производительности БД.
Резервное копирование БД.
Восстановление БД после сбоев.
Обучение Oracle
• Сертифицированные
курсы Oracle
• Несертифицированные
курсы (серые)
• Авторские курсы по
Oracle
• Самообучение
• Обучение в
университете
Сертификация Oracle
Компания Oracle позволяет получать
сертификаты администратора БД 3-х уровней:
• Oracle Database 11g Administrator Certified
Associate (OCA).
• Oracle Database 11g Administrator Certified
Professional (OCP).
• Oracle Database 11g Administrator Certified
Master (OCM).
OCA
• Начальный уровень сертификации Oracle
DBA.
• Необходимо сдать 2 экзамена,
проверяющих знание основных задач по
администрированию БД
• Является необходимым предварительным
условием для получения сертификации
уровня OCP.
OCP
• Необходимо прослушать хотя бы один из
перечисленных в списке Oracle University
курсов под руководством инструктора.
• Необходимо сдать дополнительные
экзамены, проверяющими способность
компетентно справляться с критически
важными функциями БД.
• Является обязательным предварительным
условием для получения сертификата уровня
OCM.
OCM
• Рассчитан на экспертов по БД Oracle.
• Предварительно надо иметь сертификацию
уровня OCP.
• Необходимо написание курсовой работы
повышенной сложности.
• Последним этапом является 2-х дневный
практический экзамен.
Структура БД Oracle
СУБД Oracle – это
система, состоящая из
взаимосвязанных и
взаимодействующих
компонент, используемых
для управления БД.
Многие относятся к БД
как к черному ящику,
считая, что можно ничего
не знать о том как она
устроена внутри.
Необходимость изучения
архитектуры СУБД
• Чтобы эффективно решать задачи по
сопровождению СУБД Oracle, АБД должен
хорошо знать ее внутреннюю структуру.
Итоги
• Изучение ПО Oracle – гарантия успешной карьеры
в области информационных технологий.
• Специалисты Oracle востребованы во всем мире.
Курс: Администрирование
СУБД Oracle 11g
Тема 2:
Файлы СУБД Oracle
Автор: Барабанщиков И.В.
Основные компоненты СУБД Oracle
СУБД Oracle состоит из следующих основных структур:
• Структуры хранения
• Структуры памяти
• Процессы
Терминология
• База данных – это набор
файлов, размещенных на
системе хранения.
• Экземпляр – набор
фоновых процессов и
совместно используемой
(разделяемой) памяти.
• Сервер Oracle – это база
данных, открытая
(смонтированная) в
конкретном экземпляре.
Логическая и физическая структура БД
• БД Oracle можно
рассматривать на
физическом и
логическом уровнях.
• На физическом уровне
БД состоит из файлов.
• На логическом уровне
БД состоит из
табличных пространств .
• Каждому ТП
соответствует один или
несколько физических
файлов данных.
Файлы СУБД Oracle
Используемые в СУБД Oracle файлы делят на 2 группы:
• Файлы, образующие базу данных
• Дополнительные файлы
Файлы базы данных
БД Oracle состоит из следующих файлов:
• Управляющие файлы – содержат метаданные
о самой БД (имя БД, время создания и т.д.).
• Файлы данных – содержат данные
пользователей и приложений, хранимые в БД.
• Оперативные журналы – содержат
информацию об изменениях, которые были
внесены в БД при выполнении транзакций.
Данные журналов позволяют восстановить БД
после сбоя экземпляра.
Дополнительные файлы БД
БД Oracle также использует файлы:
• Файл параметров – для описания
стартовой конфигурации экземпляра.
• Файл паролей – для удаленного
соединения с БД администраторов БД.
• Файлы с резервными объектами – для
восстановления БД.
• Архивные журналы - для восстановления
БД.
Дополнительные файлы БД
В процессе работы сервера Oracle создаются
дополнительные файлы:
• Трассировочные файлы – при обнаружении
внутренней ошибки каждый серверный и
фоновый процессы записывает дамп
информации в свой трассировочный файл.
• Сигнальный файл (alert log) БД – это
хронологический журнал важных сообщений
и ошибок.
Структуры хранения
Структуры хранения используются для
хранения данных.
Виды структур хранения, используемые СУБД
Oracle:
• Файлы операционной системы.
• Чистые логические разделы.
• Кластерная файловая система.
• Automatic Storage Management (ASM).
• Oracle Exadata Storage
Файлы ОС
• Используются готовые файловые системы
(ntfs - Windows, ext3 - Linux).
• Для перемещения файлов используются
утилиты ОС (cp в Linux).
• Упрощают задачи администрирования БД.
• Это наиболее популярный метод хранения
данных в БД Oracle.
• Файловые системы ОС буферизуются – ОС
кеширует информацию при чтении/записи.
Кэш ввода-вывода ОС
• Когда используется файловая система, то операции
Ввода/Вывода выполняются через кэш ОС.
• Это уменьшает производительность СУБД.
Сырые диски
• Это неформатированные области диска .
• Это чистые логические разделы диска без
какой-либо файловой системы.
• Для БД Oracle весь чистый раздел – это один
большой файл.
• Требуют большего объема действий по
администрированию.
• Не буферизуются – все операции Вв/Выв с
ними БД Oracle выполняет напрямую.
• Сейчас используются редко.
Кластерная файловая система
• Специально предназначена для работы в
среде Real Application Cluster (RAC).
• Эта файловая система совместно используется
многими узлами RAC.
• Пример - Oracle Cluster File System (OCFS).
• Используется редко (ее заменяет ASM).
Automatic Storage Management
• Объединяет в себе функции файловой
системы и менеджера логических томов
(LVM).
• ASM предназначена для использования
исключительно с БД Oracle.
• Впервые появилась в Oracle 10g R1.
• Может работать как на отдельном
компьютере, так и в кластерной среде.
Архитектура ASM
• Для управления ASM
используется
специальный
экземпляр Oracle
(ASM Instance).
• Все доступные для ASM
диски объединены в
дисковые группы
(Disk Group).
Архитектура ASM
• Каждый ASM-файл расщепляется на множество единиц
хранения (allocation unit).
• Allocation unit одного ASM-файла хранятся на разных
ASM-дисках (striping).
• Каждый Allocation unit может иметь 2-3 копии (mirroring).
Преимущества ASM
• Автоматически балансирует
производительность дисковой
подсистемы. Балансировка выполняется в
фоновом режиме и не требует участия
администратора БД.
• Повышает отказоустойчивость БД за счет
зеркалирования (на дисках ASM хранятся
избыточные копии данных).
Oracle Exadata Storage
• Применяется в
программноаппаратном
комплексе Oracle
Exadata.
• Интеллектуальная
система хранения,
которая частично
берет на себя
обработку SQLзапросов.
Архитектура Oracle Exadata
• Каждая ячейка Exadata – самостоятельный сервер с
дисками и ПО Exadata.
• Ячейки выполняют множество операций, которые в
традиционной архитектуре делает экземпляр Oracle.
Exadata Cell
Ячейки Exadata реализуют механизм передачи
запросов на сторону хранилища (scan offload) с
тем, чтобы значительно уменьшить объем данных
возвращаемых на сторону серверов БД.
Ячейки Exadata выполнют следующие действия:
• фильтрация строк на основе "where" предиката
• фильтрация колонок
• фильтрация соединений (join)
• фильтрация инкрементального backup
• фильтрация зашифрованных данных
• работа с функциями Data Mining.
Итоги
• Для хранения данных СУБД Oracle может
использовать несколько систем хранения.
• На сегодняшний день для БД Oracle
актуальными являются следующие системы
хранения:
- Файлы ОС
- Automatic Storage Management (ASM)
- Exadata Storage
Автоматическое управление
памятью (АММ)
• Oracle 11g может
управлять всеми
компонентами
SGA и PGA
автоматически.
• Это избавляет DBA
от необходимости
конфигурировать
каждый пул
индивидуально.
Курс: Администрирование
СУБД Oracle 11g
Тема 4:
Процессы Oracle
Автор: Барабанщиков И.В.
Структура СУБД Oracle
СУБД Oracle состоит из следующих основных структур:
• Структуры хранения
• Структуры памяти
• Процессы
Процессы
• Пользовательский процесс – запускается, когда
пользователю БД надо соединиться с сервером БД.
• Серверный процесс – запускается, когда пользователь
создает сеанс, выполняет запросы пользователя к БД.
• Фоновый процесс – стартует при запуске экземпляра.
Пользовательский процесс
• Создается при запуске
приложения.
• Инициирует
соединение с
сервером БД.
• Взаимодействует с
сервером БД через
серверный процесс.
Серверный процесс
• Является посредником между пользовательским
процессом и сервером БД.
• Получает и выполняет SQL-команды.
• Возвращает результат.
Функции серверного процесса
• Разбирает SQL код (hard
or soft parsing).
• Строит план выполнения
SQL-оператора (если
надо).
• Выполняет оператор.
• Ищет блоки данных в
буферном кэше.
• Считывает необходимые
блоки из файла данных в
буферный кэш.
• Изменяет блоки данных
в буферном кэше (DML).
• Возвращает результат
пользовательскому
процессу.
Режимы работы серверного
процесса
Серверный процесс
может работать в одном
из двух режимов:
• Выделенный сервер обслуживает только
один пользовательский
процесс.
• Разделяемый сервер –
обслуживает много
пользовательских
процессов.
Фоновые процессы экземпляра
• Существует много
фоновых процессов.
• Каждый из них
выполняет
конкретные задачи
по обслуживанию
экземпляра.
• Фоновые процессы
делятся на:
- обязательные;
- необязательные.
Обязательные фоновые процессы
• Системный монитор (SMON) – выполняет
восстановление после отказа экземпляра при следующем старте БД.
• Монитор процессов (PMON) – выполняет очистку
после аварийного завершения пользовательского процесса.
• Процесс записи в БД (DBWn) – записывает
модифицированные блоки из кэша буферов БД на диск.
• Процесс контрольной точки(CKPT) – записывает
информацию о последней контрольной точке в управляющие файлы и
файлы данных.
• Процесс записи в журнал (LGWR) – записывает
журнальные записи на диск.
Фоновые процессы
DBWn
Пишет «грязные»
модифицированные
блоки из кэша
буферов БД в файлы
данных на диск.
Начинает работать
при наступлении
определенных
событий.
LGWR
Периодически
записывает
данные повтора
(redo log) в файлы
оперативного
журнала БД.
Данные повтора
записываются в
том порядке, как
они поступали.
CKPT
• Сигнализирует DBWn
о контрольной точке
(КТ).
• Изменяет заголовки
всех файлов данных и
управляющие файлы,
внося в них
информацию о самой
последней КТ.
Контрольная точка (Checkpoint)
• КТ – событие, состоящее в
записи «грязных»
буферов в файлы данных.
• При выполнении КТ в
управляющие файлы БД и
заголовки файлов данных
записывается информация
о самой последней КТ.
• КТ нужны для быстрого
восстановления
экземпляра после сбоя.
PMON
Выполняет:
• Очистку после
аварийного
завершения
пользовательского
процесса.
• Отключение от БД
сеансов, которые
долго простаивают.
• Динамическую
регистрацию
сервиса БД в
Листенере.
SMON
Выполняет:
• восстановление
экземпляра
после отказа
экземпляра при
его следующем
старте.
• Сжатие
свободного
пространства.
• Удаление
временных
сегментов.
ARCn
Копирует файлы
оперативного
журнала в архив
после заполнения
оперативных
журналов или
после выполнения
переключения
журнала
Экземпляр и БД
БД Oracle может быть
смонтирована на:
• Единственном
экземпляре
• Нескольких экземплярах
(кластер) одновременно.
В каждый момент времени
экземпляр связан только с
одной БД.
Архитектура ORACLE в ОС UNIX
Архитектура ORACLE в ОС Windows
Информация о фоновых процессах в ОС
В ОС Linux каждый фоновый процесс БД – это
отдельный процесс ОС:
$ ps –ef | grep ora
В ОС Windows каждый фоновый процесс БД –
это отдельный поток внутри одного
процесса ОС (oracle.exe):
C:\>pslist -d oracle
Информация о фоновых процессах в БД
Список всех фоновых процессов:
SELECT paddr, pserial#, name, description, error
FROM v$bgprocess
Работающие в экземпляре БД Oracle фоновые
процессы:
SELECT *
FROM v$bgprocess
WHERE rawtohex(paddr) <> ‘00’
Курс: Администрирование
Oracle 11g
Тема: Создание БД Oracle
Автор: Барабанщиков И.В.
Шаги по созданию БД
• Изучение документации
• Планирование БД
• Инсталляция ПО СУБД
Oracle
• Создание БД
• Настройка Oracle Net на
сервере БД
• Инсталляция и настройка
Oracle Client
Планирование БД
Необходимо принять решение по следующим
вопросам:
• Каков будет тип БД? (OLTP, DWH)
• Как много дисков будет использовать БД?
• Какой тип хранения будет использован?
• Сколько файлов данных будет в БД?
• Сколько табличных пространств будет в БД?
• Где будет размещаться БД?
• Какова будет стратегия резервного копирования?
Создание БД
• Создание БД выполняется с помощью
утилиты Database Configuration Assistant
(DBCA).
• Запуск утилиты производится с помощью
следующей команды:
В ОС Linux:
$ORACLE_HOME/bin/dbca
В ОС Windows:
dbca.exe
Утилита DBCA
Экран приветствия
Шаг 1. Выбор операции
Шаг 2. Выбор шаблона БД
Шаг 3. Определение уникального имени БД
Шаг 4. Конфигурирование EM
Шаг 4. Автоматические задачи сопровождения
Шаг 5. Определение паролей DBA
Шаг 6. Определения типа системы хранения и
расположения файлов данных
Шаг 7. Выбор опций восстановления БД
Шаг 8. Выбор компонент БД
Шаг 8. Выбор компонент БД
Шаг 8. Выбор компонент БД
Шаг 8. Выбор компонент БД
Шаг 9. Конфигурирование памяти
Шаг 9. Параметры инициализации
Шаг 9. Определение размера блока
Шаг 9. Определение кодировки символов БД
Шаг 9. Режим работы серверного процесса
Шаг 10. Определение структур хранения БД
Шаг 11. Выбор опций создания БД
Шаг 11. Подтверждение выбора
Шаг 11. Создание БД
Завершение создания БД
Итоги
• Перед созданием БД надо выполнить
планирование.
• Создание БД выполняется с помощью
утилиты DBCA.
Курс: Администрирование
Oracle 11g
Тема 5. Управление БД
Автор: Барабанщиков И.В.
Управление БД Oracle 11g
Три основных компонента управления БД
Oracle 11g:
• Процесс прослушивания (Listener)
• Интерфейс управления:
- агент управления (Oracle EM Grid Control)
- автономная консоль (Database Control)
• Экземпляр БД
Листенер
• Листенер необходим
для подключения
удаленных
пользователей к БД.
• Он управляется с
помощью утилиты
lsnrctl.
• Листенер должен
запускаться первым.
Команды управления Листенером
• Запуск Листенера
lsnrctl start
• Просмотр статуса
lsnrctl status
• Останов Листенера
lsnrctl stop
Oracle Enterprise Manager
• ЕМ может быть либо:
- Grid Control
- Database Control
• EM предоставляет
Web-интерфейс для
администрирования
БД.
• Доступ к ЕМ:
https://хост:порт/em
https://mydb:1158/em
Запуск и останов Database Control
Любая консоль Database Control позволяет
управлять только одной БД.
• Запуск Database Control
emctl start dbconsole
• Проверка статуса
emctl status dbconsole
• Останов Database Control
emctl stop dbconsole
Интерфейс Database Control
Запуск БД
В процессе запуска БД
проходит через
несколько состояний:
• БД остановлена
(shutdown)
• Создание экземпляра
(nomount)
• Монтирование БД
(mount)
• БД открыта (open)
Состояние NOMOUNT
Выполняются задачи:
• Поиск файла параметров в каталоге
$ORACLE_HOME/dbs
• Выделение памяти для SGA
• Запуск фоновых процессов
• Открытие сигнального файла alertSID.log
Режим NOMOUNT используется:
• при создании БД
• при пересоздании управляющих файлов
• при определенных сценариях резервирования и
восстановления.
Состояние MOUNT
Выполняются задачи:
• Связь БД с ранее запущенным экземпляром
• Определение расположения управляющих
файлов (указано в файле параметров)
• Чтение управляющих файлов, определение
имен и статуса файлов данных
Режим MOUNT используется при:
• Переименовании файлов данных
• Включении/отключении режима ARCHIVELOG
• Полном восстановлении БД
Состояние OPEN
Выполняются задачи:
• Проверка наличия файлов данных и файлов
оперативного журнала
• Открытие файлов данных и оперативного
журнала
• Проверка целостности БД
• Восстановление БД (при необходимости)
Состояние OPEN используется:
• При нормальном функционировании БД
Команды запуска БД
Запуск SQL*Plus:
$sqlplus /nolog
Cоединение от имени администратора:
SQL>conn / as sysdba
Варианты запуска БД:
SQL> startup
SQL> startup pfile=/oracle/dbs/init.ora
SQL> startup restrict
Команды запуска БД
Пошаговый запуск БД:
• Создание экземпляра
SQL>startup nomount
• Монтирование БД
SQL>alter database mount
• Открытие БД
SQL>alter database open
Останов БД
При останове БД
выполняется:
• Контрольная точка
• Запись информации о
последней транзакции
в управляющие файлы
и файлы данных.
• Размонтирование БД.
• Ликвидация
экземпляра.
Команда останова БД
Безопасный останов (БД не требует восстановления):
• SQL>shutdown;
• SQL>shutdown transactional;
• SQL>shutdown immediate;
Аварийный останов (БД требует восстановления):
• SQL>shutdown abort;
Команда останова БД
Безопасный останов БД
Файл параметров
Oracle читает файл
параметров при старте
БД.
Существует два типа
файла параметров:
• файл серверных
параметров
spfile.ora
• текстовый файл
параметров
init.ora
Текстовый файл параметров
• Сервер БД читает, но не пишет в этот файл.
• Значения параметров должны задаваться
вручную с помощью текстового редактора.
• Модифицированные параметры начнут
действовать только после перезапуска БД.
• В Oracle 11g если при старте БД не найден
SPFILE, то ищется текстовый файл параметров.
• Не рекомендуется использовать, начиная с
Oracle 9i.
Файл серверных параметров
•
•
•
•
Представляет собой двоичный файл.
Сервер БД может читать и писать в этот файл.
Его нельзя редактировать вручную.
Он располагается на стороне сервера, где
работает БД.
• Позволяет динамически менять параметры в
процессе работы сервера БД.
• При старте экземпляра первым ищется SPFILE.
• Рекомендуется использовать SPFILE.
Курс: Администрирование
СУБД Oracle 11g
Тема:
Структуры хранения данных
Oracle
Автор: Барабанщиков И.В.
Виды структур хранения
Структуры хранения БД
делятся на 2 вида:
• Логические:
- табличное пространство
- сегмент
- экстент
- блок базы данных
• Физические:
- файл данных
- блок ОС
Между ними существует
определенная взаимосвязь.
Иерархия пространств хранения
• БД состоит из одного
или более табличных
пространств (ТП).
• ТП состоит из одного
или нескольких файлов
данных.
• ТП может содержать
много сегментов.
• Сегмент используется
для хранения объекта
БД (таблица, индекс).
Иерархия пространств хранения
• Сегмент состоит из одного
или более экстентов.
• Экстент состоит из
нескольких смежных
блоков БД.
• Блок БД – наименьшая
область памяти,
выделяемая в БД.
• Блок БД состоит из
нескольких блоков ОС.
Табличные пространства
• ТП – это логический
контейнер для
хранения данных в БД.
• ТП состоит из одного
или более файлов
данных.
• Файл данных
принадлежит только
одной БД.
• ТП используются для
хранения объектов БД.
Сегмент
• Сегмент – это объект БД (таблица, индекс и т.д.),
занимающий место в пространстве хранения.
• Каждый объект БД, занимающий место в
пространстве хранения, сохраняется в
отдельном сегменте.
• Сегмент образован одним или несколькими
экстентами.
• Сегмент существует в ТП, но его данные могут
располагаться в нескольких файлах данных
внутри этого ТП.
• Сегмент не выходит за границы ТП.
Типы сегментов
В БД Oracle используются сегменты следующих
типов:
• Сегмент данных – хранит пользовательские
данные.
• Индексный сегмент – содержит индексы.
• Сегмент отката – хранит информацию
отката.
• Временный сегмент – создается, когда
необходимо дополнительное пространство
(сортировка)
Пример сегмента
Экстент
• Экстент – это набор
смежных блоков БД на
диске.
• Экстент располагается в
одном ТП и более того в
единственном файле
внутри этого ТП.
• Экстенты используются
для уменьшения
фрагментации внутри
файла данных.
Блок БД
• Блок БД - это наименьший элемент области
хранения, выделяемый в БД.
• Блок БД представляет собой наименьший
элемент ввода-вывода, используемый БД.
• Размер блока БД м.б. 2, 4, 8, 16, 32Кб.
• Размер блока БД устанавливается при
создании БД и затем не м.б. изменен.
• Задается параметром DB_BLOCK_SIZE.
Структура блока БД
Блок БД состоит из:
• Заголовок блока:
- Адрес блока
- Тип блока
- Директория таблиц
- Директория строк
- Слоты транзакций
• Свободное
пространство
• Строки таблицы
Детальная структура блока БД
Как строка хранится в блоке БД
Параметры PCTFREE и PCTUSED
• PCTFREE – процент
пространства блока, которое
надо оставить свободным
(зарезервировать) для
будущих обновлений строк.
• PCTUSED – процент
используемого пространства
блока, по достижении
которого раннее занятый
блок становится доступным
для вставки новых записей.
Параметры PCTFREE и PCTUSED
Миграция строк
• Миграция строк
происходит, когда в
результате обновления
строка становится
слишком большой и не
помещается целиком в
исходном блоке.
• Строка перемещается в
новый блок.
• В старом блоке остается
указатель.
Блокировка строк в блоке
• В Oracle нет менеджера
блокировок.
• Управление блокировками
происходит на уровне
блока данных.
• В заголовке каждого блока
(data/index) есть Interested
Transaction List (ITL).
• ITL состоит из слотов
транзакций.
Получение информации о сегментах
Информацию о сегментах и экстентах можно
получить из обзоров словаря данных:
• DBA_SEGMENTS
• DBA_EXTENTS
SELECT tablespace_name, segment_name,
segment_type, extents, blocks, bytes
FROM dba_segments
WHERE owner = ‘HR’
Управление пространством в ТП
• ТП с локальным
управлением (Locally
managed tablespace)
• ТП управляемое с
помощью словаря
БД (Dictionary
managed tablespace)
ТП с локальным управлением
• Информация о свободных экстентах
хранится в битовой карте в заголовке
каждого файла данных.
• Каждый бит соответствует блоку или
группе блоков.
• Битовое значение показывает свободен или
занят блок.
• Рекомендуется использовать ТП с
локальным управлением.
ТП с управлением по словарю
• Управление свободными экстентами
производится с помощью словаря данных.
• При выделении и освобождении экстентов
вносятся изменения в соответствующие
таблицы словаря данных (FET$, UET$).
• При обновлении таблиц словаря данных
генерируется информация отмены (undo).
• Такие ТП поддерживаются только для
обратной совместимости.
Хранение данных
в локально управляемых ТП
Экстенты внутри локально управляемого ТП
могут выделяться:
• Automatic – автоматическое выделение.
Размер экстентов внутри ТП определяется
системой, нельзя задать размер экстента.
• Uniform – ТП содержит экстенты
одинакового размера. Размер экстента
задает администратор БД. Стандартный
размер 1Мб.
Хранение данных
в локально управляемых ТП
Управление пространством внутри сегментов
локально управляемых ТП может быть:
• Automatic (ASSM) - для управления свободным
пространством используются битовые карты.
В ней описан статус каждого блока сегмента.
• Manual - для управления свободным
пространством используют списки свободных
блоков. Надо задавать параметры PSTUSED,
FREELISTS, FREELIST GROUPS.
Рекомендуется использовать ASSM.
Преимущества ТП
с локальным управлением
• Уменьшается конкуренция за таблицы
словаря данных.
• Автоматически отслеживаются смежные
свободные области пространства.
• Изменения в битовых картах не приводят
к генерации информации отмены (undo),
так как не происходит обновления таблиц
словаря данных.
Типичные ТП в БД
• SYSTEM
• SYSAUX
• TEMP
• UNDOTBS1
• USERS
SYSTEM
•
•
•
•
Обязательное табличное пространство.
Создается при создании БД.
Используется для управления БД.
Содержит словарь данных – таблицы с
информацией о БД.
• Объекты словаря данных находятся в схеме
SYS.
• Не м.б. переименовано или удалено.
SYSAUX
• Обязательное ТП (начиная с Oracle 10g).
• Предназначено для того, чтобы разгрузить
ТП SYSTEM.
• Используется для хранения репозиториев
дополнительных компонент ORACLE.
• Используется для хранения репозитория
рабочей нагрузки (AWR).
• Не м.б. переименовано или удалено.
TEMP
• Используется для создания временных
сегментов.
• Временные сегменты используются при
выполнении некоторых SQL-операторов
(сортировка).
• Временные таблицы хранятся во
временном ТП.
• Каждый пользователь должен иметь
временное ТП.
UNDOTBS1
• ТП в котором сервер БД хранит
информацию отмены.
• Если используется автоматическое
управление информацией отмены
(Automatic Undo Management), то
экземпляр БД должен иметь ТП типа Undo.
• ТП типа Undo создается при создании БД.
USERS
• Используется для хранения постоянных
объектов и данных пользователей.
• Раньше существовала практика
использования большого количества ТП для
пользовательских данных, чтобы уменьшить
конкуренцию за таблицы и индексы БД.
• В настоящее время лучше использовать для
хранения всех данных небольшое количество
ТП, т.к. балансировка Вв/Выв выполняется
диспетчерами логических томов (LVM)
автоматически.
Курс: Администрирование
СУБД Oracle 11g
Тема:
Управление структурами
хранения данных БД Oracle
Автор: Барабанщиков И.В.
Администрирование ТП
Операции по администрированию ТП:
• Создание ТП
• Изменение ТП
• Удаление ТП
• Увеличение размера ТП
• Перевод ТП в состояние OFFLINE и ONLINE.
• Перевод ТП в состояние Read Only.
• Получение информации о ТП.
Создание ТП
ТП создается командой CREATE TABLESPACE.
Перед созданием ТП надо выбрать:
• Тип ТП (bigfile или smallfile)
• Способ управления экстентами.
• Способ управления пространством
сегментов.
CREATE TABLESPACE users
DATAFILE ‘/u01/oracle/oradata/users01.dbf’
SIZE 2000M
BIGFILE
•
•
•
•
•
ТП bigfile состоит из одного большого файла.
Файл может содержать до 2**32 блоков.
Для 8Кб блока max размер будет 32Тб.
ТП bigfile используют для очень больших БД.
Уменьшается количество файлов данных,
следовательно контрольная точка выполняется
быстрее.
CREATE BIGFILE TABLESPACE users
DATAFILE ‘/u01/oracle/oradata/users01.dbf’
SIZE 250G
SMALLFILE
• ТП smallfile может иметь много файлов (max
1022).
• Каждый файл может иметь до 2**22 блоков.
• Для 8Кб блока max размер будет 32Гб.
• Oracle 11g создает такие ТП по умолчанию
(можно не указывать SMALLFILE).
• Если в БД много файлов – КТ выполняется долго.
CREATE SMALLFILE TABLESPACE users
DATAFILE ‘/u01/oracle/oradata/users01.dbf’
SIZE 2000M
Создание ТП управляемого с
помощью словаря данных
• Такие ТП являются устаревшими и
поддерживаются только для обратной
совместимости.
• Если ТП SYSTEM создано как локально
управляемое, то в БД нельзя создать ТП,
управляемые по словарю.
CREATE TABLESPACE appl
DATAFILE ‘/u01/oradata/appl01.dbf’ SIZE 200M
EXTENT MANAGEMENT DICTIONARY;
Создание локально-управляемого
ТП с экстентами одного размера
• Все экстенты в ТП имеют один и тот же размер.
• Стандартный размер 1Мб. Он м.б. изменен.
• Опция UNIFORM является стандартной для
временных ТП.
• Она не применима для ТП Undo.
CREATE TABLESPACE appl
DATAFILE ‘/u01/oradata/appl01.dbf’ SIZE 200M
EXTENT MANAGEMENT LOCAL
UNIFORM SIZE 10M;
Создание локально-управляемого
ТП с экстентами разного размера
•
•
•
•
•
Экстенты в ТП имеют разные размеры
Размер первых 16 экстентов - 64Кб
Следующие 63 эстента – 1Мб
Следующие 120 экстентов – 8Мб, далее 64Мб
Этот алгоритм хорошо подходит как для
малых, так и для больших сегментов.
CREATE TABLESPACE appl
DATAFILE ‘/u01/oradata/appl01.dbf’ SIZE 200M
EXTENT MANAGEMENT LOCAL
AUTOALLOCATE;
Другие опции при создании ТП
• DEFAULT STORAGE – определяет параметры
хранения по умолчанию для новых объектов,
создаваемых в ТП.
• LOGGING/NOLOGGING – указывает, что DDL
команды должны/не должны записываться в
файлы оперативного журнала.
• FORCE LOGGING – определяет, что изменения
любых объектов ТП д.б. записаны в redo log
не зависимо от значения опции LOGGING
объекта.
Другие опции при создании ТП
• ONLINE/OFFLINE – определяет доступно ли
ТП для пользователей или нет.
• FLASHBACK ON/OFF – определяет будет ли
ТП работать в режиме FLASHBACK или нет.
• BLOCKSIZE – позволяет создавать ТП с
размером блока, отличным от заданного по
умолчанию. Чтобы такое ТП м.б. использовать надо в файле параметров задать
параметр DB_nK_CACHE_SIZE (n=2,4,8,16).
Пример создания ТП
CREATE TABLESPACE appl_data
DATAFILE ‘/disk3/oradata/DB01/appl_data01.dbf’
SIZE 100M
DEFAULT STORAGE COMPRESS
BLOCKSIZE 16K
LOGGING
ONLINE
FORCE LOGGING
FLASHBACK ON
EXTENT MANAGEMENT LOCAL
SEGMENT SPACE MANAGEMENT AUTO;
Создание временного ТП
• Временное ТП используется для операций
сортировки (ORDER BY, CREATE INDEX).
• Исключает необходимость создания и
уничтожения временных сегментов в
постоянных ТП.
• Обязательно, если ТП SYSTEM является
локально-управляемым.
CREATE TEMPORARY TABLESPACE temp
TEMPFILE ‘/u01/oradata/temp01.dbf’ SIZE 2G
Создание ТП отмены (Undo)
ТП Undo используется для:
• Отката незафиксированных транзакций
(команда ROLLBACK).
• Реконструкции образа данных при
целостном чтении (read consistent read).
• Восстановления БД после логических
повреждений.
CREATE UNDO TABLESPACE undo
DATAFILE ‘/u01/oradata/undo01.dbf’ SIZE 2G;
Создание ТП отмены (Undo)
• При создании ТП отмены можно указать фразу
UNDO_RETENTION.
• Опция RETENTION GUARANTEE указывает, что
данные отмены будут сохранены в БД в
течение периода времени, заданного в
параметре инициализации UNDO_RETENTION.
• Опция RETENTION NOGUARANTEE указывает,
что сохранность данных отмены не
гарантируется.
Удаление ТП
• Для удаления пустого ТП используется
команда:
DROP TABLESPACE users;
• Для удаления ТП, содержащего сегменты
(таблицы, индексы), надо использовать
опцию INCLUDING CONTENTS для рекурсивного удаления любых сегментов:
DROP TABLESPACE users
INCLUDING CONTENTS;
Удаление ТП
• Для удаления ТП, содержащего объекты БД,
на которые имеются ссылки из других ТП,
надо выполнить:
DROP TABLESPACE users INCLUDING CONTENTS
CASCADE CONSTRAINTS;
• Для удаления вместе с ТП файлов данных
надо выполнить:
DROP TABLESPACE users
INCLUDING CONTENTS AND DATAFILES;
Удаление ТП
• При удалении ТП вносятся изменения в
управляющие файлы БД.
• При удалении ТП его файлы данных
автоматически не удаляются с диска.
• Если не используется опция AND
DATAFILES, то для удаления файлов данных
ТП надо использовать команды ОС.
• Нельзя отменить команду удаления ТП.
• Нельзя удалять ТП System.
Изменение ТП
Изменение ТП выполняется командой
ALTER TABLESPACE. Эта команда позволяет:
• Изменить параметры хранения ТП.
• Изменить режим выделения экстентов.
• Изменить режим LOGGING/NOLOGGING.
• Изменить доступность ТП (online/offline).
• Сделать ТП доступным только для чтения.
• Увеличить размер ТП.
• Сжать пространство в ТП.
Изменение ТП
ALTER TABLESPACE users ADD DATAFILE
‘/u01/oradata/users01.dbf’ SIZE 2G;
Следующие команды не оказывают влияния на
уже существующие объекты ТП (будут влиять
только на новые объекты):
ALTER TABLESPACE users
DEFAULT STORAGE (INITIAL 2M NEXT 2M);
ALTER TABLESPACE users NOLOGGING;
Управление доступностью ТП
• Можно управлять доступностью ТП, переводя
его в режим ONLINE или OFFLINE.
ALTER TABLESPACE users OFFLINE;
• В режиме OFFLINE сегменты ТП недоступны.
• ТП System нельзя перевести в OFFLINE.
• При переводе ТП в режим OFFLINE доступны
опции NORMAL, TEMPORARY, IMMEDIATE, FOR
RECOVER.
• При переводе ТП в режим ONLINE может
потребоваться восстановление носителя.
Опции режима OFFLINE
• NORMAL – Oracle записывает грязные блоки в
файлы данных ТП и закрывает их. При переходе
в ONLINE восстанавливать не надо.
• TEMPORARY – Oracle выполняет КТ для всех
online файлов данных. Для offline файлов
потребуется восстановление.
• IMMEDIATE – Oracle не выполняет КТ и не
проверяет доступность файлов данных.
Потребуется восстановление.
• FOR RECOVER – используется для point-in-time
recovery. Файлы ТП берутся из резервной копии,
к ним применяются архивные журналы.
ТП только для чтения
• Если ТП содержит неизменяемые данные
(справочники, исторические), то его можно
сделать ТП только для чтения (read only).
ALTER TABLESPACE sales2007 READ ONLY;
• В таком ТП данные таблиц можно только
читать, нельзя изменять, удалять, вставлять.
• Можно удалять объекты ТП (таблицы,
индексы), но нельзя создавать новые.
• Не нужно включать в еженедельные
резервные копии.
Получение информации о ТП
Следующие обзоры словаря данных содержат
информацию о ТП и файлах данных:
• DBA_TABLESPACES
• V$TABLESPACE
• DBA_DATA_FILES
• V$DATAFILE
• DBA_TEMP_FILES
• V$TEMPFILE
Пример
SELECT tablespace_name ts_name,
status, contents,
extent_management ext_man,
segment_space_management ss_man
FROM dba_tablespaces;
TS_NAME STATUS CONTENTS
--------------- ------------ -------------SYSTEM
ONLINE PERMANENT
UNDOTBS1 ONLINE UNDO
EXT_MAN
------------LOCAL
LOCAL
SS_MAN
---------MANUAL
MANUAL
Пример
SELECT tablespace_name ts,
file_name, bytes/1024 kbytes
FROM dba_data_files
UNION ALL
SELECT tablespace_name ts,
file_name, bytes/1024 kbytes
FROM dba_temp_files;
TS
---------USERS
SYSAUX
FILE_NAME
------------------------------------------------C:\ORACLE\ORADATA\USERS01.DBF
C:\ORACLE\ORADATA\SYSAUX01.DBF
KBYTES
---------102400
256000
Операции с файлами данных
• Перевод в состояние OFFLINE/ONLINE.
• Автоматическое расширение файла
(AUTOEXTEND).
• Увеличение/уменьшение размера файла.
• Переименование файла.
• Перемещение файла в новое
месторасположение.
Файл данных в OFFLINE
• Если файл данных поврежден его можно
перевести в состояние OFFLINE.
ALTER DATABASE DATAFILE
‘/u01/oradata/tools02.dbf’ OFFLINE;
• Остальные файлы данных ТП будут
доступны для использования.
• При переводе поврежденного файла в
ONLINE потребуется его восстановление.
Автоматическое расширение файла
Включить:
ALTER DATABASE
DATAFILE ‘/u01/oradata/appl_data01.dbf‘
AUTOEXTEND ON NEXT 100M MAXSIZE 2000M;
Выключить:
ALTER DATABASE
DATAFILE ‘/u01/oradata/appl_data01.dbf‘
AUTOEXTEND OFF;
Изменение размера файла
Увеличение или уменьшение размера файла
данных:
ALTER DATABASE
DATAFILE ‘/u01/oradata/appl_data01.dbf‘
RESIZE 1500M;
Нельзя уменьшить размер файла ниже
отметки HWM.
Переименование или перемещение
файла данных
• Остановить БД.
• Скопировать или переименовать файлы на
диске с помощью команд ОС.
• Запустить БД в режиме MOUNT.
• Переименовать файлы в БД с помощью
команды ALTER DATABASE RENAME FILE.
• Открыть БД с помощью команды
ALTER DATABASE OPEN.
Файлы, сопровождаемые Oracle
(Oracle Managed File - OMF)
• Устраняет необходимость прямого
управления файлами ОС, входящими в БД.
• Операции задаются в терминах объектов
БД, а не с использованием имен файлов.
• Чтобы использовать OMF надо установить
параметры:
DB_CREATE_FILE_DEST
DB_CREATE_ONLINE_LOG_DEST
DB_RECOVERY_FILE_DEST
SQL>create tablespace tbs1;
Преимущества OMF
• Предотвращение ошибок – DBA не может
случайно удалить файл активного ТП.
• Стандарт именования файлов – файлы
имеют уникальные, стандартные имена.
• Освобождение пространства – при
удалении ТП, удаляются его файлы данных.
• Легкость в написании скриптов – один и тот
же скрипт м.б. использован для создания ТП
в разных ОС.
Ограничения OMF
• Файлы OMF не могут быть использованы
на «сырых» устройствах (без ОС).
• Все файлы OMF должны быть созданы в
одном каталоге. Большая БД может не
поместиться в единственную файловую
систему.
• Для файлов нельзя выбирать собственные
имена. Имя файла состоит из имени БД и
уникальной символьной строки.
Увеличение размера БД
•
•
•
•
Создать новое ТП
Добавить файл данных в существующее ТП
Увеличить размер файла данных
Включить возможность динамического
расширения файла данных.
Сопровождение ТП в EM
На вкладке Administration в разделе Storage
есть ссылки:
• Control Files
• Tablespaces
• Temporary Tablespace Groups
• Datafiles
• Rollback Segments
• Redo Log Groups
• Archive Logs
Курс: Администрирование
СУБД Oracle 11g
Тема: Сетевые сервисы
СУБД Oracle
Автор: Барабанщиков И.В.
Парадигма Клиент-Сервер
• СУБД Oracle обеспечивает работу с БД
через ЛВС для удаленных пользователей.
• Пользовательский процесс не
подключается напрямую к серверу БД.
• Между пользователем и БД имеется много
разных уровней.
• При взаимодействии пользователя с
сервером БД используется дополнительное
ПО – Oracle Net.
Oracle Net и модель OSI
• Oracle Net работает на
вершине стека сетевой
модели OSI.
• Oracle Net работает на
следующих уровнях
модели OSI:
- Сеансовый,
- Представления,
- Прикладной.
• Это обеспечивает
независимость БД
Oracle от операционной
системы.
Поддерживаемые протоколы
Oracle 11g поддерживает работу со
следующими протоколами:
• Inter Process Communication (IPC) – для
локальных соединений.
• TCP/IP
• TCP/IP with secure sockets
• Windows Named Pipes (NMP)
• Sockets Direct Protocol (SDP) – для высокоскоростных сетей Infiniband.
Службы Oracle Net
Службы Oracle Net
Службы Oracle Net:
• Позволяют устанавливать сетевые соединения
с сервером Oracle.
• Обеспечивают поддержание соединения и
передачу данных.
• Выступают в качестве курьера, передающего
информацию между клиентским приложением
и сервером БД.
• Устанавливаются на каждом компьютере,
связывающимся с сервером БД.
Службы Oracle Net
Oracle Net на клиентском компьютере:
• Фоновый компонент, к которому обращается
любое приложение, чтобы установить
соединение с БД.
Oracle Net на сервере БД:
• Активный процесс – процесс прослушивания
(Listener).
• Он координирует установление соединения
между БД и внешними приложениями.
Использование Oracle Net
Oracle Net может использоваться для:
• Установления соединения с сервером БД.
• Предоставления доступа к внешним
процедурам.
• Соединения экземпляра Oracle через
гетерогенные службы с другими
источниками данных (DB2, MS SQL Server,
Sybase).
Листенер
• Является посредником в
процессе установления
нелокальных
соединений.
• Один Листенер может
обслуживать несколько
экземпляров БД.
• Параметры Листенера
задаются в файле
LISTENER.ORA
Пример файла LISTENER.ORA
LISTENER =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS =
(PROTOCOL = tcp)(HOST = srv1)(PORT = 1521))
(ADDRESS=
(PROTOCOL = ipc)(KEY = extproc)(queuesize = 50)))
)
SID_LIST_LISTENER=
(SID_LIST=
(SID_DESC=
(SID_NAME=plsextproc)(ORACLE_HOME=/oracle11g)
(PROGRAM=extproc)))
Листенер
Сервисы БД
• Каждая БД представляется одним или более
сервисов.
• Сервис БД идентифицируется по имени,
например: test.myorg.loc
• Клиент использует имя сервиса для
идентификации БД, к которой он должен иметь
доступ.
• Информация о сервисе БД и ее расположении в
сети хранится в репозитарии.
• Репозитарий представляется одним или
несколькими методами именования.
Сервисы БД
Пример: Компания имеет 3
БД, к которым могут
обращаться пользователи.
Каждая БД имеет уникальное
имя.
1. Клиент обращается к
репозитарию для поиска
информации о БД
sales.us.example.com
2. После получения
информации
устанавливается
соединение с БД.
Регистрация сервиса БД в Листенере
• Листенер должен знать о сервисах БД, для
которых он должен обрабатывать запросы на
соединение.
• Процесс передачи Листенеру данных о сервисах
БД называется регистрацией сервиса БД.
• Регистрация сервиса БД может быть
статической или динамической.
• Динамическую регистрацию сервиса БД
выполняет фоновый процесс экземпляра PMON.
Статическая регистрация
• Статическая регистрация выполняется в
файле параметров листенера LISTENER.ORA.
• Использовалась в старых версиях Oracle (до
Oracle 8i).
• Используется в новых версиях если:
процесс прослушивания не обслуживает
порт по умолчанию 1521 и экземпляр не
настроен на регистрацию по другому порту.
Приложение требует статическую
регистрацию службы.
Динамическая регистрация
• Динамическую регистрацию сервиса БД
выполняет фоновый процесс экземпляра PMON.
• PMON выполняет регистрацию сервисов БД в
листенере при старте экземпляра.
• Регистрация выполняется в Листенере по
умолчанию (локальный листенер, порт 1521).
• При использовании Листенера с нестандартными
параметрами информацию о нем указывают в
параметре инициализации LOCAL_LISTENER.
• Список сервисов, которые надо зарегестрировать
в Листенере, указан в параметре SERVICE_NAMES.
Данные для сетевого соединения
Для установления сетевого
соединения надо знать 4
значения:
• Хост, где работает Listener.
• Порт, который слушает
Listener.
• Протокол, используемый
Listener’ом.
• Имя службы БД, к которой
надо присоединиться.
Разрешение имен
Процесс определения информации,
необходимой для установления соединения,
называется разрешением имён.
Способы разрешения имён:
• Easy Connection Naming
• Local Naming
• Directory Naming
• External Naming
Easy Connection Naming
• Этот метод позволяет устанавливать соединение
с сервером БД Oracle, используя строку
соединения.
• Этот метод не требует конфигурирования на
стороне клиента.
• Поддерживается только протокол TCP/IP.
• Не поддерживаются дополнительные
возможности соединения.
CONNECT имя/пароль@хост[:порт][/служба]
SQL>CONNECT scott/tiger@dbserv:1521/db11g
Local Naming
• Данные о дескрипторах соединения хранятся
в локальном файле TNSNAMES.ORA.
• Файл TNSNAMES.ORA должен быть на каждом
клиентском компьютере, с которого надо
подключаться к БД.
• Поддерживаются все протоколы Oracle Net и
дополнительные возможности соединения.
• При необходимости внесения изменений в
дескрипторы соединения надо редактировать
файлы TNSNAMES.ORA на всех клиентах.
Local Naming
• Пользователь должен знать только короткий
псевдоним, а не всю строку соединения.
• Файл tnsnames.ora хранится в каталоге
$ORACLE_HOME/network/admin
• Месторасположение файла tnsnames.ora
можно изменить с помощью переменной
среды TNS_ADMIN.
• Этот метод используется в небольших сетях
(десятки компьютеров).
Содержимое файла TNSNAMES.ORA
Directory Naming
• Данные о дескрипторах соединения хранятся в
LDAP-сервере (Oracle Internet Directory,
Microsoft Active Directory).
• Поддерживает все протоколы Oracle Net и
дополнительные возможности соединения.
• Централизованное хранение дескрипторов
соединения облегчает их сопровождение.
• Клиент должен иметь доступ к LDAP-серверу.
• Этот метод применяется в крупных сетях с
большим количеством БД.
Directory Naming
External Naming
• Алгоритм работы этого метода концептуально
похож на алгоритм метода Directory Naming,
только вместо сервера каталогов используется
внешняя служба.
• Имена сетевых служб хранятся в службе имен
сторонней фирмы.
• Поддерживаются следующие службы других
фирм:
- Network Information Service (NIS)
- Cell Directory Services (CDS)
Установка соединения
• Соединение между клиентом и сервером БД
устанавливается с помощью Листенера.
• Возможны два варианта установления
соединения в зависимости от ОС:
1. Порожденный Листенером серверный
процесс наследует параметры сетевого
соединения.
2. Порожденный Листенером серверный
процесс не может наследовать параметры
сетевого соединения.
1. Установка соединения
1. Клиент посылает запрос на соединение с БД.
2. Листенер принимает запрос и создает процесс
выделенного сервера, который наследует
параметры сетевого соединения.
3. Серверный процесс посылает сообщение клиенту с
указанием порта, который он слушает.
4. Клиент подтверждает установления соединения.
2. Установка соединения
1. Клиент посылает запрос на соединение с БД.
2. Листенер принимает запрос и создает процесс выделенного
сервера, который не может наследовать параметры сетевого
соединения.
3. Листенер возвращает клиенту параметры сетевого
соединения с серверным процессом (номер порта).
4. Клиент посылает сообщение серверному процессу на порт,
который слушает серверный процесс.
5. Серверный процесс подтверждает клиенту установление
соединения.
Утилита tnsping
Проверку сетевого соединения Oracle Net
выполняют утилитой tnsping:
• tnsping проверят возможность соединения
клиента и листенера.
• Не проверяет доступность запрошенного
сервиса.
C:\>tnsping mydb
Проблема с выделенными серверами
Когда много пользователей подключаются к серверу
БД в режиме выделенного сервера, то значительно
возрастают накладные расходы со стороны ОС на
обслуживание серверных процессов.
Разделяемый сервер
• Листенер не порождает
серверный процесс.
• Листенер отдает запрос на
соединение наименее
загруженному диспечеру.
• Один диспетчер может
обслуживать много
пользователей.
• Диспетчеры не выполняют
запросы пользователей.
Разделяемый сервер
• Диспетчер передает запрос в
общую очередь запросов,
расположенную в SGA.
• Свободный разделяемый
сервер выбирает запрос из
очереди и выполняет его.
• Разделяемый сервер
помещает результат в
очередь ответов конкретного
диспетчера.
• Диспетчер берет ответ из
своей очереди ответов и
передает его клиенту.
Конфигурирование разделяемых
серверных процессов
• Выполняется только на сервере, на клиенте
не требуется.
• На стороне сервера БД надо настроить
экземпляр.
• В файле параметров инициализации надо
указать два параметра:
- dispatchers
- shared_servers
• Листенер автоматически настроен на
работу с разделяемыми серверами через
динамическую регистрацию.
Параметр SHARED_SERVERS
• Управляет количеством процессов
разделяемого сервера, которые будут созданы
при старте экземпляра.
• Чтобы не было простоев, количество
разделяемых серверов д.б. равно ожидаемому
числу одновременно работающих активных
сеансов.
• В процессе работы Oracle может создавать
дополнительные разделяемые сервера, пока
их число меньше чем значение параметра
MAX_SHARED_SERVERS.
Параметр DISPATCHERS
• Управляет количеством процессов
диспетчеров, которые будут созданы при
старте экземпляра, и их поведением.
• Имеет много опций, из которых обычно
используют две:
- сколько диспетчеров стартовать;
- какой протокол они должны слушать.
• Параметр MAX_DISPATCHERS устанавливает
лимит на число диспетчеров, но
дополнительные диспетчеры надо запускать
вручную.
Пример конфигурирования
• Конфигурируем диспетчеры:
SQL>alter system set
dispatchers='(pro=tcp)(dis=2)' scope=memory;
• Конфигурируем разделяемые серверы:
SQL>alter system set shared_servers=4
scope=memory;
• Регистрируем диспетчеры в Листенере:
SQL>alter system register;
SGA и PGA
• При использовании разделяемых серверов
некоторые структуры PGA перемещаются в SGA.
Большой пул
В случае использования разделяемых серверов надо:
• Увеличить общий размер SGA.
• Сконфигурировать большой пул (параметр
LARGE_POOL_SIZE).
Ограничения разделяемых
серверов
Некоторые виды работ в БД нельзя
выполнять через разделяемые серверы:
• Администрирование БД
• Резервное копирование и восстановление
БД.
• Операции массовой загрузки данных.
• Операции в хранилищах данных.
Сравнение выделенных и
разделяемых серверов
Итоги
• Для подключения пользователей к БД
используется Листенер.
• СУБД Oracle поддерживает несколько
способов разрешения имен.
• СУБД Oracle может использовать
архитектуру выделенного или
разделяемого сервера.
Курс: Администрирование
Oracle 11g
Тема: Безопасность БД
Автор: Барабанщиков И.В.
Учетная запись пользователя БД
• Для получения доступа к
БД пользователь должен
пройти процедуру
аутентификации.
• Каждый пользователь
должен иметь свою
учетную запись в БД.
• Отдельные учетные записи
облегчают проведение
аудита.
224
Учетная запись пользователя БД
Учетная запись пользователя БД содержит:
• Уникальное имя пользователя
• Метод аутентификации
• Табличное пространство по умолчанию
• Временное табличное пространство
• Профиль пользователя
• Группа потребителей
• Статус блокирования
225
Создание пользователя
с помощью оператора SQL
226
Аутентификация пользователей
При создании пользователя
надо решить какой метод
аутентификации будет
использоваться:
• Password –
аутентификация по
паролю.
• External – внешняя
аутентификация .
• Global – глобальная
аутентификация.
227
Метод аутентификации Password
• Аутентификация выполняется базой
данных.
• При попытке соединения с БД пользователь
должен указывать свой пароль.
• Пароль хранится в БД в зашифрованном
виде.
• При передаче по сети пароль автоматически
и прозрачно шифруется.
• Пароль назначает администратор БД при
создании пользователя.
228
Метод аутентификации External
• Аутентификация выполняется ОС.
• Пользователи могут соединяться с БД без
указания имени и пароля.
• БД полагается на ОС.
• В БД надо установить параметр
OS_AUTHENT_PREFIX (значение по
умолчанию OPS$).
Пользователь ОС: tsmith
Пользователь БД: OPS$tsmith
229
Метод аутентификации Global
• Аутентификация выполняется с помощью
опции Oracle Advansed Security.
• Это строгая аутентификация.
• Глобальная аутентификация позволяет
аутентифицировать пользователей:
- биометрически;
- на основе сертификатов X509;
- с помощью Oracle Internet Directory.
230
Привилегии
Привилегия – это право на
выполнение конкретной
команды SQL или право
доступа к объектам другой
схемы.
Привилегии делятся на
две категории:
• Системные
• Объектные
231
Системные привилегии
• Позволяют выполнять в БД конкретные
операции (создать сеанс, создать таблицу).
• Выдаются администратором БД.
• Имеется более 100 системных привилегий.
• Опция ADMIN OPTION позволяет выдавать
привилегию другим пользователям.
• Могут быть выданы в ЕМ, либо SQL
командой GRANT.
232
Примеры системных привилегий
Права на работу с
объектами своей схемы:
• ALTER TABLE
• CREATE TABLE
• DROP TABLE
• CREATE INDEX
• DROP INDEX
• CREATE VIEW
Права на работу с
объектами любой схемы:
• ALTER ANY TABLE
• CREATE ANY TABLE
• DROP ANY TABLE
• CREATE ANY INDEX
• DROP ANY INDEX
• CREATE ANY VIEW
233
Назначение и отмена привилегий
234
Объектные привилегии
• Каждая объектная привилегия, выданная
пользователю, позволяет ему выполнять
конкретные действия над определенным
объектом «чужой» схемы.
• Без специального разрешения пользователи
имеют доступ только к своим собственным
объектам.
• Объектные привилегии выдаются владельцем
объекта, либо пользователем, которому явно
предоставлено право выдавать привилегии на
объект.
235
Объектные привилегии Oracle
•
•
•
•
•
•
•
•
ALL – все действия с объектом
ALTER – изменение определения объекта
DELETE – удаление строк из таблицы
EXECUTE – выполнение хранимой процедуры
INSERT – вставка строк в таблицу
REFERENCES – создание ограничений
SELECT – выборка строк из таблицы
UPDATE – изменение строк в таблице
236
Назначение объектных привилегий
Объектные привилегии на таблицу в целом:
• Все привилегии:
GRANT all ON emp TO ivan;
• Конкретные привилегии:
GRANT select, insert, update ON emp TO ivan;
Объектные привилегии на столбцы таблицы:
GRANT insert(ename, sal), update(ename, sal)
ON emp TO ivan;
237
Опция GRANT OPTION
• Если пользователь получил объектную
привилегию с опцией WITH GRANT OPTION
он может выдать эту привилегию другому
пользователю.
GRANT select ON mytable TO ivan
WITH GRANT OPTION
• Если объектная привилегия
предоставлялась с опцией WITH GRANT
OPTION, то отмена этой привилегии будет
каскадной.
238
Упрощение сопровождения
привилегий
239
Роли
• Для облегчения
сопровождения
привилегий
используют роли.
• Роль – это именованная группа связанных
привилегий, которая
предоставляются
пользователям или
другим ролям.
240
Характеристики ролей
• Привилегии выдаются и отбираются у ролей с
помощью тех же команд, которые используют
для выдачи и отмены привилегий
пользователю (команды GRANT и REVOKE).
• Роли могут состоять как из системных, так и
объектных привилегий.
• Роль можно включать и выключать для
пользователя, кому она предоставлена.
• Для включения роли может требоваться пароль.
• Роли никому не принадлежат, они не находятся
ни в чьей схеме.
241
Управление привилегиями с
помощью ролей
242
Создание роли
243
Предопределенные роли
• CONNECT – create
session
• RESOURCE – create table,
create sequence, create
type, create procedure …
• DBA – большинство
системных привилегий
• SELECT_CATALOG_ROLE
– привилегии доступа к
словарю данных
244
Профили
• Профили – это
именованные наборы
ограничений на
использование ресурсов
БД и экземпляра.
• Профили также
содержит ограничения
на пароли пользователя
(длина, срок действия).
245
Использование профилей
Пользователю назначается
только один профиль в
данный момент времени.
Профили:
• Контролируют
потребление ресурсов.
• Сопровождают пароли
пользователей.
246
Ограничения на ресурсы
Профиль позволяет АБД
контролировать
потребление системных
ресурсов:
• Процессора (на уровне
сеанса и SQL-команды)
• Памяти
• Сети
• Дискового Вв\Выв
247
Квоты
Квота – это ограничение
на использование
дискового пространства.
Квоты на ТП надо
выдать явно.
Виды квот:
• Unlimited
• Конкретное значение
• Системная привилегия
Unlimited Tablespace
248
Итоги
• Обеспечение
безопасности БД –
важная функция АБД.
• СУБД Oracle обладает
большими
возможностями для
обеспечения
безопасности данных.
249