Text
                    
Oracle Database 10g: Администрирование II
Том I • Руководство слушателя
D17092RU30
Версия 3.0 Сентябрь 2007 D52834
ORACLG
Authors
Tom Best MJ. Billings
Technical Contributors and Reviewers
Herbert Bradbury Howard Bradley Harald van Breederode MJ. Bryksa Donna Cooksey Joe Fong Andy Fortunak Gerlinde Frenzen Joel Goodman Sushma Jagannath Christine Jeal Pierre Labrousse Jerry Lee Stefan Lindblad Wendy Lo YiLu
Andreas Reinhardt Ira Singer
James Spiller Janet Stem Jean-Francois Verner Oleg Ivanov
Editors
Aju Kumar Nita Pavitran
Graphic Designers
Steve Elwood Sanjeev Sharma
Publisher
Sujatha Nagendra
Copyright ©-2006, Oracle. AH rights reserved.
Disclaimer
This document contains proprietary information and is protected by copyright and other intellectual property laws. You may copy and print this document solely for your own use in an Oracle training course. The document may not be modified or altered in any way. Except where your use constitutes "fair use" under copyright law, you may not use. share, download, upload, copy, print, display, perform, reproduce, publish, license, post, transmit or distribute this document in whole or in part without the express authorization of Oracle.
The information contained in this document is subject to change without notice. If you find any problems in the document, please report them in writing to: Oracle University, 500 Oracle Parkway, Redwood Shores. California 94065 USA. This document is not warranted to be error-free.
Restricted Rights Notice
If this documentation is delivered to the United States Government or anyone using the documentation on behalf of the United States Government, the following notice is applicable:
U.S. GOVERNMENT RIGHTS
The U.S. Government’s rights to use, modify, reproduce, release, perform, display, or disclose these training materials are restricted by the terms of the applicable Oracle license agreement and/or the applicable U.S. Government contract.
Trademark Notice
Oracle, JD Edwards, and PeopleSoft are registered trademarks of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.
Перевод выяопнен: Догадкам E.. УКЦ ФОРС, 2007
Содержание
Предисловие
1. Введение
Цели урока 1-2
Цели курса 1 -3
Рекомендуемое расписание 1 -4
Что рассматривалось в курсе Администрирование I 1-5
Примеры, используемые в курсе: схема HR 1 -4
Oracle Database I Og база данных для сетевых вычислений (Grid) 1 -7
Обзор архитектуры базы данных 1-8
Структуры памяти Oracle 1 -9
Процессы Oracle 1-11
Обзор управления экземпляром Oracle 1-12
Физическая структура базы данных 1-14
Файлы, сопровождаемые Orac le (OMF) 1-16
Логические и физические структуры базы данных 1-17
Архитектура базы данных: обобщенный перечень структурных компонентов 1-19
Итоги 1-20
2 Конфигурирование Recovery Manager
Рассматриваемые вопросы 2-2
Обзор резервирования и восстановления 2-3
Возможности утилиты Recovery Manager 2-4
Компоненты утилиты Recovery' Manager 2-6
Шаги конфигурирования RMAN 2-8
Сравнение видов репозитория RMAN 2-9
Месторасположения бэкапов 2-П
Управление носителем 2-12
Использовании флэш-области восстановления вместе с RMAN 2-14
Мониторинг флэш-области восстановления с помощью ЕМ 2-16
Использование пространства во флэш-области восстановления 2-17
V$FLASН RECOVERY__AREA__USAGE 2-18
Резервирование флэш-области восстановления 2-20
Преимущества использования флэш-области восстановления 2-21
Задание параметров, влияющих на выполнение RMAN 2-22
Использование RMAN 2-24
Виды соединений RMAN 2-25
Запуск RMAN 2-26
Дополнительные параметры при вызове RMAN из командной строки 2-27
Конфигурирование настроек RMAN с помощью ЕМ 2-28
Конфигурирование настроек RMAN с помощью ЕМ 2-29
Автоматическое резервирование управляющего файла 2-30
Политика удержания 2-32
Сопровождение установленных параметров 2-34
Выделение канала 2-35
Автоматическое и ручное выделение канала 2-36
ш
Опции управления каналами 2-37
Итоги 2-39
Обзор практического занятия: конфигурирование RMAN 2-40
3	Использование Recovery Manager
Рассматриваемые вопросы 3-2
Ввод команд утилиты Recovery Manager 3-3
Типы команд RMAN 3-5
Пример работы 3-6
Обзор команд RMAN 3-7
Команда BACKUP 3-9
Ограничения резервирования 3-10
Распараллеливание резервных наборов 3-11
Сжатые резервные наборы 3-13
Копия образа 3-14
Тэги для резервных наборов и копий образов 3-16
Опции команды BACKU Р 3-17
Резервные наборы архивных журналов 3-19
Копирование всей базы данных 3-21
Типы резервирования в RMAN 3-22
Выбор между дифференциальным и кумулятивным резервированием 3-24
Отслеживание измененных блоков 3-25
Включение отслеживания измененных блоков 3-26
Инкрементально-обновляемые резервные копии 3-27
Команда LIST 3-28
Команда REPORT 3-29
Команда REPORT NEED BACKUP 3-30
Примеры команды REPORT NEED BACKUP 3-31
Команды REPORT OBSOLETE и DELETE OBSOLETE 3-32
Сопровождение резервных объектов с помощью ЕМ 3-33
Динамические представления, используемые RMAN 3-34
Мониторинг резервирования с помощью RMAN 3-36
Итоги 3-38
Обзор практического занятия: резервирование базы данных 3-39
4	Восстановление после несущественных потерь
Рассматриваемые вопросы 4-2
Причины потери файла 4-3
Сравнение критических и некритических потерь 4-4
Потеря временного файла 4-5
Восстановление при потере временного файла 4-6
Статус журнальной группы 4-7
Потеря элемента оперативной журнальной группы 4-8
Пересоздание оперативных журнальных файлов 4-9
Повторное создание индексов 4-13
Методы аутентификации администраторов базы данных 4-15
iv
Повторное создание файла парольной аутентификапии 4- 16
Итоги 4Л8
Обзор практического занятия: восстановление после потери временного файла и оперативного журнального файла 4-19
5 Восстановление базы данных
Рассматриваемые вопросы 5-2
Методы восстановления 5-3
Восстановление, управляемое пользователем: команда RECOVER 5-4
Восстановление с помощью RMAN: команды RESTQpE и RECOVER 5-5
Восстановление с использованием Enterprise Manager 5-6
Сравнение полного и неполного восстановления 5-7
Полное восстановление 5-8
Неполное восстановление 5-9
Ситуации, вызывающие необходимость неполного восстановления 5-11
Типы неполного восстановления 5-12
Выполнение неполного восстановления, управляемого пользователем 5-14
Пример убавляемого пользователем неполного восстановления до определенного момента времени 5-16
Пример управляемого пользователем неполного восстановления до прерывания 5-18
Неполное восстановление БД посредством RMAN 5-20
Пример неполного восстановления посредством RMAN с использованием предложения UNTIL TIME 5-21
Пример неполного восстановления посредством RMAN с использованием предложения
UNTIL SEQUENCE 5-23
Неполное восстановление с использованием Enterprise Manager 5-24
Неполное восстановление и сигнальный файл 5-25
Точки восстановления 5-26
Неполное восстановление: указания 5-27
Восстановление управляющего файла из автобэкапа 5-29
Создание нового управляющего файла 5-31
Восстановление табличных пространств с доступом только на чтение 5-33
Вопросы восстановления табличных пространств с доступом только на чтение 5-35
Итоги 5-37
Обзор практического занятия: выполнение неполного восстановления 5-38
6 Флэшбэк
Рассматриваемые вопросы 6-2
Обзор технологии флэшбэк 6-3
Flashback Drop и корзина удаленных объектов 6-4
Корзина удаленных объектов 6-5
Восстановление удаленных объектов из корзины 6-7
Автоматическое использование пространства корзины 6-8
Ручное освобождение пространства корзины 6-10
Когда удаляемые объекты не переносятся в корзину 6-11
Запрос сведений о содержимом корзины 6-12
Запрос данных из удаленных таблиц 6-13
Обзор операции Flashback Database 6-14
Описание процесса Flashback Database 6-15
Конфигурирование Flashback Database 6-16
v
Конфигурирование возможности Flashback Database с помощью ЕМ 6-11
Примеры Flashback Database 6-19
Flashback Database с помощью ЕМ 6-20
Исключение табличных пространств из операции Flashback Database 6-23
Рассмотрение функциональной возможности Flashback Database 6-24
Мониторинг Flashback Database 6-26
Мониторинг Flashback Database с помощью ЕМ 6-28
Гарантированные точки восстановления 6-29
Итоги 6-30
Обзор практического занятия: откат базы данных 6-31
7	Обнаружение и устранение повреждений информации в базе данных
Рассматриваемые вопросы 7-2
Что такое повреждение блока? 7-3
Симптомы повреждения блоков: ORA-1578 7-4
Как обнаруживать и устранять влияние повреждений 7-5
Функциональные возможности, имеющие отношение к обнаружению и устранению повреждений 7-7
Утилита DBVERIFY 7-8
Интерпретация выходных данных утилиты DBVERIFY 7-9
Команда ANALYZE 7-11
Проверка целостности блока в реальном времени: DB__BLOCK_CHECKING 7-12
Проверка целостности блока в реальном времени: DBJBLGCK_CHECKSUM 7-13
Использование утилиты ЕХР для обнаружения повреждения 7-14
Использование flashback в случае логических повреждений 7-15
Пакет DBMS_REPAIR 7-16
Использование пакета DBMS REPAIR 7-17
Восстановление блоков после сбоя носителя (BMR) 7-21
BLOCKRECOVER Command 7-22
Примеры использования команды BLOCKRECOVER 7-23
Интерфейс BMR, предоставляемый утилитой RMAN 7-25
Альтернативные действия 7-26
Итоги 7-27
Обзор практического занятия: восстановление блоков после сбоя носителя 7-28
8	Мониторинг и управление памятью
Рассматриваемые вопросы 8-2
Обзор управления памятью 8-3
Структуры памяти Oracle 8-4
Кэш буферов 8-6
Использование нескольких пулов буферов 8-8
Разделяемый пул 8-10
Большой пул 8-11
Java-пул 8-12
Журнальный буфер 8-13
Обзор автоматического управления разделяемой памятью 8-14
Преимущества автоматического управления разделяемой памятью 8-15
vi
Как функционирует ASMМ 8-16
Конфигурирование ASMM с использованием Database Control 8-17
Ручное конфигурирование ASMM 8-18
Использование автонастраиваемых параметров SGA 8-21
Использование параметров SGA, настраиваемых вручную 8-22
Использование представления V$PARAMETER 8-23
Изменение значения SGA TARGET 8-24
Отключение AS ММ 8-25
Ручное изменение динамических параметров, влияющих на размер SGA 8-26
Программная глобальная область (PGA) 8-27	?
Автоматическое управление пространством PG А 8-29
Средства поддержки управления PGA 8-30
Использование консультанта памяти для задания размера SGA 8-31
Использование консультанта памяти для задания размера PGA 8-32
Указания по эффективному использованию памяти 8-33
Указания по настройке библиотечного кэша 8-35
Итоги 8-37
Обзор практического занятия: использование ASMM для устранения проблем распределения памяти 8-38
9	Автоматическое управление производительностью
Рассматриваемые вопросы 9-2
Проведение настройки 9-3
Планирование производительности 9-4
Настройка экземпляра 9-6
Методология настройки производительности 9-7
Сбор статистик 9-8
События ожиданий в Oracle 9-10
Статистики системы 9-11
Вывод статистик, связанных с сеансом 9-13
Вывод статистик, связанных с службой 9-14
Представления, используемые при поиске и устранении неисправностей, а также при настройке 9-15
Представления словаря 9-16
Диагностика подвисаний или крайне медленное функционирование БД 9-17
Использование режима доступа к памяти 9-18
Использование страницы анализа подвисаний 9-19
Автоматический репозиторий рабочей загрузки 9-21
Базовые показатели, получаемые на основе моментальных снимков из AWR 9-23
Обзор инфраструктуры консультантов 9-24
Использование консультантов с помощью Database Control 9-26
Типичный сеанс настройки с использованием консультанта 9-27
Ручной вызов ADDM 9-28
Обзор применение консультанта настройки кода SQL 9-29
Обзор применения консультанта доступа к данным из кода SQL 9-30
Типичный сеанс консультанта доступа к данным и кода SQL 9-31
Рабочая нагрузка 9-32
Опции получения рекомендаций 9-33
Просмотр рекомендаций 9-35
Асинхронная операция COMMIT 9-36
Использование асинхронной операции COMMIT 9-37
Итоги 9-38
Обзор практического занятия: использование ADDM для диагностики проблем производительности 9-39
10	Управление объектами схем
Рассматриваемые вопросы 10-2
Типы таблиц 10-3
Что такое секция и для чего она используется? 10-4
Секции 10-5
Создание секции 10-6
Методы секционирования 10-7
Сопровождение секций 10-8
Индекс-таблицы 10-9
Индекс-таблицы и обычные неупорядоченные таблицы 10-10
Создание индекс-таблиц 10-12
Кластеры 10-13
Типы кластеров 10-14
Ситуации, в которых полезны кластеры 10-16
Отсортированный хэш-кластер: обзор 10-17
Отсортированный хэш кластер: пример 10-18
Отсортированный хэш кластер: общая структура 10-19
Задачи сопровождения схем 10-20
Оценка ресурсов, необходимых сегменту 10-21
Анализ тенденций роста 10-22
Сопровождение статистик оптимизатора 10-23
Оперативная реорганизация объектов схем 10-24
Реорганизация объектов: отчет о воздействии этой операции 10-26
Реорганизация объектов: обзор 10-27
Основные шаги оперативной реорганизации, выполняемой вручную 10-28
Итоги 10-29
Обзор практического занятия: управление объектами схем 10-30
11	Управление хранением
Рассматриваемые вопросы 11 -2
Обзор управления пространством 11 -3
Управление свободным пространством 11 -4
Типы сегментов 11 -5
Размещение экстентов 11-6
Управление пространством блока 11 -7
Миграция и сцепление строк 11-8
Профилактический мониторинг табличных пространств 11 -9
Пороговые значения и разрешение проблем, связанных с пространством 11-10
Мониторинг использования табличных пространств 11-11
Сжатие объектов 11-12
viii
Результаты операции сжатия 11-13
Возврат пространства при использовании ASSM 11-14
Обзор сегментного консультанта 11-15
Сегментный консультант 11-16
Реализация рекомендаций 11-18
Database Control и сжатие сегмента 11-19
Сжатие сегментов с использованием SQL 11 -20
Управление выделением пространства для возобновления операции 11-21
Использование возможности выделения пространства для возобновления приостановленной команды 11 -22	<
Возобновление приостановленных команд 11 -24
Переносимые табличные пространства 11 -26
Концепция минимального уровня совместимости 11 -27
Процедура переноса табличных пространств 11 -28
Выяснение порядкового формата платформы 11 -29
Переносимые базы данных 11 -30
Процедура переноса базы данных преобразование в исходной системе 11-31
Процедура переноса базы данных:преобразование в целевой системе 11 -32
Переносимые базы данных: указания 11 -33
Итоги 11-34
Обзор практического занятия:управление хранением 11-35
12	Автоматическое управление пространством хранения данных
Рассматриваемые вопросы 12-2
Обзор автоматического управления пространством хранения данных 12-3
Общая архитектура ASM 12-5
Задачи, связанные с экземпляром ASM 12-7
Создание экземпляра ASM 12-8
Параметры инициализации экземпляра ASM 12-9
Изменения в параметрах экземпляра базы данных 12 10
Запуск экземпляра ASM 12-11
Доступ к экземпляру ASM 12-12
Домашняя страница ASM 12-14
Страница производительности ASM 12-15
Страница конфигурации ASM 12-16
Остановка экземпляра AS М 12-17
Утилита DBCA и опции хранения 12-18
Основные понятия, связанные с ASM 12-19
Дисковые группы ASM 12-20
Группа отказа 12-21
Зеркалирование дисковых групп 12-22
Динамическая перебалансировка дисковых групп 12-23
Сопровождение дисковых групп 12-24
Страница администрирования ASM 12-25
Страница создания дисковой группы 12-26
Создание и удаление дисковых групп 12-27
Добавление дисков в дисковые группы 12-28
ix
Примеры команд Al t е г ВISKGROUВ 12-30
ASM-файлы 12-32
Утилита ASMCMD 12-33
Миграция базы данных в структуры хранения ASM 12-34
Итоги 12-36
Обзор практического занятия: использование ASM 12-3 7
13	Управление ресурсами
Рассматриваемые вопросы 13-2
Обзор ресурсного менеджера базы данных 13-3
Определения менеджера ресурсов базы данных 13-4
Использование ресурсного менеджера 13-5
Доступ к ресурсным планам 13-7
Пример: S YSTEM ELAN 13-8
Создание нового ресурсного плана 13-9
Создание групп потребителей 13-10
Включение пользователей в группы потребителей ресурсов 13-11
Задание директив ресурсного плана 13-12
Методы распределения ресурсов в плане 13-13
Сравнение методов EMPH AS IS и RAT 10 13-14
Механизм пула активных сеансов 13-16
Настройка пула активных сеансов 13-17
Максимальное расчетное время выполнения 13-18
Конфигурирование переключения группы потребителей g 13-19
Возврат в исходную труппу потребителей при завершении вызова 13-20
Настройка тайм-аута 13-22
Установление соответствия группам потребителей ресурсов 13-23
Активация ресурсного плана для экземпляра 13-25
Информация менеджера ресурсов базы данных 13-26
Мониторинг менеджера ресурсов 13-27
Итоги 13-30
Обзор практического занятия: использование менеджера ресурсов 13-31
14	Автоматизация выполнения задач с помощью планировщика
Рассматриваемые вопросы 14-2
Упрощение управления задачами 14-3
Простое задание 14-4
Шаги использования основных компонентов 14-5
К Создание программы 14-6
2.	Создание и использование расписаний 14-7
3.	Создание и выполнение задания 14-8
4.	Мониторинг задания 14-9
Использовании расписания, основанного на времени или событиях 14-10
Создание задания, выполнение которого основано на времени 14-11
Создание расписания, основанного на событиях 14-13
Создание расписаний, основанных на событиях, с помощью Enterprise Manager 14-14
х
Создание задания, основанного на событиях 14-15
Составление расписаний, основанных на событиях 14-16
Создание сложных расписаний 14-18
Создание цепочек заданий 14-19
Пример цепочки 14-21
1.	Создание объекта цепочки 14-22
2.	Определение шагов цепочки 14-23
3.	Определение правил цепочки 14-24
4.	Запуск цепочки 14-25
Мониторинг цепочек заданий 14-26	7
Дополнительные понятая планировщика 14-27 «
Создание класса заданий 14-28
Создание окна 14-29
Приоритеты заданий внутри окна 14-30
Итоги 14-31
Обзор практического занятая: автоматизация решения задач с помощью планировщика 14-32
15	Безопасность базы данных
Рассматриваемые вопросы 15-2
Обзор прозрачного шифрования данных (TDE) в Oracle 15-3
Процесс TDE 15-5
Реализация прозрачного шифрования данных 15-6
Существующие таблицы и TDE 15-9
Прозрачное шифрование данных: указания 15-10
Поддержка имен пользователей и паролей в цифровом бумажнике 15-11
Утилита Data Pump и прозрачное шифрование данных 15-12
Обзор шифруемых бэкапов RMAN 15-13
Настройка прозрачного режима 15-14
Установка парольного режима 15-15
Настройка двойного режима 15-16
Шифруемые бэкапы RMAN: указания 15-17
Необходимость конфиденциальности данных 15-18
Определение и использование терминов 15-19
Общее описание виртуальной частной базы данных .15-20
Особенности виртуальной частной базы данных 15-21
Пример VPD на уровне столбцов 15-22
Создание политики на уровне столбцов 15-23
Итоги 15-24
Обзор практического занятия: использование возможностей обеспечения безопасности базы данных Oracle 15-25
16	Использование поддержки глобализации
Рассматриваемые вопросы 16-2
Что необходимо знать каждому АБД 16-3
Что такое кодировка? 16-4
Кодировки Unicode 16-6
Как используются кодировки? 16-8
XI
Такие проблемы следует избегать 16-9
Пример еще одной проблемы .16- 10
Выбор кодировки 16-11
Кодировки базы данных и национальные кодировки 16-12
Получение информации о кодировках 16-13
Задание языковых особенностей 16-14
Задание языковых особенностей для сеанса 16-15
Значения параметров, зависимые от языка и территории 16-16
Задание языковых особенностей 16-18
Лингвистический поиск и сортировка 16-19
Использование лингвистического поиска и сортировки 16-21
Использование лингвистического поиска и сортировки 16-23
Поддержка поиска и сортировки в командах и функциях SQL 16-24
Поддержка лингвистических индексов 16-25
Настройка лингвистического поиска и сортировки 16-26
Неявные преобразования CLOB в NCLOB и NCLOB в CLOB 16-27
NLS-преобразования данных при использовании утилит Oracle 16-28
NLS-нреобразование данных при использовании утилиты Data Pump 16-30
Характеристики поддержки глобализации 16-31
Итоги 16-32
Обзор практического занятая: использование возможностей поддержки глобализации 16-33
17	Практикум
Рассматриваемые вопросы 17-2
Методика практикума 17-3
Эксплуатационные требования 17-5
Конфигурация базы данных 17-6
Метод разрешения проблем базы данных 17-7
Итоги 17-9
Обзор практикума 17-10
Приложение А: Практические задании
Приложение В: Решения практических заданий
Приложение С: основные команды Linux и команды редактора vi
Приложение D: термины и сокращения
Приложение Е: Разделяемые серверные процессы Oracle
Рассматриваемые вопросы Е-2
Установление соединения Е-3
Выделенный серверный процесс Е-4
Пользовательские сеансы Е-5
Пользовательские сеансы: выделенный сервер Е-6
Пользовательские сеансы: разделяемый сервер Е-7
Обработка запроса Е-8
SGAhPGA Е-9
xii
UGA и разделяемый сервер Oracle Е-10
Конфигурирование разделяемого сервера Oracle Е-11
Параметр DIS PATCHERS Е-12
Параметр SHARED SERVERS Е-14
Параметр MAX_SHARED_SERVERS Е-15
Параметр CIRCUITS Е-16
Параметр SHARED_SERVER_SESSIONS Е-17
Другие параметры Е-18
Проверка настройки архитектуры разделяемого сервера Е-19
Динамические представления словаря данных Е-21 $
Выбор вида соединения Е-22
Когда не используется разделяемый сервер Е-23
Итоги Е-24
Приложение F: Oracle Secure Backup
Рассматриваемые вопросы F-2
Использование ленточных накопителей для защиты данных стека продуктов Oracle F-3
Преимущество для покупателя - комплексное решение от фирмы Oracle F-4
Це играл изо ванное управление резервированием на ленту, обеспечиваемое Oracle Secure
Backup F-5
Административный домен Oracle Secure Backup F-6
Oracle Secure Backup: обзор управления резервированием F-7
Каталог Oracle Secure Backup F-8
Пользователи Oracle Secure Backup F-9
Предопределенные классы F-l 1
Интерфейсные опции Oracle Secure Backup F-l2
У правление зашитой данных F-13
Понятия Oracle Secure Backup, имеющие отношение к носителям F-14
Повторное использование набора томов F-15
Автоматическое управление устройствами F-17
Операции управления библиотекой F-19
Инсталляция Oracle Secure Backup F-20
Инсталляция программного обеспечения Oracle Secure Backup F-21
Пример инсталляции административного сервера F-22
Использование ЕМ для определения административного сервера F-23
Страница Oracle Secure Backup Device and Media F-24
Добавление устройств F-2 5
Управление устройствами с помощью ЕМ F-26
RMAN и Oracle Secure Backup F-27
Доступ к Oracle Secure Backup из RMAN F-28
Предварительная аутентификация пользователя F-29
Селектор хранения бэкапов базы данных F-30
Модель использования RMAN и Oracle Secure Backupl F-31
Определение селектора хранения баз данных F-32
Проверка ленточных накопителей F-33
Планирование операций резервирования с использованием ЕМ Database Control F-34
xiii
Рекомендуемая Oracle стратегия резервирования F-35
Сопровождение бэкапов на ленте F-36
Выполнение восстановления БД с использованием бэкапов на ленте F-37
Резервирование файлов файловых систем с помощью Oracle Secure Backup F-38
Web-инструмент Oracle Secure Backup F-39
Сценарии создания наборов данных Oracle Secure Backup F~40
Примеры сценариев создания наборов данных F-41
Структура хранения файлов описаний наборов данных F-42
Создание наборов данных с использованием Web-интерфейса F-43
Понятия, относящиеся к резервированию файлов файловых систем F-44
Задания Oracle Secure Backup F-45
Создание запросов резервирования по требованию F-47
Передача запросов резервирования планировщику F-48
Создание планов резервирования F-49
Создание триггеров резервирования F-50
Просмо тр свойств заданий и транскриптов F-51
Восстановление файлов файловых систем с помощью Oracle Secure Backup F-52
Создание запроса восстановления на основе каталога F-53
Передача планировщику запроса восстановления на основе каталога F-56
Вывод информации о всех бэкапах клиента F-57
Итоги F-58
Приложение G: Вопросы, представляющие интерес
Обзор приложения G-2
Обзор табличных пространств вида bigfile G-3
Преимущества табличных пространств вида bigfile G-4
Модель использования табличного пространства вида bigfile G-5
Создание табличных пространств вида bigfile G-7
Предложения команд SQL G-8
Примеры BFT и команд SQL G-9
Сведения, добавленные в словарь данных для поддержки VLDB G-10
Расширенный формат ROW ID и BFT G-11
Поддержка VLDB: пакет DBMSJROWID G-13
Обзор использования группы временных табличных пространств (TTG) G-14
Преимущества группы временных табличных пространств G-15
Создание и сопровождение групп временных табличных пространств G-16
Группа временных табличных пространств: примеры кода SQL G-17
Итоги G-20
Продолжение Н: Следующие шаги, продолжающие ваше обучение
В каком направление двигаться дальше? Н-2
Возможности продолжения образования Н-3
Oracle University' Н-4
Продолжение вашего образования Н-5
Центр компетенции Oracle University Н-6
Oracle Technology Network H-7
xiv
Обучение технологии Oracle Н~8
Примеры использования Oracle (ОВЕ) Н-9
Журнал Oracle Magazine Н-10
Сообщество пользователей и разработчиков приложений Oracle Н-11
Техническая поддержка: Oracle AfcrdUnk Н-12
Спасибо! Н-13
Индекс
Предисловие
Общие сведений
Перед началом изучения курса
•	необходимо иметь опыт практического использования SQL и базовые знания о командах Linux
Предварительные знания
Orach Database 10g: Администрирование I	(D17090RU20)
Как организован курс
Курс Oracle Database 10g: Администрирование //проводится инструктором и включает теоретический материал и практические упражнения. Демонстрационные примеры и предварительно подготовленные практические занятия иллюстрируют изучаемые концепции и помогают приобрести необходимые навыки.
Рекомендуемые последующие курсы	„
*	Orach Database 10g: SQL Tuning Workshop (DI 7265GC10)
*	Oracle Enterprise Manager 10g Grid Control (D17244GC11)
•	Orach Database IOg: Real Application Clusters (D17276GC20)
*	Oracle Database 10g: Implement Streams (D17333GC10)
•	Oracle Database 10g: Data Guard Administration (D17316GC20)
Preface - 3
Связанные публикации
Публикации Oracle
Название
Oracle Database 2 Day DBA 10g Release 2 (10.2)
Oracle Database Administrator’s Guide 10g Release 2 (10.2)
Oracle Database Application Developer’s Guide - Large Objects 10g Release 2 (10.2)
Oracle Database Backup and Recovery Advanced User’s Guide 10g Release 2 (10.2)
Oracle Database Backup and Recovery Basics 10g Release 2 (10.2)
Oracle Database Concepts 10g Release 2 (10.2)
Oracle Database Data Warehousing Guide 10g Release 2 (10.2)
Oracle Database Globalization Support Guide 10g Release 2 (10.2)
Oracle Database Licensing Information 10g Release 2 (10.2)
Oracle Database Net Services Administrator’s Guide 10g Release 2 (10.2)
Oracle Database Net Services Reference 10g Release 2 (10.2)
Oracle Database New Features Guide 10g Release 2 (10.2)
Oracle Database Performance Tuning Guide 10g Release 2 (10.2)
Oracle Database PL/SQL Packages and Types Reference 10g Release 2 (10.2)
Oracle Database PL/SQL User’s Guide and Reference 10g Release 2 (10.2)
Oracle Database Recovery Manager Quick Start Guide 10g Release 2 (10.2)
Oracle Database Recovery Manager Reference 10g Release 2 (10.2)
Oracle Database Reference 10g Release 2 (10.2)
Oracle Database Security Guide 10g Release 2 (10.2)
Oracle Database SQL Quick Reference 10g Release 2 (10.2)
Oracle Database SQL Reference 10g Release 2 (10.2)
Oracle Database Utilities 10g Release 2 (10.2)
Oracle Streams Advanced Queuing User’s Guide and Reference
Oracle Streams Concepts and Administration
Дополнительные публикации
•	Бюллетени версий продуктов Oracle
•	Руководства по установке и настройке
•	Файлы readme
•	Статьи международной ассоциации пользователей Oracle (IOUG)
•	Журнал Oracle Magazine
Идентификатор
В14196-02 В14231-01 814249-01 В14191-02 В14192-03 В14220-02 В14223-02 814225-01
В14199-02 В14212-02 В14213-01 В14214-02 В14211-01 814258-01 В14261-01
В14193-03 814194-03 814237-02 В14266-01
В14195-02 В14200-02 В14215-01 814257-01 В14229-01
Preface - 4
Типографическая система обозначений Типографские обозначения в тексте
1 Обозначение	Элемент	=... Пример	_	_		
* Полужирный = шрифт	Придание особого значения словам и фразам (только для Web-контента)	Для навигации внутри этого приложения не щелкайте на кнопке Back или Forward.
Полужирный ! курсив	Т ермины глоссария,	* В алгоритме вводится новый ключ.
1 Квадратные скобки		 Название клавиши	Нажмит^на клавишу [Enter].
Прописные и строчные буквы	Кнопки, флажки, триггеры, окна	i	« Щелкните на кнопке Выполнить. Установите флажок Не Удалять Карточку. Назначьте триггер When-Validate-ltem блоку ORD Открыть окно Основное Расписание.
Знаки вставки	Путь в меню	Выбери File > Save.
Запятые	I1оследовательносгь клавиш	Нажмите и отпустите по очереди следующие клавиши: [Alt], [F], [D]												
	 Шрифт Courier ; new с учетом регистра (по умолчанию ; нижний регистр)	Выходной код, имя каталога, имя файла, пароль, путь доступа, ввод пользователя, имя пользователя.	Строка кода: debug. seti (’I *, 300); Каталог: bin (DOS), $FMHOME (UNIX) Имя файла: расположение файла init.ora Пароль: введите пароль tiger Путь доступа: откройте с:\my_docs\projects Ввод пользователя: введите 300 Имя пользователя: соединитесь как HR.
С прописной буквы 	  1	Метки (за исключением имен собственных)		Адрес клиента (но Oracle Payables)
Курсив 1	Слова и фразы, которые необходимо подчеркнуть, названия книг и курсов, переменные	Не сохраняйте изменения в базе данных. Более подробная информация содержится в руководстве Oracle Database SQL Reference 10g Release 2(10,2), Введите u ser_ id^ f or s . с от, где user id -имя пользователя.
Preface - 5
Типографическая система обозначений (продолжение)
Типографские обозначения в тексте (продолжение)
Обозначение Кавычки	Элемент Элементы интерфейса с длинными именами, у которых прописная буква только первая; [ названия глав и	। Пример	| 1 Выберите‘Тпс1ибе a reusable module component'" и щелкните на Finish. Эта тема рассматривается в уроке ^Работа с объектами.”
	уроков в ссылках.	
		
' Верхний * регистр	Имена столбцов, команды SQL, схемы, таблицы, * триггеры базы данных.	Используйте команду SELECT для просмотра информации, хранимой в столбце LAST_NAME таблицы EMPLOYEES.
____L
Типографские обозначения в коде
! Обозначение	| Клемент	Пример
; Нижний регистр	, Имена столбцов, . таблиц, । триггеров базы ; данных	SELECT last__name FROM employees; CREATE OR REPLACE TRIGGER secure employees
	Пароли	CREATE USER scott	j IDENTIFIED BY tiger;
	Объекты PL/SQL	iterns.DELETE(3);
Нижний регистр, курсив	Синтаксические переменные	CREATE ROLE role
Верхний регистр	Команды и функции SQL	SELECT first__name FROM employees;
Preface - 6
Типографическая система обозначений (продолжение)
Типографические соглашения в путях навигации
В курсе используются упрощенные пути навигации» Например, для Oracle Applications:
(N) Invoice > Entry > Invoice Batches Summary (M) Query > Find (B) Approve
Этот упрощенный путь интерпретируется следующим образом:
1. (N) В окне навигатора выберите Invoice" 2» (М) В меню выберите Query > Find. 3. (В) Нажмите на кнопку Approve Обозначения:	> Entry > Invoice Batches Summary.
(N) ~ Навигатор	(I) ~ Пиктограмма (М) " Меню	(Н) Гиперссылка (Т) ~ Табуляция	(В) Кнопка	%
Preface - 7
Введение
ORACLe
Copyright © 2006 Oracle. AH rights reserved.
Цели урока
Перечень целей курса и его построение Обзор архитектуры базы данных Oracle 10g
1-2
Copyright © 2006, Oracle. All rights reserved.
Oracle Database 10g: Administration Workshop II 1-2
Цели курса
В ходе этого курса вы получите практический опыт:
•	Использования современных методов резервирования и восстановления, предоставляемых утилитой Recovery Manager (RMAN)	.
•	Применения методов мониторинга базы данных для настройки памяти, производительности и структур хранения
•	Управления ресурсами, планирования выполнения заданий, решения вопросов безопасности и глобализации

[1-3 Copyright © 2006, Oracle. Al) rights reserved.
Oracle Database 10g: Administration Workshop II 1*3
Рекомендуемое расписание		
J V * *	1:	Введение 2:	Конфигурирование RMAN 3:	Использование RMAN 4:	Восстановление после несущественных потерь V 5:	Восстановление 6:	Флэшбэк 7:	Повреждения 8:	Память	' » 9:	Производительность	10:	Схема 11:	Управление хранением 12:	ASM 13:	Ресурсы 14:	Планировщик 15:	Безопасность 16:	Глобализация 17:	Практикум Приложения
		
1-4		Copyright © 2006, Oracle. Alt rights reserved.	
Oracle Database 10g: Administration Workshop II 1-4
Что рассматривалось в курсе Администрирование !
'г	1. 2. 3. 4.	Введение Инсталляция Создание БД Экземпляр		13. Производительность 14» Концепции резервирования и восстановления 15. Резервирование
	5.	Структуры хранения	ж	16. Восстановление
	6.	Пользователи	л	17. Флэшбэк
fa	7.	Схема	С"	18. Перемещение данных
8. Данные & Одновременный доступ
9. Данные отмены
10. Безопасность
11» Сеть
12. Активное сопровождение
	Й й В	г			1г 	... . ':лЛ	ORACLE	I
	15			Copyright © 2006 Oracle. All rights reserved.		1
Oracle Database 10g: Administration Workshop II 1-5
Примеры, используемые в курсе:
схема hr
REGION JD (РК) REGION NAME
, ,,..../!4
COUNTRIES COUNTRY JD (PK) COUNTRY NAME REGION JD (FK)
LOCATION JD (PK) STREET ADDRESS POSTALJ3ODE CITY STATEPROVINCE COUNTRYJD (FK)
i
DEPARTMENTJD (PK) DEPARTMENT NAME
MANAGERJD
LOCATIONJD (FK)
<
JOBlT ' ' JOB JD (PK) JOB TITLE minsalary MAX SALARY
E
EMPLOYEEJD (PK) FIRST„NAME LASTJMAME
EMAIL
4 PHONE NUMBER
HIRE „DATE JOBJD (FK) SALARY CONCISIONJ>CT MANAGER» (FK) DEPARTMENT JD (FK)
EMPLOYEEJD (PK) STARTJ3ATE (PK) ENDJDATE JOBJD (FK) DEPARTMENTJD (FK)
Примеры, используемые в курсе: схема HR
В курсе используется приложение HR (Human Resources,Персонал). Оно может быть включено как составная часть в создаваемую базу данных.
Ниже перечислены основные бизнес-правила приложения HR:
•	В каждом отделе могут работать один или несколько служащих. Каждый служащий может быть зачислен в один и только один отдел.
*	Каждая должность должна быть занята одним или несколькими служащими. Каждый служащий в данное время должен занимать одну и только одну должность.
•	При изменении отдела или должности служащего в таблицу JOB_HISTORY записывается строка, в которой указываются даты начала и завершения периода, в течение которого служащий занимал определенную должность в каком-то отделе. Строки таблицы JOB_H±STORY однозначно идентифицируются составным главным ключом (РК), включающим столбцы EMPLOYEE__ID и START__DATE.
Условные обозначения: РК = primary key (главный ключ), FK ~ foreign key (внешний ключ) Сплошная линия отражает обязательное ограничение внешнего ключа (FK), пунктирная линия - необязательное ограничение FK.
Таблица EMPLOYEES также имеет рефлексивный внешний ключ. Это ограничение реализует бизнес-правило: каждый сотрудник может подчиняться одному и только одному менеджеру. Этот FK необязательный, потому что самый высокопоставленный сотрудник никому не подчиняется.
Oracle Database 10g: Administration Workshop II 1-6
Oracle Database 10g: база данных для сетевых вычислений (Grid)
•	Автоматическое управление пространством
•	Переносимое кластерное программное обеспечение
•	Real Application Clusters и автоматическое управление рабочей нагрузкой
•	Ресурсный менеджер
•	Oracle Streams
•	Централизованное управление с помощью Enterprise Manager Grid Control
•	Новые функциональные возможности самоуправления базы данных Oracle 10g
1-7_______________________________Copyright © 2006, Oracle. All rights reserved.
OR ACL
Oracle Database 10g: The Database for the Grid
Oracle Database 10g - первая база данных, спроектированная для грид-вычислений (grid computing}, В ней можно выделить некоторые наиболее важные функциональные возможности:
•	Автоматическое управление пространством (Automatic Storage Management, ASM), поддерживающее виртуальную среду, упрощающую предоставление устройств для хранения информации баз данных.
•	Oracle Database 10g предоставляет переносимое кластерное программное обеспечение кластеров, функционирующее на всех платформах.
•	Oracle Database 10g обеспечивает автоматическое управление рабочей нагрузкой служб внутри базы данных в среде кластера (RACK
•	Oracle Database 10g обеспечивает дополнительное соответствие групп потребителей на основе хост-машины, приложения, имени пользователя ОС или службы.
•	Oracle Streams позволяет создавать потоки передачи информации между базами данных, узлами или группами серверов грида. Oracle Streams предоставляет унифицированную среду совместного использования информации, объединяющую в единой технологии очереди сообщений, репликацию, события и загрузку данных в хранилище.
•	Enterprise Manager Grid Control предоставляет в одном инструменте возможности мониторинга и управления не только программным обеспечением Oracle (Oracle Application Server 10g и Oracle Database 10g) вашей грид-среды, но также Web-приложениями (дня этого используется Application Performance Management (АРМ)), хостами, устройствами хранения и устройствами балансирования загрузки серверов.
Oracle Database 10g: Administration Workshop II 1-7
Обзор архитектуры базы данных
1-8 Copyright © 2006, Oracle. All rights reserved.|
Обзор архитектуры базы данных
На следующих страницах представлен обзор архитектуры базы данных Oracle. Этот курс расширяет ваши знания о структурах, процессах и утилитах базы данных Oracle.
Каждая работающая база данных Oracle связана с экземпляром {instance) Oracle. Когда на сервере баз данных стартует база данных, программное обеспечение Oracle выделяет память для системной глобальной области {System Global Area, SGA) и запускает несколько фоновых процессов {backgroundprocesses) Oracle. Такое объединение SGA и процессов Oracle называется экземпляром Oracle.
После запуска экземпляра программное обеспечение связывает экземпляр с определенной базой данных. Это называется монтированием базы данных. Вслед за этим база данных готова для открытия, после которого она становится доступной для зарегистрированных пользователей. На одном компьютере могут одновременно функционировать несколько экземпляров с доступом к своей собственной физической базе данных.
Архитектуру баз данных Oracle можно представлять как совокупность различных взаимосвязанных структурных компонентов.
База данных Oracle использует структуры памяти и процессы для управления и доступа к базе данных. Все структуры памяти располагаются в основной памяти компьютеров, образующих сервер базы данных. Процессы представляют собой задания, работающие в памяти этих компьютеров. Процесс определяется как "‘поток управления” (“thread of control”) или как механизм (mechanism) в операционной системе, который может выполнять последовательность шагов.
Oracle Database 10g: Administration Workshop II 1*8
Структуры памяти Oracle
Разделяемый пул
Пул потоков
Большой пул
Java-пул
Кэш буферов БД
Журнальный буфер
Ccy^ight © 2006, Qrade. All rights reserved
Структуры памяти Oracle
Основные структуры памяти, связанные с экземпляром Oracle:
• Системная глобальная область (System Global Area, SGA), разделяемая всеми серверными и фоновыми процессами
• Программная глобальная область (Program Global Area, PGA), частная для каждого серверного и фонового процесса (каждому процессу выделяется своя PGA).
SGA - это область разделяемой памяти, в которой содержатся данные и управляющая информация экземпляра.
Структуры данных SGA:
• Кэш буферов БД (Database buffer cache); содержит выбираемые из БД блоки данных.
• Журнальный буфер (Redo log buffer); кэширует информацию повторного выполнения (используемую при восстановлении экземпляра) до момента записи в журнальные файлы.
• Разделяемый пул (Shared pool); кэширует различные структуры, которые могут совместно использоваться пользователями.
• Большой пул (Large pool) - необязательная область, в которой отводится память для буферов определенных больших операций ввода/'вывода (например, операций резервирования и восстановления), а также для серверных процессов ввода-вывода.
* Java-пул; используется для расположения Java-кода сеансов и данных внутри виртуальной Java-машины (Java Virtual Machine - JVM).
• Пул потоков (Streams pool); используется Oracle Streams.
При запуске экземпляра с помощью Enterprise Manager или SQL* *Plus показывается размер памяти, выделенной для SGA.
Oracle Database 10g: Administration Workshop II 1-9
Структуры памяти Oracle (продолжение)
Программная глобальная область (PGA) - это область памяти, выделяемая для каждого серверного процесса, содержащая данные и управляющую информацию этого процесса. Серверный процесс - это процесс, который обрабатывает запросы клиента. Каждый серверный процесс имеет свою приватную область PGA, которая создается при старте серверного процесса. Доступ к этой области имеет только этот серверные процесс, операции чтения/записи в эту область выполняются через код Oracle, вызываемый из этого серверного процесса.
В рамках динамической инфраструктуры SGA можно без остановки экземпляра менять размеры кэша буферов БД, разделяемого пула, большого пула, Java-пула и пула потоков. База данных Oracle использует параметры инициализации для создания и конфигурирования структур памяти. Например, параметр SGA__TARGET задает общий размер памяти, доступной для SGA. Когда параметр SGA TARGET ~ 0, автоматическое управление разделяемой памятью (Automatic Shared Memory Management) выключено.
Oracle Database 10g: Administration Workshop II 1-10
Процессы Oracle
Серверный процесс
Серверный процесс
Серверный процесс
Серверный процесс
Системная глобальная область SGA
Системный монитор SMON
Монитор процессов PMOIM
Процесс записи в БД DBWn
Процесс контрольной точки СКРТ
Процесс записи в журнал LGWR
Архиватор ARCn
Фоновые процессы
1-11
Copyright © 2006, Oracle. All rights reserved.
Процессы Oracle
Когда вызывается прикладная программа или иисгрументальное средство, например. Enterprise Manager, Oracle создает серверный процесс для выполнения команд, порождаемых приложением.
Кроме того. Oracle создает набор фоновых процессов для экземпляра. Эти процессы взаимодействуют друг с другом и с операционной системой. Они управляют структурами памяти, записывают информацию на диск в асинхронном режиме ввода/вывода и выполняют общесистемные служебные действия.
Состав работающих в текущий момент фоновых процессов зависит от используемых функциональных возможностей базы данных. Наиболее общие процессы следующие:
•	Системный монитор (System monitor - SMON); выполняет восстановление после отказа экземпляра при его последующем старте.
•	Монитор процессов (Process monitor - PMON); выполняет очистку после аварийного завершения пользовательского процесса.
•	Процесс записи в БД (Database writer ~ DBWn); пишет модифицированные блоки из кэша буферов БД в файлы на диск.
•	Процесс контрольной точки (Checkpoint - СКРТ); изменяет все файлы данных и управляющие файлы, внося в них информацию о самой последней контрольной точке.
•	Процесс записи в журнал (Log writer - LGWR); пишет журнальные записи на диск.
•	Архиватор (Archiver - ARCn): копирует файлы оперативного журнала в архив после заполнения оперативных журнальных файлов или после выполнения переключения журнала.
Oracle Database 10д: Administration Workshop II 1-11
Обзор управления экземпляром Oracle
Пример:
Запуск экземпляра БД
Установление соединения ...........—...........
..ы..;.,
SGA
		
Системный монитор (SMON)
Монитор процессов (РМОЫ)
ользовятельскии
процесс
^Серверный 3 ) процесс
Кэш
буферов БД
Процесс записи в
БД ди,
Журнальный буфер
Процесс записи в журнал (LGWR)
Оперативные журналы
Файлы иных
1-12
Copyright © 2006, Oracle. АН rights reserved.


j
Обзор управления экземпляром Oracle
В приводимом примере на наиболее общем уровне описываются операции, выполняемые базой данных Oracle. Этот пример отражает конфигурацию Oracle, в которой пользовательские и связанные с ними серверные процессы выполняются на различных компьютерах (соединение через сеть).
L На компьютере, на котором функционирует Oracle (часто такой хост называют сервером баз данных) был запущен экземпляр базы данных Oracle.
2.	На локальном компьютере или рабочей станции, на которой функционирует приложение запускается пользовательский процесс. Клиентское приложение пытается установить соединение с экземпляром с использованием драйвера служб Oracle Net.
3.	Экземпляр обнаруживает поступающий от приложения запрос на установление соединения, связывает приложение с серверным процессом, который начинает выполнять запросы на выполнение операций, приходящие от пользовательского процесса.
Oracle Database 10g: Administration Workshop II 1~12
Обзор управления экземпляром Oracle
1-13
- .............................................
Экземпляр:
Обработка команды SQL
Кэш
буферов БД
Серверный процесс
Процесс записи в БД (DBWn)
1ользовательскии
процесс j
10
изменяет строку»
ГО1Йр>^
SGA
Процесс контрольной точки L ията.
Журнальны й буфер
Процесс записи в журнал (LGWR)
Архиватор (АИСл)
Файлы данных Управляющий Оперативные Архивные журналы
файл
журналы
Copyright О 2006, Oracle. All rights reserved.

i

Обзор управления экземпляром Oracle (продолжение)
4.	Пользователь изменяет строку.
5.	Серверный процесс получает команду и проверяет, находится ли уже такая же команда в разделяемом пуле SGA. Если найдена разделяемая область SQL, серверный процесс проверяет привилегии доступа пользователя к требуемым данным, а затем использует для обработки команды существующую разделяемую область SQL. Если команда не найдена в разделяемом пуле, тогда для проведения синтаксического разбора и выполнения команды выделяется новая разделяемая область SQL.
6.	Серверный процесс выбирает необходимые для обработки табличные данные из файлов данных или из блоков данных, находящихся в SGA.
7.	Серверный процесс модифицирует табличные данные в SGA.
8.	При фиксации транзакции процесс LGWR немедленно записывает в оперативный журнал информацию о транзакции.
9.	Процесс DBWw пишет эффективным образом модифицированные блоки на диск.
10.	Серверный процесс передает приложению сообщение об успешном или неудачном завершении операции.
В ходе всей этой процедуры также выполняются фоновые процессы, отслеживающие условия, при которых требуется их вмешательство.
Oracle Database 10g: Administration Workshop II 1-13
Физическая структура базы данных
Управляющие файлы
ъ
'Ш
Файл параметров
' !
Файл паролей
Ч
-** д^-
Файлы данных
г» > г
W 1
Файлы с резервными объектами
Оперативные журналы
Архивные журналы
Сигнальный и трассировочные файлы
1-14 ______________________________Copyright © 2006, Oracle. All rights reserved.______________________________________
Физическая структура базы данных
В базе данных Oracle находятся перечисленные ниже виды файлов.
•	Управляющие файлы; содержат метаданные о самой БД (например, данные о физической структуре). Эти файлы очень важны для БД. Без них не могут быть открыты файлы данных и поэтому не может быть открыт доступ к информации БД.
•	Файлы данных; содержат данные пользователей и приложений, хранимые в БД.
•	Оперативные журналы (оперативные файлы повторного выполнения); позволяют восстановить базу данных после сбоя экземпляра. Когда работа базы данных завершается аварийно и при этом не теряются никакие файлы данных, экземпляр может восстановить базу данных на основе информации в этих файлах.
Большое значение для успешной работы БД имеют следующие файлы.
•	Файл параметров; используется для описания стартовой конфигурации экземпляра.
•	Файл паролей; позволяет пользователям удаленно подсоединяться к базе данных для выполнения административных задач.
•	Файлы с резервными объектами; используются для восстановления базы данных. Эти файлы обычно копируются из резерва (restore) в случае потери носителя (media failure), а также в случае пользовательской ошибки, приведшей к повреждению или удалению первоначального файла.
•	Архивные журналы (архивные файлы повторного выполнения); хронологические копии созданных экземпляром оперативных журналов. Эти файлы позволяют восстановить базу данных. Для этого сначала из резервных объектов базы данных извлекаются потерянные файлы данных, которые затем восстанавливаются с помощью архивных и оперативных журналов.
Oracle Database 10g: Administration Workshop II 1-14
Физическая структура базы данных (продолжение)
•	Трассировочные файлы; каждый серверный и фоновый процесс может писать в связанный с ним трассировочный файл. При обнаружении внутренней ошибки процесс выводит дамп с информацией об ошибке в трассировочный файл. Некоторая часть информации, которая пишется в трассировочный файл, предназначена для администратора базы данных, другая часть данных необходима службам технической поддержки Oracle (Oracle Support Services).
*	Сигнальные файлы: являются специальными трассировочными файлами. Сигнальный файл базы данных представляет собой хронологический журнал сообщений и ошибок. Oracle рекомендует просматривать такие файлы.
%
Oracle Database 10g: Administration Workshop II 1-15
Файлы, сопровождаемые Oracle (OMF)
Задание операций с файлами в терминах объектов базы данных, а не с использованием имен файлов.
Параметр	Описание
DB_CREATE_FILEJDEST	Указывает директорию по умолчанию в файловой системе для файлов данных и временных файлов
DB_CREATE_ONLINE_LOG_ DESTji	Определяет месторасположение по умолчанию для создаваемых журнальных и управляющих файлов
DBJRECOVERYJFILEJDEST	Определяет месторасположение резервных объектов, получаемых с помощью утилиты RMAN
Пример:___________________________________________________
SQt> ALTER SYSTEM SET DB_CREATE__FILE__DEST w '/uOl/oradata' ; SQL> CREATE TABLESPACE tbs_l;
Файлы, сопровождаемые Oracle (OMF)
Использование файлов, сопровождаемых Oracle (Oracle Managed Files ~~ OMF) устраняет необходимость прямого управления администратором файлами операционной системы, входящими в базу данных Oracle. Операции задаются в терминах объектов базы данных, а не с использованием имен файлов. При необходимости база данных использует внутри себя стандартный интерфейс файловой системы, чтобы создавать и удалять файлы следующих компонентов БД:
*	табличных пространства;
•	журнальных файлов;
•	управляющих файлов;
*	архивных журналов:
•	файлов отслеживания измененных блоков;
•	журналов отката;
•	резервов RMAN.
В базе данных могут быть как файлы, сопровождаемые, так и не сопровождаемые сервером Oracle. Каталоги файловой системы, задаваемые в этих параметрах, должны существовать, и база данных их не создает. Для каталога должны быть установлены права доступа, позволяющие базе данных создавать в нем файлы.
В примере на слайде задан параметр DB CREATE_FILE__DEST. Поэтому в команде CREATE TABLESPACE опущена фраза DATAFILE. Файл данных создается в месторасположении, определяемом параметром DB_CREATE__FILEJDEST.
Oracle Database 10gr: Administration Workshop II 1-16
1-17 Copyright ® 2006, Oracle. All rights reserved.|
Логические и физические структуры базы данных
База данных Oracle - совокупность данных, обрабатываемых как единое целое. Обшее назначение базы данных заключается в хранении и получении связанной информации. База данных состоит из логических и физических структур.
Табличные пространства
База данных делится на логические компоненты хранения, называемые табличными пространствами. В них объединяются связанные между собой логические структуры. Например, в табличном пространстве обычно группируют все объекты приложения для упрощения некоторых административных операции. Можно создать табличное пространство для данных приложения и дополнительно табличное пространство для индексов приложения.
Базы данных, табличные пространства и файлы данных
На слайде показаны взаимосвязи между базой данных, табличными пространствами и файлами данных. Каждая база данных логически делится на одно или несколько табличных пространств. Для каждого табличного пространства явно создается один или несколько файлов данных. В них хранятся данные всех логических структур, размещенных в табличном пространстве. Для временного (TEMPORARY) табличного пространства вместо файла данных создается файл временных данных (tempfile).
Oracle Database 10g: Administration Workshop II 1-17
Логические и физические структуры базы данных (продолжение)
Схемы
Схема - совокупность объектов базы данных, принадлежащих пользователю БД. К объектам схемы , например, относятся таблицы, представления, последовательности, хранимые процедуры, синонимы, индексы, кластеры и связи базы данных. В общем случае в число объектов схем включается все, что приложение создает в базе данных. Блоки данных
Данные в Oracle на самом низком структурном уровне хранятся в блоках данных. Один блок данных связан с конкретным количеством байтов в физическом пространстве базы данных на диске. Для каждого табличного пространства при его создании задается размер блока. База данных использует и распределяет свое свободное пространство в блоках данных Oracle.
Экстенты
Следующий более высокий уровень логического пространства базы данных называется экстентом. Он содержит конкретное количество смежных блоков данных (полученных при одном выделении), используемых для хранения информации определенного вида.
Сегменты
В логической структуре БД сегмент располагается на один уровень выше экстента. Сегмент - набор экстентов, выделенных определенной логической структуре. Ниже перечислены некоторые типы сегментов.
•	Сегменты данных’, каждая таблица, отличная от кластеризованной и индекс-таблицы, имеет сегмент данных. Все табличные данные хранятся в экстентах своего сегмента данных. В секционированной таблице у каждой секции свой сегмент данных. У каждого кластера также имеется свой сегмент данных. Данные всех таблиц кластера располагаются в кластерном сегменте данных.
•	Индексные сегменты: у каждого индекса имеется индексный сегмент, в котором находятся все его данные. В секционированном индексе каждая секция имеет свой индексный сегмент.
•	Сегменты отмены*, администратор базы данных создает одно табличное пространство типа UNDO для временного хранения информации отмены (undo). Эта информация используется для генерации данных при согласованном чтении из базы данных, а также при восстановлении базы данных и откате незафиксированных транзакций пол ьзователей.
•	Временные сегменты*, создаются Oracle, когда командам SQL требуется рабочая область для завершения выполнения. После окончания выполнения экстенты временного сегмента возвращаются экземпляру для последующего использования. Задавайте временное табличное пространство для каждого пользователя или же временное табличное пространство, используемое по умолчанию для всей базы данных в целом.
База данных Oracle выделяет пространство динамически. Дополнительные экстенты выделяются, когда заполнены все экстенты сегмента. Так как выделение экстентов производится, когда это необходимо, на диске экстенты одного и того же сегмента могут быть смежными и несмежными.
Oracle Database 10g: Administration Workshop I! 1-18
Архитектура базы данных: обобщенный перечень структурных компонентов
• Структуры памяти:
-	Системная глобальная область (SGA): кэш буферов БД, журнальный буфер и другие пулы
-	Программная глобальная область (PGA)
• Процессы:	,
-	Пользовательский процесс и серверный процесс
-	Фоновые процессы: SMON, PMON, DBWn, СКРТ,
LGWR, ARCn и т.д.
• Структуры хранения:
-	Логические: база данных, схема, табличное пространство, сегмент, экстент, блок Oracle
-	Физические: файлы данных, файлы параметров, журналы и блок ОС
Copyright © 2006, Oracle. Ail rights । eserved.|
Архитектура базы данных: обобщенный перечень структурных компонентов
На этом уроке был представлен обзор структурных компонентов базы данных Oracle (структуры памяти, процессы и структуры хранения). Понимание архитектуры базы данных Oracle необходимо для изучения этого курса.
Oracle Database Юр: Administration Workshop II 1-19
Итоги
Copyright © 2006 Oracle. AH rights reserved.
Перечень целей курса
Обзор архитектуры базы данных Oracle 10g
Oracle Database 10g: Administration Workshop II 1-20
Конфигурирование Recovery Manager
%
1
Copyright © 2006, Oracle. All rights resen/ed
Рассматриваемые вопросы
•	Репозиторий и каталог восстановления RMAN
•	Описание интерфейса библиотеки управления носителем
•	Конфигурирование параметров базы данных, влияющих на операции, выполняемые RMAN
•	Подсоединение к трем различным типам баз данных с использованием RMAN
•	Конфигурирование двух видов политики удержания
•	Изменение стандартных установок RMAN по команде configure
Copyright © 2006, Oracle. All rights reserved.
Рассматриваемые вопросы
Recovery Manager (RMAN) - это компонент базы данных Oracle 10g, используемый для выполнения операций резервирования и восстановления. Enterprise Manager (ЕМ) предоставляет графический интерфейс к наиболее часто используемым функциональным возможностям утилиты RMAN.
На занятиях курса База данных Oracle: администрирование I демонстрировались основные операции RMAN, выполняемые с помощью ЕМ Database Control Console. Поэтому в этом уроке графический интерфейс к RMAN не будет подробно рассматриваться.
Oracle Database 10g: Administration Workshop IS 2-2
Обзор резервирования и восстановления
В курсе Администрирование / рассматривались следующие основные вопросы, связанные с резервированием и восстановлением:
•	Типы сбоев, которые могут произойти
- в команде, сеансе, сбой экземпляра, потеря носителя и т.д.
•	Конфигурирование режима archivelog
*	Планирование автоматического резервирования
•	Инкрементальное резервирование
•	Выполнение и настройка восстановления после сбоя экземпляра
ORACLE'
Copyright © 2006, Oracle. АН rights reserved.
Обзор резервирования и восстановления
В курсе База данных Oracle: администрирование / рассматривались основные вопросы, связанные с резервированием и восстановлением В последующих уроках некоторые из этих вопросов будут рассмотрены значительно подробнее.
Oracle Database 10g: Administration Workshop II 2-3
Возможности утилиты Recovery Manager
RMAN предоставляет гибкие методы:
*	Резервирования баз данных, табличных пространств, файлов данных, управляющих файлов и архивных журналов
*	Управления задачами резервирования и восстановления
*	Выполнения инкрементального резервирования и восстановления на уровне блоков
•	Выявления поврежденных блоков во время резервирования
•	Использования двоичного сжатия во время создания бэкапов
Возможности утилиты Recovery Manager
Recovery Manager (RMAN) - это утилита Oracle, используемая для управления операциями резервирования, копирования из резерва и восстановления базы данных Oracle. RMAN имеет мощный командный язык, который не зависит от ОС.
Утилита RMAN предоставляет несколько возможностей для резервирования, недоступных при использовании команд операционной системы.
•	Хранит часто выполняемые операции в базе данных в виде скриптов.
•	Включение отслеживания изменений в базе данных позволяет RMAN ограничить инкрементальное резервирование копированием только тех блоков, которые были изменены с момента выполнения предыдущего резервирования. В результате повышается производительность резервирований и уменьшается время операций восстановления базы данных, работающей в режиме ARCHIVELOG.
•	Для каждой резервного набора можно определить размер фрагмента и сократить время создания за счет распараллеливания операций резервирования.
•	RMAN может восстанавливать отдельный поврежденный блок или набор блоков одного файла данных вместо того, чтобы копировать из бэкапа и восстанавливать файл данных целиком.
Oracle Database 10g: Administration Workshop II 2-4
Возможности утилиты Recovery Manager (продолжение)
•	Операции RMAN могут быть сгруппированы и автоматически выполняться с помощью планировщика базы данных Oracle (Oracle Database Scheduler). Планировщик будет рассмотрен в уроке “Автоматизация выполнения задач с помощью планировщика”.
•	Обнаружение поврежденных блоков во время резервирования и доступ к информации о таких блоках с использованием динамических представлений V$BACKUP__CORRUPTION и V$COPY__CORRUPTION .
» Следующие особенности RMAN повышают производительность:
-	автоматическое распараллеливание процессов резервирования, копирования из бэкапа и восстановления;
-	отсутствует генерация лишних журнальных записей при оперативном резервировании базы данных;
-	при резервирований чтение данных из файла может выполняться ограниченное параметром количество раз в секунду, чтобы не снизить производительность OLTP-системы;
-	при помощи мультиплексирования предотвращается загруженность файлов операциями чтения/записи и обеспечивается непрерывность подачи данных для записи на ленточный носитель.
•	Для повышения скорости работы и надежности при взаимодействии инструментов управления носителем сторонних фирм с устройствами для хранения данных используется специальный программный интерфейс приложения (API).
•	При использовании пользовательских методов управления необходимо хранить информацию обо всех файлах баз данных и бэкапах. Когда требуется восстановление, администратор должен найти местоположение бэкапов, скопировать их в правильное место с использованием команд ОС и выбрать применяемые журналы. RMAN выполняет эти задачи автоматически. Это преимущество в особенности важно при использовании файлов, сопровождаемых Oracle (Oracle Managed Files) и флэш-области восстановления (Flash Recovery Area).
Примечание
He все из этих свойств рассматриваются в данном курсе. Дополнительную информацию о:
•	RMAN и его возможностях см. в документах Oracle Database Backup and Recovery Basics и Oracle Database Backup and Recovery Advanced User's Guides
•	синтаксисе команд RMAN см. в руководстве Oracle Database Recovery' Manager Reference.
Oracle Database 10g: Administration Workshop I! 2-5
Компоненты утилиты Recovery Manager
Copyright © 2006, Oracle. All rights reserved.
Ao_e
Компоненты утилиты Recovery Manager
Исполняемый модуль (Recovery Manager Executable)
Исполняемый модуль RMAN предоставляет интерфейс командной строки утилиты Recovery Manager, доступный с помощью клиентского приложения RMAN. Recovery Manager интерпретирует команды пользователя и запускает соответствующие серверные сеансы для выполнения требуемых задач.
Enterprise Manager
Enterprise Manager Database Control Console обеспечивают графический пользовательский интерфейс к большинству наиболее используемых возможностей RMAN.
Серверные сеансы (Server Sessions)
Серверные процессы (UNIX) или нити (Windows), вызываемые RMAN, устанавливают соединение с базой данных назначения для выполнения функций резервирования, копирования из бэкапа и восстановления через интерфейс PL/SQL. Эти сеансы пишут или читают файлы с диска, ленты, флэш-области восстановления (стандартного места хранения файлов, имеющих отношение к восстановлению базы данных).
Oracle Database 10g: Administration Workshop II 2-6
Компоненты утилиты Recovery Manager (продолжение)
База данных назначения (Target Database)
База данных, в которой выполняются операции резервирования и восстановления. Информация о физической структуре базы данных хранится в управляющем файле. Серверные процессы (сеансы), вызываемые из RMAN, используют такие сведения, как размер и местонахождение файлов данных, оперативные и архивные журнальные файлы, управляющие файлы, для выполнения операций резервирования и восстановления
Вспомогательная база данных (Auxiliary Database)
Вспомогательная база данных используется при создании дублирующей БД {duplicate database) или выполнении восстановления табличного пространства на моменто-прошлом (tablespacepoint-in~time recovery TSP1TR).
Вспомогательная база данных может размещаться на том же самом хосте, что и родительская БД или на другом хосте. Дополнительные сведения о вспомогательной базе данных см. в документе Oracle Database Backup and Recovery Advanced User's Guide
Канал (Channel)
Канал отображает поток данных, связанный с устройством определенного типа. Для выполнения операций резервирования и восстановления RMAN требуется канал связи с базой данных назначения. Канал устанавливает соединение путем создания сеанса в целевой базе данных. Этот сеанс может взаимодействовать с файловой системой хоста (при обмене данными с дисками) и с библиотекой управления носителем (при обмене данными с лентами). Канал может быть выделен до начала выполнения команд резервирования и восстановления вручную или предварительно сконфигурирован с использованием возможности автоматического выделения канала.
Репозиторий RMAN (RMAN Repository)
RMAN сопровождает метаданные о целевой базе данных (target database) и выполненных в ней операциях резервирования и восстановления в своем репозитарии. В нем RMAN также содержит сведения о своих конфигурационных установках, структуре целевой БД, архивных журналах и всех файлах с резервами на дисках и лентах. Репозиторий RMAN всегда хранится в управляющем файле целевой БД.
Каталог восстановления (Recovery Catalog)
Репозиторий RMAN может дополнительно храниться в каталоге восстановления, который находится в отдельной базе данных Oracle.
Библиотека управления носителем (Media Management Library - MML)
Библиотека управления носителем используется RMAN при чтении и записи на ленточный накопитель. Для записи данных на ленту требуется дополнительное программное обеспечение, предоставляемое поставщиками систем носителей и памяти. Продукт Oracle Secure Backup также позволяет RMAN резервировать на ленту, но при этом не требуются инструментальные средства сторонних фирм.
Oracle Database 10g: Administration Workshop II 2-7
Шаги конфигурирования RMAN
1.	Выберите месторасположение репозитория: управляющий файл или каталог восстановления.
2.	Установите переменные базы данных и среды.
3.	Запустите RMAN и подсоединитесь к целевой базе данных, а также необязательно к каталогу восстановления баз данных.
4.	Сконфигурируйте настраиваемые параметры RMAN.
2-8 Copyright € 2006, Oracle. АН nghts reserved.
Oracle Database 10g: Administration Workshop II 2-8
Сравнение видов репозитория RMAN
Управляющий файл:
~ Упрощение администрирования
- Репозиторий по умолчанию
«
Каталог восстановления:
-	Копии данных управляющего файла
-	Пространство, позволяющее хранить больше информации
-	Может использоваться для обслуживания многих целевых БД
™ Можно хранить скрипты RMAN
Метаданные
Перечень резервных наборов
Перечень копий образов
Copyright © 2006, Oracle. All rights reserved.
Сравнение видов репозитория RMAN
Данные репозитория RMAN всегда хранятся в управляющем файле целевой базы данных. Такие данные также могут храниться в схеме отдельной базы данных, называемой каталогом восстановления.
Каталог восстановления (recover)’ catalog) предохраняет информацию о резервировании, сохраняя ее в отдельной базе данных, которая может оказаться полезной в случае потери управляющего файла. Каталог восстановления позволяет хранить дольше хронологические данные о резервных объектах, ч ем это позволяет делать репозиторий на основе управляющего файла. В одном каталоге восстановления можно хранить информацию о многих целевых базах данных. Кроме того, в нем можно хранить скрипты, содержащие последовательность команд RMAN для решения обычно возникающих задач резервирования. Хранить скрипты в централизованном каталоге восстановления может быть удобнее, чем использовать командные файлы.
Для небольших систем не рекомендуется использовать каталог восстановления, так как администрирование отдельной базы данных каталога восстановления может вызвать только одни дополнительные затраты.
Oracle Database 10g: Administration Workshop II 2-9
Сравнение видов репозитория RMAN (продолжение) Создание каталога восстановления
1. Создайте базу данных, которая будет использоваться в качестве
каталога восстановления. В качестве альтернативы для хранения каталога восстановления можно использовать уже существующую базу данных. Один каталог восстановления позволяет обслуживать несколько баз данных.
Поэтому можно выбрать вариант, при котором для обслуживания работ по резервированию и восстановлению всех баз данных создается один каталог восстановления.
2. В базе данных каталога восстановления создайте пользователя-владельца информации каталога восстановления. Например, пусть catdb - имя базы данных каталога, rcat_ts - имя табличного пространства, которое было создано для хранения данных каталога.
$ sqlplus sys/password@catdb as sysdba
SQL> CREATE USER man IDENTIFIED BY cat
2	TEMPORARY TABLESPACE temp
3	DEFAULT TABLESPACE rcat_ts
4	QUOTA UNLIMITED ON rcat_ts;
SQL> GRANT UNLIMITED ON rcatjts TO man;
3.	Предоставьте роль RECOVERY JCATALOG__OWNER владельцу каталога. Эта роль содержит все привилегии, необходимые для сопровождения и запроса информации из каталога восстановления.
GRANT RECOVERY JSATALOGJDWNER ТО man;
4.	Запустите RMAN и подсоединитесь как владелец каталога.
$ man catalog rman/cat@catdb
RMAN> CREATE CATALOG TABLESPACE rcat_ts;
5.	Подсоединитесь в RMAN к целевой базе данных и зарегистрируйте ее в новом созданном каталоге восстановления.
$ man target sys/oracle@orcl catalog man/cat@catdb
RMAN> register database;
Примечание: базу данных каталога восстановления следует резервировать.
Oracle Database Юр: Administration Workshop li 2-10
Месторасположения бэкапов
•	Каталог на диске
•	Устройство хранения данных на магнитной ленте (необходима библиотека управления носителем)
- Обычно используется при аварийном восстановлении, когда потеряны бэкапы на диске.
• Флэш-область восстановления
-	Отдельная дисковая область, используемая для резервирования и восстановления, а также для отката базы данных назад.
-	Необходимо задать ее месторасположение и размер.
-	Имена создаваемым файлам присваиваются автоматически как файлам, сопровождаемым Oracle.
-	Файлы хранятся с учетом политики удержания и автоматически удаляются при необходимости.
2-11 Copyright © 2006, Oracle. All rights reserved.
Месторасположения бэкапов
При резервировании файлы могут записываться в указанный каталог на диске, на ленту с использованием библиотеки управления носителем (Media Management Library) или во флэш-область восстановления. Получаемые при резервировании бэкапы размещаются на дисковом носителе данных, если указывается катало на диске или флэш-область восстановления . Обычно такие резервные объекты регулярно переносятся в автономном режиме на ленту через интерфейс управления носителем, чтобы освободить место на диске. Любой задаваемый в качестве места расположения бэкапов каталог на диске должен уже существовать.
При использовании флэш-области восстановления упрощается решение многих задач резервирования и восстановления. База данных Oracle автоматически присваивает имена файлам, а также удаляет устаревшие (obsolete) файлы при нехватке пространства.
Oracle Database 10g: Administration Workshop II 2-11
Управление носителем
Copyright © 2006, Grade. All tights reserved.
Управление носителем
Для работы с запоминающими устройствами на ленте утилите RMAN требуется либо Oracle Secure Backup, либо программа управления носителем {media manager). Oracle Secure Backup подробно рассматривается в приложении F.
Программа управления носителем { media manager)- это утилита, которая загружает, помечает и разгружает носители с последовательным доступом (накопители на магнитной ленте) в процессе выполнения резервирования, копирования из бэкапа и восстановления. Сервер Oracle вызывает программы из библиотеки управления носителем (media management library - MML) для резервирования и восстановления файлов данных с накопителя.
Некоторые средства управления носителем полностью управляют перемещением информации между файлами данных Oracle и устройствами для резервирования. Другие средства, которые используют высокоскоростное соединение между памятью и подсистемами управления носителем, могут снизить нагрузку на основной сервер базы данных при выполнении резервирования.
Отметим, что серверу Oracle нет необходимости устанавливать соединение с программным обеспечением библиотеки управления носителем (MML) для выполнения резервирования на диск.
Oracle Database 10g: Administration Workshop II 2-12
Управление носителем (продолжение)
В рамках программы Oracle по поддержке решений резервирования (Oracle Backup Solutions Program-BSP) предоставляется ряд средств управления носителем, которые удовлетворяют спецификациям MML фирмы Oracle. Программное обеспечение, совместимое с интерфейсом MML, позволяет сеансу сервера Oracle обратиться к программе управления носителем для выполнения резервирования и восстановления. Проверьте вместе с производителем носителя, совместима ли версия программного обеспечения управления носителем с Oracle BSP.
Перед тем, как начать использовать RMAN вместе с программой управления носителем, эту программу необходимо установить и убедиться, что RMAN может с ней взаимодействовать,Указания по тому, как это сделать, должны быть в документации производителя программного обеспечения управления носителем.
При установке обычно выполняются следующие основные шаги:
1.	Установка и конфигурирование программного обеспечения управления носителем на узле назначения или в производственной сети. Никакой интеграции с RMAN на этом шаге не требуется.
2.	Проверка выполнения резервирования файлов операционной системы без RMAN на узле базы данных назначения. Этот шаг облегчает последующий поиск неисправностей. Найдите в документации на ПО управления носителем, как выполнить такое резервирование файлов.
3.	Приобретение у третьей фирмы и установка модуля управления носителем для интеграции с сервером Oracle. Этот модуль должен содержать библиотеку, загружаемую Oracle для доступа к программе управления носителем.
Резервирование и восстановление с использованием программы управления носителем
Следующий командный файл утилиты Recovery Manager выполняет резервирование на ленту с использованием программы управления носителем: run {
# Allocating a channel of type ’sbt? for serial device ALLOCATE CHANNEL chi DEVICE TYPE sbt;
BACKUP DATAFILE 3;
}
При выполнении этой команды утилита Recovery Manager посылает запрос сеансу сервера Oracle, который производит резервирование. Сеанс сервера Oracle определяет выходной канал как устройство управления носителем и запрашивает программу управления носителем, чтобы загрузить ленту и произвести запись.
Программа управления носителем помечает ленту и отслеживает имена файлов, хранимых на каждой ленте.
Операции восстановления также производятся с помощью программы управления носителем. В процессе восстановления файла выполняются следующие шаги:
1.	Сервер Oracle запрашивает восстановление определенного файла.
2.	Программа управления носителем находит ленту, содержащую файл, и читает ее.
3.	Программа управления передает информацию сеансу сервера Oracle.
4.	Сеанс сервера Oracle записывает файл на диск.
Oracle Database 10g: Administration Workshop II 2-13
Использовании флэш-области восстановления вместе с RMAN
Флэш-области восстановления может быть сконфигурирована и использоваться утилитой RMAN.
Ik
Область базы данных
Процесс резервирования утилиты RMAN
Флэш-область восстановления
DB_RECOVERY_FILE_DEST = ’/uOl/oracle/fra'
DB_RECOVERY_FILE_DEST_SIZE » 2G
Copyright © 2006, Oracle. All rights reserved.
Использовании флэш-области восстановления вместе с RMAN
Операции резервирования можно выполнять без флэш-области восстановления (flash recovery area). Однако ее использование упрощает управление дисковым пространством и файлами, имеющими отношение к резервированию и восстановлению. Так не требуется задавать имена для файлов бэкапов, поскольку RMAN генерирует эти имена автоматически в соответствие с шаблонами файлов, сопровождаемых сервером Oracle (Oracle Managed Files - OMF).
Каждый раз, когда RMAN создает файл во флэш-области восстановления, Oracle изменяет список файлов, хранить которые на диске больше необязательно. Если файл необходимо записать во флэш-область восстановления и в ней нет доступного пространства, Oracle удаляет файл из списка устаревших (obsolete) файлов и заносит уведомление об этом в сигнальный файл.
В ситуации, когда во флэш-области нет свободного пространства и нет устаревших файлов, которые можно удалить, выдается предупреждающее сообщение. Для разрешения этой проблемы можно добавить дисковое пространство, зарезервировать файлы устройстве третьего уровня (tertiary device), удалить с помощью RMAN файлы из флэш-области восстановления или изменить политику удержания RMAN. По умолчанию RMAN автоматически помещает резервируемые файлы во флэш-область восстановления, если установлен параметр инициализации DB_RECOVERY FILE _ DEST. Размер флэш-области восстановления задается параметром инициализации DB RECOVERY___FILEJDEST SIZE.
Oracle Database 10g: Administration Workshop II 2-14
Использовании флэш-области восстановления вместе с RMAN (продолжение)
Примечание. Флэш-область восстановления может быть размещена на ASM-устройстве (Automated Storage Management), Флэш-область восстановления может также располагаться в кластерном файловом хранилище (Cluster File Storage ~~ CFS) Oracle или в любой локальной системе хранения.
$
Oracle Database 10g: Administration Workshop II 2-15
2-16
Copyright © 2066, Oracle. AH rights reserved.
Мониторинг флэш-области восстановления с помощью ЕМ
Метрики флэш-области восстановления можно просмотреть в реальном времени, используя ЕМ Database Control Console.
Прокрутите вниз страницу Maintenance и выберите в секции Related links ссылку All Metrics. Просмотрите список и щелкните на Recovery Area.
В результате будет выведена страница с метрикой Recovery Area Free Space (%), которая отражает процент свободного пространства в области восстановления . Щелкните на значение метрики в процентах, чтобы просмотреть график использования области восстановления.
Oracle Database 10g: Administration Workshop II 2-16
Использование пространства во флэш-области восстановления
*	Задайте для политики удержания минимальное значение, подходящее для вашей базы данных
•	Регулярно резервируйте архивные журналы и удаляйте архивные журнальные файлы после завершения резервирования
•	Используйте команды RMAN REPORT OBSOLETE и delete obsolete для удаления ненужных резервных наборов и копий файлов
2-17	_________Copyright © 2006, Oracle. АН rights reserved.
Использование пространства во флэш-области восстановления
Во избежание превышения ограничения на размер области восстановления, не следует хранить в ней файлы, сопровождаемые пользователем. При необходимости, когда это возможно, выполняйте следующие действия:
•	удаляйте ненужные файлы из области восстановления с помощью RMAN;
•	чаще резервируйте область восстановления с использованием RMAN:
•	измените политику удержания RMAN так, чтобы резервные объекты хранились меньший период времени:
*	измените политику удаления архивных журналов при использовании RMAN;
•	добавьте дисковое пространство и увеличьте значение параметра инициализации базы данных DB__RECOVERY__FILE_DEST__SIZE, если часто происходят ситуации, когда не хватает места во флэш-области восстановления.
Например, для резервирования архивных журналов в области восстановления и последующего удаления архивных журнальных файлов используйте следующую команду RMAN:
BACKUP ARCHIVELOG ALL DELETE ALL INPUT;
При использовании утилит резервирования, отличных от RMAN, приходится удалять файлы из флэш-области восстановления с помощью RMAN. После завершения резервирования архивных журнальных файлов и удаления их с диска выполните команды RMAN CROSSCHECK и DELETE. В результате удаленные архивные журналы перестают учитываться при подсчете занятого пространства флэш-области восстановления. Такие действия следует выполнять регулярно после каждого такого резервирования.
Oracle Database 10g: Administration Workshop II 2-17
V$ FLASH__RECOVERY_AREA__USAGE
Для просмотра данных об использовании дискового пространства флэш-области восстановления можно выполнить запрос к представлению v$flash_recovery_area__usage.
......................................~“
SQL> SBLECT £ile_typez
> peraentjspac^jised AS used/
3 peroent_^ace_^eclaiinable AS reci^mble, < nwHber_of_£iX^ |^iggmt>er
5 ВВСШ vSflash recovery area usage ;
FILE TYPE	USED RECIAIMABLE FILES

2-18	Copyright © 2006, Oracle. All rights reserved.
Oracle Database 10g: Administration Workshop II 2«18
V$FLASH_RECOVERY_AREA_USAGE
Выходные данные запроса к представлению
V$FLASH_RECOVERY_AREA_USAGE
	№			-7 ъ-.	-
FILETYPE-	USED REfLAIMABLE		FILif
	$		
CWTROLFIO	0	Л	
OWLIBELOG	0	й	i
ARCHXVEWG	69.13	0	591
BACKUPPIECE		q	0
ШйЖОРУ	0	0	Ю
BUSHBACKLOG		0	37

|2-1Q Copyright © 2006, Oracle. All rights reserved.
V$FLASH_RECOVERY_AREA_USAGE
Столбцы данного представления:
•	FILE_TYPE показывает тип файла (CONTROLFILE. ONLINELOG, ARCHIVELOG, BACKUPPIECE, IMAGECOPY, FLASHBACKLOG).
•	PERCENT_SPACE_USED - процент пространства флэш-области восстановления, занимаемого файлами данного типа.
PERCENT^SPACE^RECLAIMABLE - процент пространства флэш-области восстановления, используемого в настоящее время для хранения таких файлов данного типа, которые можно удалить, так как они устарели (obsolete), избыточны (redundant) или были зарезервированы на третичные устройства (tertiary device).
•	NUMBER^OFJFILES - количество файлов указанного типа.
Oracle Database 10g: Administration Workshop II 2-19
Резервирование флэш-области восстановления
Database Instance: 0rol.Qracfe.c0rr. > Schedule Backup
Schedule Backup
Customized Backup
Select the objects) you want to back up. \ Schedule Cusiom^eu Backup J
C Whole Database
(he folh~?nq ш&фхез 3$% sxaucfco noru г --tiete u?Ui»se
aaekup STAGiHu
О Tablespaces
C Datafiles
Г Archivelogs
f ^ Aji Recovery Flies on Disk ]
that not
sHady basked up to taps
ТП П 1,1   ’ Г -AsSfb' ;	 ' '.‘"’""’'’""’"'J 	Т*^!-ЯИЩ83МШШМИЯИИИИИИИЯВ!ЯВИ!!!!!??
RMAN> BMJWP RECOVER FILES;
-.. .. ...'.'.. . • '/= ...............................
2-20
Copyright © 2006, Oracle. All rights reserved.
Резервирование флэш-области восстановления
Поскольку флэш-область восстановления содержит важные данные, следует регулярно резервировать, находящиеся в ней файлы. Чтобы сконфигурировать это, перейдите на страницу Maintenance в секцию Backup/Recovery и щелкните на ссылке Schedule Backup. Выберите значение Customized в выпадающем списке поля Backup Strategy, а затем отметьте опцию All Recovery Files on Disk. Для резервирования флэш-области восстановления можно также использовать команду RMAN BACKUP.
♦ RMAN> BACKUP RECOVERY AREA;
Эта команда резервирует все файлы из флэш-области восстановления, которые были созданы в текущем ее местоположении и не были ранее зарезервированы. Резервируются файлы следующих видов: полные и инкрементальные резервные наборы, автобэкапы управляющих файлов, архивные журналы и копии файлов данных. Не резервируются остальные файлы: журналы флэшбэка, инкрементальные битовые матрицы, текущий управляющий файл и оперативные журнальные файлы.
• RMAN> BACKUP RECOVERY FILES;
Эта команда резервирует все файлы, имеющие отношение к восстановлению, которые ранее не резервировались. Резервируются файлы следующих видов: полные и инкрементальные резервные наборы, автобэкапы управляющих файлов, архивные журналы и копии файлов данных.
Oracle Database 10g: Administration Workshop II 2-20
Преимущества использования флэш-
области восстановления
•	Упрощение размещения резервных объектов базы данных.
•	Автоматическое управление дисковым пространством, выделяемым для файлов, используемым при восстановлении.
•	Не требуется вносить изменения в существующие скрипты.
•	Размещение бэкапов базы данных, архивных журналов и бэкапов управляющего файла во флэш-области восстановления.
Преимущества использования флэш-области восстановления
Использование флэш-области восстановления для всех файлов, связанных с восстановлением, упрощает текущее администрирование базы данных и основывается на параметрах инициализации DB__RECOVERY_FILE__DEST__SIZE и DB___RECOVERY__FILE_DEST. Корпорация Oracle рекомендует использовать флэш-область восстановления для всех файлов, имеющих отношение к восстановлению.
Oracle Database 10g: Administration Workshop II 2-21
Задание параметров, влияющих на выполнение RMAN
• Параметры инициализации базы данных:
-	CONTROL_FILE__RECORD_KEEP__TIME
-	DB__RECOVERY__FILE_DEST И
DB_RECOVERYJFILEJ3EST_JSIZE(еСЛИ
используется флэш-область восстановления)
• Переменные окружения:
-	NLS_DATE_FORMAT
-	NLS_LANG
2-22 Copyright О 2006, Oracle, All rights reserved.
Задание параметров, влияющих на выполнение RMAH
RMAN хранит информацию о целевой БД и операциях резервирования и восстановления в своем репозитарии. Размер хранимой информации может расти в зависимости от частоты резервирования, числа архивных журнальных файлов и периода удержания записей RMAN.
Параметр CONTROL__FILE__RECORD_KEEP__TIME определяет минимальный период (в днях), в течение которого информация утилиты RMAN хранится в управляющем файле до перезаписи. Небольшое значение параметра приводит к частому переписыванию информации, замедляя таким образом рост управляющего файла. При использовании каталога восстановления следует выбирать небольшие значения параметра.
Этот параметр воздействует только на записи управляющего файла, которые используются повторно в круговом режиме. К ним, например, относятся записи об архивных журналах и о различных резервных объектах. Параметр не влияет на записи о файлах данных, табличных пространствах и потоках оперативных журналов, которые никогда повторно не используются, если только, например, соответствующий файл не удаляется из табличного пространства.
По умолчанию величина параметра CONTROL__FILE RECORD__KEEP_ TIME равна 7 дням.
Oracle Database 10g: Administration Workshop II 2-22
Задание параметров, влияющих на выполнение RMAN (продолжение) Когда определена флэш-область восстановления, в нее по умолчанию пишутся файлы, получаемые в результате операции резервирования. Размер и местоположение флэш-области восстановления задаются с помощью параметров инициализации DB__RECOVERY___FILEWDEST и DB_RECOVERY_FILE_DEST_SIZE. Можно также задать политику удержания, которая определяет, когда
резервные объекты становятся ненужными. В случае задания такой политики RMAN управляет хранением резервных объектов и удаляет устаревшие бэкапы на диске, а также уже скопированные на ленту, когда требуется пространство. Однако при этом RMAN сохраняет на диске столько зарезервированных объектов, сколько позволяет пространство.	%
Таким образом минимизируется объем требуемых операций restore при выполнении действий по извлечению из бэкапа (restore), хранимому на ленте, и восстановлению (recovery). Размер флэш-области восстановления можно в любой момент изменить, используя динамический параметр инициализации DB__RECOVERY___F I LE__DE ST.
Переменные окружения NLS_JDATE__FORMAT и NLS _LANG определяют формат временных параметров таких команд RMAN, как RESTORE, RECOVER и REPORT.
Когда база данных не смонтирована, по умолчанию предполагается, что ее кодировка US7ASCI1. Если кодировка отличается от предполагаемой по умолчанию, тогда задайте соответствующую переменную окружения NLS__LARG. Например, если кодировка CL8MSWIN1251, установите следующее значение для NLS__LANG:
NLS_LANG=AMERICAN__AMERICA. CL8MSWIN12 51
Oracle Database 10g: Administration Workshop il 2-23
Использование RMAN
•	Ресурсы: разделяемая память, дополнительные процессы
•	Привилегии пользователей
-	База данных: sysdba
-	Операционная система: доступ к устройствам
• Удаленные операции
-	Создание файла паролей
-	Наличие резервной копии файла паролей
2-24 Copyright © 2006, Oracle. Ail rights reserved.
Использование RMAN
Перед использованием утилиты Recovery Manager должны быть рассмотрены следующие вопросы:
•	Разделяемые ресурсы системы. Большинство операций RMAN выполняется с помощью серверных процессов Oracle. Такие операции могут выполняться параллельно, увеличивая пропускную способность. Это приводи! к тому, что параметр инициализации PROCESSES должен иметь достаточно большое значение. С точки зрения операционной системы это означает, что разделяемая память и семафоры должны быть адекватно установлены.
*	Множество пользователей, выполняющих привилегированные операции. Необходимо определить таких пользователей с соответствующими привилегиями, установленными на уровне базы данных Oracle и ОС. Например, чтобы запустить или остановить базу данных пользователю нужна привилегия SYSDBA.
•	Удаленные операции. Необходимо использовать файл паролей, чтобы с удаленной машины установить соединение с базой данных назначения через Oracle Net и выполнить такие привилегированные операции, как запуск и остановка БД..
•	Использование каталога восстановления. Когда используется каталог восстановления, RMAN может выполнять больший набор функций по автоматическому резервированию и восстановлению. Использование каталога восстановления требует увеличения пространства и вызывает дополнительные затраты по его сопровождению. Необходимо решить, будете ли вы использовать отдельную базу для хранения каталога восстановления многих баз данных назначения.
Oracle Database 10g: Administration Workshop II 2-24
Виды соединений RMAN с базами данных
Используя утилиту Recovery Manager, можно соединиться со следующими видами баз данных :
*	База данных назначения; администратор для соединения с БД назначения должен иметь привилегию SYS DBA. Эта привилегия необходима для успешного соединения. При этом происходит подсоединение к экземпляру целевой БД, в которой необходимо выполнить обычные операции RMAN.
•	База данных каталога восстановления; это необязательная база данных, которая конфигурируется для репозитория RMAN. Соединение с базой данных каталога восстановления устанавливается для получения хранимой в нем информации, например, сведений о резервах или хранимых скриптах.
•	Вспомогательная база данных. Такая БД может быть:
-	создана по команде RMAN DUPLICATE;
-	временной базой данных, используемой при восстановлении табличного пространства на момент времени в прошлом (tablespace point-in-time recovery -TSPITR);
-	резервной базой данных, представляющей собой копию производственной базы данных и используемой при выходе из строя основной БД.
Oracle Database 10g: Administration Workshop II 2-25
Запуск RMAN
• Локальный запуск RMAN
UNIX: $ ORACLE__SID=DB01; export ORACLEjSID f rman target /
....................................       ..тЖ.й.й.шГ..-	....
Windows NT: C:\> set ORACLE_SID=DB01 C: \> titan target /
- r:	........ „ ,	.- -
* Удаленный запуск RMAN
rman garget sys/password@DB01 ”
....	..rorcwMMKMWMWBWnnnnnniwiinnnniifflyuwitw^ii^nWrmuwuwuuijwwrc..	.....
2-26 Copyright © 2006, Oracle. All rights reserved
Соединение с базой данных назначения без использования каталога восстановления
Локальное соединение
Для локального соединения с RMAN нужно ввести в командной строке ОС:
в UNIX: $ ORACLE__SID=DB01; export ORACLEJSID
$ rman target /
в Windows:©: \> SET ORACLE__SID=DB01
C:\> rman target /
Если в команде старта не указываются имя и пароль, а только косая черта (slash), происходит соединение под пользователем SYS с аутентификацией на уровне ОС.
Можно также указать необязательное ключевое слово NOCATALOG: $ rman target / nocatalog
NOCATALOG - режим, по умолчанию, означающий использование RMAN без каталога восстановления.
Удаленное соединение
Чтобы соединиться с другого сервера, используйте псевдоним имени службы целевой базы данных в Oracle Net:
$ rman target sys/target_pwd@DB01
Oracle Database 10g: Administration Workshop II 2-26
Дополнительные параметры при вызове RMAN из командной строки
•	Запись вывода RMAN в файл журнала:
$ rman TARGET"sys/praele
'I&XOG $H0ME/oradata’/u03/rman. log APPEND
•	Выполнение командного файла при вызове RMAN:
$ rman TARGES' wys/oracie .	’
t3MDFILE=$H0№:/scripti?/my rnian script,rcv
•	Установление соединений с базами данных при запуске RMAN :
$ man TARGET' SYS/sys_pwd@Orel CATALOG
^man/rmangreat	'  	.....„y. 
Параметры, используемые при вызове RMAN из командной строки
Параметр LOG = имя_файла задает файл, в который RMAN будет писать свои выходные данные. Если этот параметр не указан, RMAN пишет свои сообщения в стандартный вывод.
Ключевое слово APPEND определяет, что новые выходные данные должны быть добавлены в файл журнала сообщений.
Параметр CMDFILE = имя__файла может быть использован для запуска файла, содержащего команды RMAN. RMAN завершает свою работу после выполнения командного файла.
Любое имя файла должно быть заключено в кавычки, если первый символ имени файла отличается от алфавитного символа.
Следующие варианты соединения можно использовать в RMAN:
-	AUXILIARY; задает строку соединения к вспомогательной базе данных;
•	CATALOG; задает строку соединения к БД, содержащей каталог восстановления;
•	NOCATALOG; показывает, что RMAN используется без каталога восстановления.
•	TARGET; задает строку соединения к целевой базе данных.
Когда в строке вызова указывается фраза SCRIPT, RMAN после подсоединения к целевой БД (фраза TARGET) и каталогу восстановления (фраза CATALOG) выполняет в целевой БД скрипт, хранимый в каталоге восстановления.
Oracle Database 10g: Administration Workshop II 2-27
Конфигурирование настроек RMAN
•	В RMAN предварительно заданы настройки конфигурации по умолчанию
•	Использование команды configure:
-	Конфигурирование автоматических каналов
-	Определение политики удержания резервов
-	Определение количества создаваемых резервных копий
-	Задание типа резервирования по умолчанию
(BACKUPSET ИЛИ COPY)
-	Ограничение на размеры резервных наборов
-	Исключение табличного пространства из процедуры резервирования
-	Включение и выключение оптимизации при резервировании
-	Конфигурирование автоматического резервирования управляющего файла
2-28 Copyright © 2006, Oracle. All rights reserved.
Конфигурирование настроек RMAN
Для упрощения повседневного резервирования и восстановления с использованием RMAN можно задать набор настроек для каждой целевой базы данных. Такие параметры управляют многими характеристиками операций утилиты RMAN, выполняемыми с целевой базой данных. Можно запомнить в репозитарии (управляющем файле или каталоге восстановления) RMAN устойчивые конфигурационные установки, например, параметры каналов, уровень параллелизма и тип канала по умолчанию.
Для таких параметров есть значения по умолчанию, что позволяет немедленно использовать их при работе утилиты RMAN. Однако более совершенная стратегия резервирования и восстановления может потребовать изменить эти установки. Команда CONFIGURE позволяет задать устойчивые конфигурационные параметры, действующие при выполнении операций RMAN по резервированию, копированию из бэкапа, дублированию и сопровождению. Эти установки доступны в любом сеансе RMAN, пока конфигурация не будет сброшена
(С LEAR) или изменен а.
Oracle Database 10g: Administration Workshop II 2-23
Конфигурирование настроек RMAN с
помощью ЕМ ______________________________________________________________
Васку p/R^ccvery Settings
Backup Settings	—
Device Backup Set fifcy	ftecwery.CqtatogSgtthas 
Maximum Backup Piece (File) r——y——।
Size i I№Z1
Speafy a value to resthcx th? же & зъх-batbjj,- же
Tape Settings	^_—_
The following parameter s require additional configuration on different media pools
Copies of Datafile Backups p fjpwjfe th? пда» of	cordes for
delate yavhips.
Copies of Archivelog Backups fF"
Speedy th* * го^кчг of	cop-%3 кч
erchp.vfoq bstkup?.
Host Credentials
To save the backup settings, supply operating system login credentials tc access the target database.
* Username |~	~"
* Password Y'"
V Save as Preferred Credential
(	2-29
Copyright © 2006, Oracle. Ail rights reserved.
Конфигурирование настроек RMAN с помощью EM
Чтобы задать параметры резервирования для экземпляра, можно воспользоваться Oracle Enterprise Manager. Для этого выберите на странице Maintenance в области Backup/Recovery ссылку Backup Settings.
Страница Backup Settings имеет три закладки с параметрами: Device, Backup Set и Policy.
• На странице Device можно задать конфигурационные установки для дисков и лент, включая параметры библиотеки управления носителем (MML).
• На странице Backup Set (показана на слайде) указываются параметры резервных наборов, а также имя и пароль в ОС (host credentials).
• На странице Policy до начала выполнения операций резервирования задаются различные параметры политики резервирования (backup policy) и политики удержания (retention policy), например, автоматическое резервирование управляющего файла и файла серверных параметров при каждом резервировании и изменении структуры БД ( automatically backing up the control file and SPFILE ...). На этой странице можно также сконфигурировать поддержку отслеживания измененных блоков, которая обеспечивает более быстрое инкрементальное резервирование (Enable block change tracking for faster incremental backups).
Примечание: такие измененные параметры применяются при выполнении любой операции резервирования, в которой эти установки явно не переопределяются.
Oracle Database 10g: Administration Workshop II 2-29
Автоматическое резервирование управляющего файла
...........
RMAN> CONFIGURE CONTROLFILE AOTOBACKUP ON;
Backup Settings
Device Backup Set | Policy I
Backup Policy
P Automatically backup the control file and server parameter file (SPFILE) with every backup and database structural change
Autobackup Disk Location
A-- exists^ €sr«£to»y <» migrc-цз r=&T:& vhere the control tile and 6^ ver p^^fieter file be b3U.f;d :.-p ;f you do r^-t spsc-fy a location, ths fife# be h?f.r.?U up to th1 feih receive-у atea loe-stfori
Oracle рекомендует включать автоматическое резервирование управляющего файла.
2-30
ZZEZTT™""-'"......."Т„Д
Copyright © 2006, Oracle. All rights reserved.
Автоматическое резервирование управляющего файла
Во избежание потери копии текущего управляющего файла следует сконфигурировать в RMAN автоматическое резервирование управляющего файла. Оно выполняется независимо от резервирования этого файла, производимого командой backup.
При использовании RMAN в режиме NOCATALOG настоятельно рекомендуется сконфигурировать автоматическое резервирование управляющего файла. В противном случает при потере управляющего файла возможно не удастся восстановить базу данных.
Чтобы сконфигурировать автоматическое резервирование управляющего файла, измените политику резервирования базы данных, используя Enterprise Manager или следующую команду RMAN:
CONFIGURE CONTROLFILE AUTOBACKUP ON;
По умолчанию автоматическое резервирование управляющего файла выключено. После его включения RMAN автоматически резервирует управляющий файл и текущий файл серверных параметров (если он использовался при старте БД). Это происходит в одном из двух случаев:
• при успешном завершении команды резервирования и записи об этом сведений в репозитарий RMAN:
• после изменения структуры базы данных, что влечет за собой изменение содержимого управляющего файла и, следовательно, необходимость его резервирования.
Oracle Database 10g: Administration Workshop II 2-30
Автоматическое резервирование управляющего файла (продолжение)
Имя автоматически резервируемого управляющего файла формируется с использованием стандартного формата %F для всех типов устройств. Поэтому RMAN может угадать файл в месте расположения и восстановить его без репозитария. Переменная формата % F транслируется в строку с-1111111111-YYYYMMDD-QQ, где:
•	ШИШИ означает DBID;
*	YYYYMMDD - это временная метка дня генерации бэкапа;
•	QQ - последовательность шестнадцатеричных чисел, начиная с 0 0 до максимального значения FF.
Стандартный формат имени можно изменить по команде CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR &EVICE TYPE type TO 'строка В строке должна содержаться подстановочна! переменная %F и не могут присутствовать другие переменные подстановки. Пример:
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT
FOR DEVICE TYPE DISK TO ’ /u01/oradata/cf__ORCL_auto %Ff ;
Автоматически резервируемый управляющий файл сохраняется во флэш-области восстановления, когда она сконфигурирована.
При наличии автоматически зарезервированных управляющих файлов RMAN может восстановить базу данных, даже когда текущий управляющий файл, каталог восстановления и серверный файл параметров недоступны; Поскольку формат имен автоматических резервов хорошо известен, используя путь к каталогу, где хранятся автоматически зарезервированные копии управляющего файла, RMAN может найти и восстановить (restore) файл серверных параметров и управляющий файл.
Oracle Database 10g: Administration Workshop II 2-31
Политика удержания
• Политика удержания определяет, какие резервные объекты будут храниться и как долго.
* Существует два вида такой политики:
-	Окно восстановления; задает период, внутри которого должна быть предоставлена возможность восстановления на любой момент времени.
Л	Л „ л Текущий
Файл 2	Файл 1 момент
Бэкап файла 2 не	I_____________]_____I
должен удаляться	 У
7-дневное удержание
-	Избыточность; определяет фиксированное количество обязательно хранимых резервных объектов.
• Это взаимоисключающие друг друга политики, которые могут быть установлены по команде CONFIGURE.
|	2-32_______________________________Copyright © 2006, Oracle. All rights reserved.

Политика удержания
Политика удержания (retention policy) определяет, какие резервные объекты будут храниться и как долго. Значения атрибутов политики удержания задаются по команде CONFIGURE. Наилучший подход - задать период времени, в течение которого предоставляется возможность обнаружить логические ошибки и устранить пострадавшие объекты путем восстановления на момент времени непосредственно перед возникновением ошибки. Такой период времени называют окном восстановления (recovery window). В этом случает при определении политики удержания задается количество дней и для каждого файла данных должен существовать один его зарезервированный образ, удовлетворяющий условию:
SYSDATE - checkpoint__time >== recovery_window Например, пусть политика задана следующим образом:
RMAN> CONFIGURE RETENTION POLICY
2 TO RECOVERY WINDOW OF 7 DAYS;
Тогда для каждого файла данных должен быть содержащий его резервный объект, удовлетворяющий условию:
SYSDATE - (SELECT checkpoint^time
FROM V$BACKUFp DATAFILE WHERE file#- ...) >- 7
В примере на слайде для Файла 1 и Файла 2 есть бэкапы, позволяющие восстановиться в рамках 7-дневного периода удержания. Бэкап Файла 2 не должен удаляться в соответствие с заданной политикой удержания, так как он поддерживает восстановление на любой момент 7-дневного периода. В рамках периода удержания был зарезервирован только файл 1, для файла 2 следует получить новый бэкап.
Oracle Database 10g: Administration Workshop II 2-32
Политика удержания (продолжение)
Вы должны задавать период окна восстановления меньшим либо равным значению параметра CONTROL__FILE_RECORD__KEEР TIME, чтобы предотвратить перезапись в управляющем файле сведений о ранее полученных бэкапах.
Если требуется задать количество удерживаемых зарезервированных образов, политика удержания определяется через избыточность {redundancy). Тогда в репозитории должно быть зарегистрировано необходимое количество резервных объектов, а лишние объекты будут рассматриваться как устаревшие (obsolete). По умолчанию RETENTION POLICY сконфигурирована как REDUNDANCY 1. Это означает, что только один зарезервированный образ для каждого файла должен храниться в произвольный момент времени. Резервный объект считается устаревшим (obsolete), если большее, чем требуется число версий одного и того файла находится в резервных объектах.
Oracle Database 10g: Administration Workshop II 2-33
Сопровождение установленных параметров
•	Используйте команду show для вывода текущих установок:
RMAN> SHOW CONTROLFILE AUTOBACKUP FORMAT;
RMAH> SHOW EXCLUDE;
RMAN> SHOW ALL;'  V..и....................        -r.wm-^-nnr,
•	Используйте опцию clear для сброса и возврата к значениям по умолчанию для установочных параметров:
RMAN> CONFIGURE BACKUP OPTIMIZATION CLEAR RMAN> CONFIGURE MAXSETSIZE CLEAR
R|fiN> CONFIGURE DEFAULT DEVICE TYPE CLEAR
Copyright© 2006; Oracle. All rights reserved.
Сопровождение установленных параметров
Команда RMAN SHOW позволяет просмотреть конфигурационные установки. После подсоединения к целевой БД по команде SHOW ALL выводятсяб только те конфигурационные установки, которые имеют отношение к соответствующему узлу и базе данных.
Вернуться к значению параметра по умолчанию можно по команде CONFIGURE с опцией CLEAxR.
Oracle Database 10g: Administration Workshop II 2-34
Выделение канала
Канал представляет собой поток данных, направленный на устройство определенного типа. Канал должен быть выделен перед выполнением команд резервирования и восстановления. Для каждого выделенного канала устанавливается соединение из RMAN с экземпляром целевой базы данных и создается серверный процесс.
Каждой команде BACKUP, COPY, RESTORE или RECOVER, выполняемой в Recovery Manager, необходим хотя бы один канал. Тип выбранного накопителя определяет тип выделяемого канала. Число выделенных каналов задает максимальный уровень параллелизма при выполнении резервирования, копирования из резерва и восстановления.
Представление V$BACKUP__DEVICE показывает поддерживаемые типы устройств.
Oracle Database 10g: Administration Workshop II 2-35
Автоматическое и ручное выделение канала
•	Автоматический канал предварительно сконфигурирован и используется в последующих командах. Чтобы изменить тип устройства по умолчанию для автоматически выделяемого
канала, выполните:
RMAN> CONFIGURE DEFAULT DEVICE TYPE TO
Канал, выделенный вручную, переопределяет автоматически сконфигурированный канал. Такой канал действует в рамках блока команды run:
RMAN>RT> (
2> ALLOCATE CHANNEL cl DEVICE TYRE disk;
3> BACKUP DATAFILE ’/u01/oradata/user01. dbf' ;
2-36
Copyright © 2006, Oracle. All rights reserved.
Автоматическое и ручное выделение канала
Используйте команду CONFIGURE, чтобы предварительно сконфигурировать каналы для всех сеансов RMAN, использующих автоматическое выделение каналов. Автоматические каналы применяются только в таких работах RMAN, в которых каналы не выделяются вручную.
По умолчанию RMAN имеет предварительно сконфигурированный дисковый канал, что позволяет резервировать на диск без ручного конфигурирования. Поэтому, если администратор собирается выполнять резервирование на диск, а не на ленту с использованием программы управления носителем, он может сразу приступить к такой операции.
Команда ALLOCATE CHANNEL, заданная внутри команды RUN, и команда ALLOCATE CHANNEL FOR MAINTENANCE, введенная в командной строке после приглашения RMAN. используются для ручного выделения канала. Такое выделение канала переопределяет автоматическое выделение.
Каналы, выделенные вручную, могут использоваться для выполнения команд (например, CHANGE, DELETE и CROSSCHECK), которые удаляют или изменяют статус существующих резервных объектов. Однако, если вы сконфигурировали автоматические каналы с помощью команды CONFIGURE, тогда RMAN может ими воспользоваться для выполнения операций сопровождения и нет необходимости вручную конфигурировать такие каналы по команде ALLOCATE CHANNEL FOR MAINTENANCE. Кроме того, сконфигурированные таким образом вручную каналы сопровождения не могут быть использованы для некоторых других операций ввода-вывода, например, backup и сору.
Автоматическое и ручное выделение каналов - взаимно исключающие возможности. RMAN использует одну из них для каждой работы.
Oracle Database 10g: Administration Workshop II 2-36
Опции управления каналами
•	Конфигурирование параллелизма:
RMAN> CONFIGURE DEVICE TYPE DISK' PARALLELISM'’3;.
•	Установка максимального размера резервного фрагмента:
RMAN> CONFIGURE CHANNEL DEVICE TYPE DISK 2>MAXPIECESIZE 2G; ;_______________________
•	Задание формата генерируемых имен для создаваемых резервных файлов:
RMAN>RUN {
2> ALLOCATE CHANNEL dl DEVICE TYPE DISK
Опции управления каналами
Можно установить опции управления для выделяемых каналов, изменяющие их характеристики ио умолчанию. Следующие опции задаются при описании ручных и автоматически выделяемых каналов:
•	CONNECT; строка соединения с экземпляром целевой БД;
•	FORMAT; формат для генерации имен создаваемых при использовании канала резервных фрагментов;
•	MAXOPENFILES; максимальное число входных файлов, которые могут быть открыты командой backup в произвольный момент времени (по умолчанию 8)
>	MAXPIECESIZE; максимальный размер любого резервного фрагмента в данном канале, задается в байтах (по умолчанию), килобайтах (К), мегабайтах (М) или гигабайтах (G).
•	DURATION; задает в часах и минутах продолжительность выполнения работы по резервированию. Можно следующим образом уточнить продолжительность:
-	PARTIAL; не выдавать ошибок, если резервирование не завершено до конца заданного интервала времени.
-	MINIMIZE TIME; резервирование на предельной скорости, которая возможно позволит завершить операцию в заданном временном интервале.
Oracle Database 10g: Administration Workshop II 2-37
Опции управления каналами (продолжение)
~ MINIMIZE LOAD; RMAN осуществляет мониторинг скорости резервирования и автоматически снижает скорость обработки, когда обнаруживает, что операция резервирования будет завершена в заданный интервал времени. Эту опцию нельзя установить при записи на ленту, так как желательно выполнять запись на ленту на предельной скорости.
Для у каналов с типом устройства SBT или SBTJTAPE можно также указывать следующее:
• PARMS^nENV(„.) ”
установка переменных окружения для серверного сеанса, связанного с клиентом RMAN
« FARMS—” SBTJLIBRARY==”
задание местоположения библиотеки носителя, используемой каналом.
Для автоматических каналов можно также сконфигурировать уровень параллелизма по умолчанию и тип устройства (диск или ленту), одновременно определив вид создаваемых резервных объектов:ВACKUPSET, COMPRESSED BACKUPSET или COPY.
Oracle Database 10g: Administration Workshop II 2-38
Итоги
•	Использование управляющего файла и каталога восстановления в качестве репозитория RMAN
•	Изменение стандартных установок RMAN по команде configure
•	Использование флэш-офгасти восстановления для операций RMAN ,
•	Мониторинг флэш-области восстановления с помощью представлений v$ и Enterprise Manager
•	Реализация политики удержания либо в виде окна восстановления, либо на основе заданной избыточности
•	Ручное и автоматическое выделение канала
			"МИШИ		Ill
		Copyright © 2006, Oracle. All rights reserved.	
Oracle Database 10о- Administration Workshop II 2-39
Обзор практического занятия: конфигурирование RMAN
•	Использование утилиты Recovery Manager для соединения с целевой базой данных в действующем по умолчанию режиме NOCATALOG
•	Вывод текущих конфигурационных параметров RMAN
•	Конфигурирование автоматического резервирования управляющего файла
•	Изменение действующей для базы данных политики удержания

2-40
Copyright © 2006, Oracle. All rights reserved.
Oracle Database 10g: Administration Workshop II 2-40
Рассматриваемые вопросы
Команды BACKUP Отслеж.
изм. блоков, Инкр. обнов. LIST REPORT DELETE
•	Использование команды backup утилиты RMAN для создания резервных наборов и копий образов
•	Сопровождение резервных наборов и копий, полученных с помощью RMAN
I 3-2 Copyright © 2006, Oracle. All rights reserved.
Рассматриваемые вопросы
Recovery Manager (RMAN) - это компонент базы данных Oracle 10g, используемый для выполнения операций резервирования и восстановления. Enterprise Manager (ЕМ) предоставляет графический интерфейс к наиболее часто используемым функциональным возможностям утилиты RMAN.
На занятиях курса База данных Oracle: Администрирование! демонстрировались основные операции RMAN, выполняемые с помощью ЕМ Database Control Console.
Поэтому в этом уроке графический интерфейс к RMAN не будет подробно рассматриваться.
Oracle Database 10g: Administration Workshop II 3*2
Ввод команд утилиты Recovery Manager
•	Интерактивный клиент
-	Команды вводятся после строки приглашения RMAN
-	Используется при проведении анализа, получении отчетов или выполнении хранимых скриптов
• Пакетный режим *
-	Используется для автоматизации выполнения работ
-	При запуске RMAN указывается командный файл
-	Для получения протокола указывайте журнальный файл
• Интерфейс канала
-	Задается параметром pipe в командной строке
-	Используется для передачи данных между
сеансами или между RMAN и внешнимприложением
ORACLE
3-3 Copyright © 2006, Oracle. All rights reserved.
Ввод команд утилиты Recovery Manager
Recovery Manager имеет свой собственный язык команд. Существует несколько путей ввода команд RMAN с использованием интерфейса командной строки {command-line interface - CLI).
Для ввода команд в интерактивном режиме запустите RMAN. Затем вводите команды в интерфейсе командной строки. Пример:
$ rman TARGET sys/sys__pwd@dbl
RMAN> BACKUP DATABASE;
Можно записать команды в файл, а затем их выполнить, задав имя этого файла в строке вызова утилиты. Это принято называть пакетным режимом обработки {batch mode processing}. Файл должен содержать команды, которые обычно вводятся в командной строке. Пример выполнения командного файла:
С:\> rman TARGET SYS/sys jpwdGprodl @ ’ /oracle/backup__all__10 . rev ’
В пакетном режиме RMAN читает командный файл и пишет выходные сообщения в журнальный файл (если он задан). RMAN производит синтаксический разбор всего командного файла перед компиляцией и выполнением команд. В файле можно не указывать команду выхода exit, так как RMAN завершает работу при достижении конца файла.
Oracle Database 10g: Administration Workshop II 3-3
Ввод команд утилиты Recovery Manager (продолжение)
Интерфейс канала {pipe interface) утилиты RMAN предоставляет альтернативный метод ввода команд для утилиты RMAN и получения выходных данных этих команд. RMAN получает команды и передает выходные данные с помощью пакета PL/SQL DBMSJPIPE.
Интерфейс канала задается в командной строке с помощью параметра PIPE. RMAN использует два частных канала: один для получения команд, а другой для передачи выходных данных. Имена каналов получаются на основе значения параметра PIPE.
Пример:
% rman PIPE abc TARGET SYS/oracle@trgt
RMAN открывает два канала в целевой базе данных: ORA$RMAN__ABC__IN, используемый для приема команд утилитой RMAN, и ORA$RMAN_ABC JDUT - для передачи всех выходных результатов обратно из RMAN. Все сообщения входного и выходного каналов имеют тип VARCHAR2.
При использовании интерфейса канала RMAN не читает и не пишет данные, используя командный процессор (shell) операционной системы. Каналы можно применять для взаимодействия с другим сеансом или с ожидающим сообщения приложением, например программой в UNIX. С помощью этой возможности можно написать переносимый программный интерфейс к RMAN.
Дополнительные сведения об использовании каналов в RMAN см. в документе Oracle Database Backup and Recovery Advanced User s Guide.
Дополнительные сведения о пакете DBMS__PIPE и создании каналов в базе данных см. в документе PL/SQL Packages and Types Reference.
Oracle Database 10g: Administration Workshop II 3-4
Команды RMAN
Типы команд RMAN:
* Одиночные
-	Вводятся для выполнения только после приглашения RMAN *
-	Выполняются отдельно
-	Не могут присутствовать в виде подкоманд внутри команды run
• Работы
-	Должны заключаться в скобки команды RUN
-	Выполняются в рамках группы
• Выполняемые как одиночные или в рамках работы

3-5 Copyright €> 2006, Oracle. Ай rights reserved.|
Команды RMAN
В RMAN используются два типа команд: одиночные (stand-alone) и работы (job).
Одиночные вводятся после приглашения RMAN и обычно самодостаточные. Примеры одиночных команд:
•	CHANGE
•	CONNECT
•	CREATE CATALOG,RESYNC CATALOG
•	CREATE SCRIPT, DELETE SCRIPT, REPLACE SCRIPT
Команды работ обычно группируются и RMAN выполняет их внутри командного блока ("пт”) последовательно. Если какая-либо команда блока завершается с ошибкой, RMAN прекращает обработку и последующие команды блока не выполняются. Однако результаты уже выполненных команд остаются в силе и никаким образом не отменяются. В качестве примера команды, выполняемой только в рамках работы, можно привести ALLOCATE CHANNEL. Выделяемый при этом канал действует только при выполнении работы, поэтому такая команда не может быть одиночной.
Некоторые команды (например, BACKUP DATABASE) могут быть введены как одиночные после приглашения RMAN или же выполнены внутри блока, определяемого командой RUN. При вводе подобных одиночных команд RMAN выделяет необходимые каналы, используя возможность автоматического выделения каналов.
Пользователь может выполнять одиночные команды и работы в диалоговом или пакетном режимах.
Oracle Database 10g: Administration Workshop II 3-5
Пример работы
Команды работы приводятся внутри блока команды RUN:
RMAN> RUN {
2> BACKUP AS BACKUPSET
3> FORMAT '/u01/db01/backup/%d_%s_%p'
4> DURATION 10:00 MINIMIZE LOAD
5> (DATABASE)у
6> SQL 'alter system archive log current’ Sr
7> )
Copyright © 2006, Oracle. All rights reserved.
Пример работы
В отличие от одиночных команд команды работы должны заключаться в скобки команды RUN. Примеры команд работы:
•	ALLOCATE CHANNEL
•	SWITCH
RMAN выполняет команды внутри командного блока RUN последовательно. Если какая-либо команда блока завершается с ошибкой, RMAN прекращает обработку и последующие команды блока не выполняются.
Команда RUN определяет блок выполняемых команд. После завершения последней команды блока RUN Oracle освобождает все ресурсы на стороне сервера (например, буферы ввода-вывода или подчиненные процессы ввода-вывода), которые были выделены внутри блока.
Oracle Database 10g: Administration Workshop II 3-6
Обзор команд RMAN
Enterprise Manager
RESTORE
BACKUP
SPFILE
RECOVER FLASHBACK
RMAN
Хранимые скрипты
Архивные журналы
Управляющий файл
REPORT LIST
Сопровождение каталога CROSSCHECK DELETE...EXPIRED CHANGE


Copyright © 2006, Oracle. All rights reserved.
Обзор команд RMAN
Обычно при работе с целевой базой данных используются следующие команды RMAN: • BACKUP выполняется на целевой или резервной БД для резервирования базы данных, табличного пространства, файла данных (текущего или копии), управляющего файла (текущего или копии), SPFILE, архивных журналов и резервных наборов. Резервирование резервных наборов представляет собой простой способ их перемещения с диска на ленту.
• DU PL I САТЕ создает клон БД {clone database) или резервную БД {standby database) на основе резервных объектов (резервных наборов или копий образов) целевой БД.
• FLASHBACK выполняет операции отката БД {Flashback Database)* * которые возвращают базу данных к заданному целевому моменту времени (или непосредственно перед ним), SCN или номеру оперативного журнала.
• RECOVER для восстановления и RESTORE для копирования файлов из резервных наборов или копий образов.
RMAN предоставляет следующие команды получения отчетов:
LIST запрашивает каталог восстановления или управляющий файл для получения списков резервных наборов, копий архивных журналов и инкарнаций БД.
• RE PORT детально анализирует каталог восстановления или управляющий файл.
Oracle Database 10g: Administration Workshop II 3-7
Обзор команд RMAN (продолжение)
RMAN предоставляет набор команд для сопровождения каталога восстановления:
•	CROSSCHECK проверяет статус резервного набора или копии на диске или ленте.
-	DELETE выдает список резервных объектов и запрашивает подтверждение перед их удалением.
•	CHANGE используется для изменения статуса резервных объектов в репозитарии.
« LIST отражает результат выполнения команды CROSSCHECK и объекты, которые будут удалены по команде DELETE EXPIRED.
Oracle Database 10g: Administration Workshop II 3-8
Команда backup
Команды > BACKUP
Отслеж. изм блоков Инкр. обнов. LIST REPORT DELETE
RMAN> BACKUP AS BACKUPSET
'ЩЙ ’/BACKUP/df__%d_%s_%p.bus' 3> TABLESPACE hr data;
1 пространство! L  HRJDATA. l
OWACUE
3-9 Copyrigtit © 2006, Oracle. AH rights reserved.
Команда backup
Backup - это копия данных из вашей БД, используемая для воссоздания данных. В результате операции резервирования, выполняемой с использованием RMAN, могут быть созданы либо копии образов, либо резервные наборы. Копия образа {image сору} совпадает с точностью до бита с копией файла данных. RMAN может также хранить свои бэкапы в собственном формате, называемом резервным набором {backup set}. Резервный набор - это совокупность файлов, называемых резервными фрагментами {backup pieces), в каждом из которых могут быть зарезервированы один или несколько файлов БД.
При выполнении резервирования с использованием RMAN можно указать следующее.
•	Тип резервирования. Можно выполнять полное (FULL) или инкрементальное (INCREMENTAL) резервирование. RMAN автоматически резервирует управляющий файл и текущий файл серверных параметров после команд BACKUP, если включен режиме автоматического резервирования управляющего файла (CONFIGURE CONTROLFILE AUTOBACKUP ON).
•	Что резервировать. Можно задать такие правильные значения: DATABASE, DATAFILE, TABLESPACE, ARCHIVELOG, CURRENT CONTROLFILE, SPFILE.
•	Создавать ли копию образа (AS COPY) или резервный набор (AS BACKUP SET).
•	Формат имен файлов и местоположение резервных фрагментов (FORMAT).
•	Какие файлы данных или архивные журналы исключить из резервного набора (SKIP).
•	Максимальный размер резервного набора (MAXSETSIZE).
•	Удаление входных файлов после удачного создания резервного набора (DELETE INPUT).
Oracle Database 10g: Administration Workshop II 3-9
Ограничения резервирования
•	База данных должна быть смонтирована или открыта.
•	Не поддерживается резервирование оперативных журналов
•	Только “чистое” резервирование применимо в режиме NOARCHIVELOG
•	Резервирование “текущего” файла данных применимо только в режиме archivelog
	
	Copyright © 2006, Oracle. All rights reserved.
Ограничения резервирования
При выполнении резервирования с использованием утилиты Recovery Manager необходимо следующее:
*	Целевая база данных должна быть смонтирована для того, чтобы с ней можно было установить соединение из утилиты Recovery Manager.
•	Не поддерживается резервирование оперативных журналов.
•	Если целевая БД в режиме NO ARCHIVELOG, могут быть получены только “чистые” бэкапы табличных пространств и файлов данных (т.е. бэкапы табличных пространств ‘только для чтения’ или переведенных в автономное состояние с параметром NORMAL). Бэкап базы может быть получен только, если база данных вначале была чисто остановлена и затем запущена в режиме MOUNT.
*	Если целевая БД в режиме ARC HIVE LOG, только “текущие” файлы данных могут быть зарезервированы (при восстановлении выполняется копирование из бэкапа).
•	Если используется каталог восстановления, БД каталога восстановления должна быть открыта.
Oracle Database 10g: Administration Workshop II ЗИ0
Распараллеливание резервных наборов
Для повышения производительности выделите несколько каналов и задайте файлы для каждого канала.
Резервный фрагмент 1
Резервный фрагмент 2
Резервный фрагмент 3
Распараллеливание резервных наборов -
Администратор может задать конфигурацию параллельного резервирования с помощью параметра PARALLELISM (значение больше 1) в команде CONFIGURE или при ручном выделении каналов. RMAN распараллеливает операции и пишет одновременно в резервные наборы. Файлы назначаются и распределяются между серверными сеансами, выполняющими резервирование.
Пример
RMAN> RUN {
2>	ALLOCATE	CHANNEL cl	DEVICE TYPE sbt
3>	ALLOCATE	CHANNEL c2	DEVICE TYPE sbt
4>	ALLOCATE	CHANNEL C.3	DEVICE TYPE sbt
5>	BACKUP		
6>	INCREMENTAL LEVEL		- 0
7>	FORMAT '/diskl/backup/df_%d_%s_%p.bak’
8>	(DATAFILE	1,4/5	CHANNEL	cl)
9>	(DATAFILE	2,3,9	CHANNEL	c2)
10>	(DATAFILE	6,7,8	CHANNEL	c3);
11> SQL 'ALTER SYSTEM ARCHIVE LOG CURRENT’;
12> }
Oracle Database 10g: Administration Workshop II 3*11
Распараллеливание резервных наборов (продолжение)
На резервируемые файлы можно ссылаться по их полному имени, включающему путь, или по их номеру. Например, следующие две команды выполняют одинаковые действия:
BACKUP DEVICE TYPE sbt DATAFILE ’/home/oracle/systemOl.dbf’;
BACKUP DEVICE TYPE sbt DATAFILE 1;
Когда пользователь создает несколько резервных наборов и выделяет несколько каналов, RMAN автоматически распараллеливает операции и пишет резервные наборы одновременно. Серверные сеансы делят между собой работу по резервированию заданных файлов данных, управляющих файлов и архивных журналов. Отметим, что через несколько каналов нельзя писать в один резервный набор.
Распараллеливание операций ио созданию резервных наборов достигается:
•	определением в команде CONFIGURE для параметра PARALLELISM значения, большего 1, или выделением нескольких каналов;
*	заданием наборов резервируемых файлов.
Пример (см. слайд)
•	Имеется 9 файлов, которые необходимо зарезервировать (файлы данных с I по 9).
*	Файлы данных аккуратно распределены таким образом, что каждый набор имеет приблизительно одинаковое число блоков данных для резервирования (из соображений эффективности).
-	файлы данных 1,4 и 5 приписаны к резервному набору I;
-	файлы данных 2, 3 и 9 приписаны к резервному набору 2;
~	файлы данных 6, 7 и 8 приписаны к резервному набору 3.
Примечание: можно также использовать параметр FILESPERSET для ограничения количества файлов данных, включаемых в один резервный набор.
Oracle Database 10с/: Administration Workshop II 3*12
Сжатые резервные наборы
Файлы БД
2> COMPRESSED BAOCUPSET
3> DATABASE; ,_________*
Сжатые
резервные файлы
U f
RMAN> CONFIGURE DEVICE TYPE 2> DISK PARALLELISM 2 3> BACKUP TYPE TO
4> COMPRESSED BACKUPSET; ;
3-13
Copyright © 2006, Oracle. AH rights reserved.
Сжатые резервные наборы
Сжатые бэкапы {compressed backups) уменьшают размер пространства, требуемого для хранения резервных наборов.
Следующая команда создает сжатый резервный набор базы данных:
RMAN> BACKUP AS COMPRESSED BACKUPSET DATABASE;
Сжатые резервные наборы нельзя создавать в базах данных, предшествовавших версии 10g. Параметр инициализации базы данных compatibility должен иметь значение не ниже 10.0.0.0. Сжать можно только резервные наборы, но не копии образов.
Автоматическое получение сжатых резервных наборов конфигурируется следующей командой configure device type утилиты RMAN:
RMAN> CONFIGURE DEVICE TYPE DISK PARALLELISM 2
2> BACKUP TYPE TO COMPRESSED BACKUPSET;
По умолчанию сжатие отключено.
Oracle Database 10g: Administration Workshop II 3-13
Копия образа
RMAN> BA0OJF AS COPY
2» DATAFILE ’ /ORADATA/users_01_db01, dbf •
3> FORMAT '/BACKUP/usersOl.dbf’;
RMAN> ВА£ЖП? COPY
4> ARCHIVELOG £IKE 'archJL060 .arc’
5> FORMAT •arch_1060.bak’;
Копия файла данных 3
Копия архивного журнала
Особенности копии образа -
Копия образа представляет собой копию одного файла данных, архивного журнала или управляющего файла. Копия образа может быть создана по команде BACKUP AS COPY утилиты RMAN или с помощью команды операционной системы.
При создании копии образа по команде BACKUP AS COPY утилиты RMAN сеанс сервера проверяет блоки файла и помещает запись о полученной копии в управляющий файл.
Копирование образа характеризуется следующими особенностями:
•	Может производиться только на диск. Поэтому копирование больших файлов может занять длительное время, однако время восстановления (restore) сокращается, так как копии доступны на диске.
•	При хранении файлов на диске они могут использоваться немедленно (т.е. нет необходимости восстанавливать их с других носителей). Это обеспечивает быстрый способ восстановления посредством команды RMAN SWITCH, которая эквивалентна команде SQL ALTER DATABASE RENAME FILE.
Oracle Database 10g: Administration Workshop II 3-14
Особенности копии образа (продолжение)
•	Оно подобно резервированию средствами операционной системы, так как копирует все блоки вне зависимости от того, содержат они данные или нет. Но не полностью совпадает с ним, так как серверный процесс Oracle копирует файлы и осуществляет такие дополнительные действия. как проверка на повреждение блоков и регистрация копии в управляющем файле. Для ускорения процесса копирования можно использовать параметр NOCHECKSUM.
•	Может являться частью полного резервирования или резервирования с инкрементальным уровнем 0, так как копия файла содержит все его блоки. Если копия будет использоваться вместе с инкрементальным резервным набором, необходимо указать параметр “level О”.
Пример создания копии образа
В примере, приведенном на слайде, создается две копии образов:
*	копия файла данных u s е г s 01 __db 01. db f под именем usersOl.dbf помещается в директорию /BACKUP ;
•	копия архивного журнала номер 1060.
В примере предполагается, что используется автоматическое выделение канала. Чтобы выделить канал вручную, включите команду COPY в выполняемый блок команды RUN: RMAN> RUN |
2> ALLOCATE CHANNEL cl type disk;
3> COPY
4> DATAFILE 1 /ORADATA/users_01__db01. dbf ’ to
5>	’/BACKUP/usersOl.dbf’ tag^DF3y
6> ARCHIVELOG ’ arch__l 060 . arc f to
7>	1 arch_1060 .bak *; }
Oracle Database 10g: Administration Workshop II 3-15
Тэги для резервных наборов и копий образов
Тэгом является логическое имя, присвоенное резервному набору или копии образа
month_full_backup
weekJEul l_backup
3-16 Copyright © 2006, Oracle. All rights reserved.
Тэги для резервных наборов и копий образов
Тэгом (tag) является значимое имя, присваиваемое резервному набору или копии образа. Преимуществами пользовательских тегов являются:
•	предоставление полезной ссылки на коллекцию копий файла или резервный набор;
•	может использоваться в команде LIST для простого поиска резервных файлов:
•	может использоваться в командах RESTORE и SWITCH;
•	один и тот же тег может использоваться для нескольких резервных наборов или копий файла.
Если тег, не являющийся уникальным, ссылается на несколько файлов данных, RMAN выбирает самый свежий доступный файл.
Пример
*	Полное резервирование файлов данных 1,2, 3 и 4 осуществляется ежемесячно. Тег в управляющем файле для такого резервного набора monthly__f ulljoackup (ежемесячное полное резервирование), хотя для физического файла генерируется имя df__DB00__863__l. dbf.
RMAN> BACKUP TAG 1 month__full_backup’ DATAFILE 1,2,3,4;
•	Полное резервирование файлов данных 3 и 4 осуществляется еженедельно. Для него имя тэга — weekly_full~_backup (еженедельное полное резервирование).
RMAN> BACKUP TAG ’week_full backup’ DATAFILE 3,4;
Oracle Database 10g: Administration Workshop II 3-16
Опции команды BACKUP
•	Проверка наличия блоков с физическими повреждениями
•	Поиск не только физических, но и логических повреждений
•	Задание порогового числа обнаруженных повреждений, после чего команда завершается с ошибкой
*	Проверка наличия повреждений во входных файлах перед выполнением операции резервирования
•	Дублирование резервного набора
•	Перезапись существующего резервного набора или существующей копии образа
•	Передача уровню MML (media management layer) управления пересылкой информации между устройствами хранения и файлами данных на диске уровню
•	Шифрование файлов, получаемых при резервировании
|3-17 Copyright © 2006, Oracle. All rights reserved.
Опции команды backup
Во время операции резервирования процесс сервера Oracle вычисляет контрольную сумму каждого блока, чтобы обнаружить повреждения. RMAN проверяет контрольную сумму при восстановлении копии. Такие проверки принято называть обнаружением физических повреждения (physical corruption detection). Параметр NOCHECKSUM отключает режим проверки и увеличивает скорость процесса резервирования. Если в базе данных уже выполняется проверка на основе контрольной суммы, данный параметр не оказывает никакого действия
Необходимо указать параметр CHECK LOGICAL, чтобы обнаружить логические повреждения блоков данных и индекса при проверке на наличие физических повреждений. К таким повреждениям относятся, например, повреждение фрагмента строки и элемента индекса. Информация об обнаруженных логических повреждениях записывается в сигнальный файл и файл трассировки серверного процесса.
Максимальное число логических и физических повреждений может быть задано с помощью параметра MAXCORRUPT. До тех пор. пока сумма обнаруженных физических и логических повреждений ниже указанного значения, RMAN выполняет резервирование, и по его окончанию Oracle заполняет представление
V$DATABASE_BLOCK__CORRUPTION данными об обнаруженных поврежденных блоках. Когда число поврежденных блоков достигает порогового значения, заданного во фразе MAXCORRUPT. процесс прекращается без заполнения представлений.
Oracle Database 10g: Administration Workshop II 3-17
Опции команды backup (продолжение)
Можно использовать опцию VALIDATE для проверки наличия физических и логических ошибок в файлах базы данных. При использовании опции VALIDATE в команде BACKUP RMAN полностью просматривает заданные файлы и проверяет их содержимое, выявляя возможность резервирования файла. По этой команде на самом деле резервирование заданных файлов не выполняется.
Шифрование файлов, получаемых при резервировании, рассматривается в уроке “Безопасность базы данных’!
В ходе резервирования администратор может создать до четырех одинаковых копий каждого резервного набора. Для выполнения дублирования резервных наборов используются следующие команды:
*	BACKUP COPIES
•	SET BACKUP COPIES
•	CONFIGURE « . . BACKUP COPIES
RMAN не создает несколько резервных наборов, он создает идентичные копии каждого резервного фрагмента в наборе. Эту возможность нельзя использовать в команде BACKUP AS COPY для создания нескольких копий образов.
Параметр REUSE разрешает RMAN переписывать уже существующий резервный набор или копию образа с таким же именем файла, как и у создаваемого текущей командой BACKUP.
При использовании возможности прокси-копирования для выполнения резервирования заданных файлов управление передачей данными между устройствами хранения и файлами данных на диске производится программным обеспечением управления носителем. Программа управления носителем {media manager) (а не RMAN) решает как и когда перемещать данные. По команде BACKUP с опцией PROXY RMAN выполняет следующие шаги:
1. Ищет канал с заданным типом устройства и функциональными возможностями прокси. Если такой канал не найден, RMAN выдает предупреждение и пытается выполнить обычное (не прокси) резервирование заданных файлов.
2. При обнаружении канала с функциональными возможностями прокси RMAN вызывает программу управления носителем и проверяет, может ли она создать прокси-копии файлов. Если программа управления носителем не может выполнить прокси-копирование, тогда RMAN использует режим обычного резервирования файлов.
Чтобы RMAN не пытался выполнить обычное копирование в случае аварийного завершения прокси-копирования, задайте опцию ONLY.
Поскольку копии образов создаются только на диске, нельзя указывать опцию PROXY в команде BACKUP AS COPY.
Примечание: вместе с опцией PROXY в строке формата (параметр FORMAT) необходимо указывать переменную %р явно или неявно через переменную %U.
Oracle Database 10g: Administration Workshop II 3-18
Резервирование архивных журналов
•	Автоматическое переключение оперативного журнала
•	Проверка архивного журнала на наличие повреждений
•	Можно указать резервирование архивных журналов из заданного интервала
•	Резервные наборы содержат только архивные журнальные файлы
2> ЙЭВМЯЙЙ- '*'/S0MSL/backup/ar__%t_.%6_%p*
3> ARCHIVELOG FROM SEQUENCE=234
4> DELES® INPUTS
ORACLE
3-19 Copyright © 2006, Oracle. All rights reserved.
Резервные наборы архивных журналов
Общей проблемой, с которой сталкиваются АБД, является отсутствие информации о завершении копирования архивного журнала в место хранения до начала его резервирования. Recovery Manager имеет доступ к управляющему файлу или информации в каталоге восстановления. Таким образом, известно, какой журнал архивирован и может быть скопирован из бэкапа для операции восстановления Резервирование архивных журнальных файлов может быть выполнено по команде BACKUP ARCHIVELOG или вместе с резервированием файлов данных и управляющих файлов по команде BACKUP . . . PLUS ARCHIVELOG. Архивные журналы всегда заносятся в отдельный резервный набор, даже если используется фраза PLUS ARCHIVELOG (в этом случае создается несколько резервных наборов). Для резервирования определенных архивных журнальных файлов можно указать диапазон их номеров. Во всех случаях архивные журналы всегда размещаются в отдельных резервных наборах, не содержащих других файлов.
Дополнительно в команде BACKUP ARCHIVELOG можно использовать фразу NOT BACKED UP целое TIMES для того, чтобы зарезервировать только те журналы, которые не резервировались заданное целое число раз. Это обычный способ резервирования архивных журналов на заданном носителе (например, вам необходимо иметь гри копии каждого журнала на ленте).
Oracle Database 10g: Administration Workshop II 3-19
Резервные наборы архивных журналов (продолжение)
RMAN автоматически проверяет архивный журнал на наличие повреждений. Если обнаруживаются поврежденные блоки архивного журнала, RMAN производит поиск архивного файла без поврежденных блоков в других местах расположения.
В примере, приведенном на слайде, все архивные журналы, начиная с 234, помещаются в резервный набор. После завершения копирования архивных журналов они удаляются с диска и помечаются как удаленные в представлении V$ARCHIVED_ LOG.
Oracle Database 10g: Administration Workshop II 3-20
Копирование всей базы данных
Recovery Manager позволяет простым образом получать копии образов всех файлов базы данных. Дополнительно можно скопировать SPFILE и архивные журналы. Для этого надо смонтировать базу данных, запустить RMAN и ввести команду BACKUP, показанную на слайде. Однако такое возможно, когда до этого уже были выполнены следующие команды CONFIGURE:
•	CONFIGURE DEFAULT DEVICE TYPE TO disk;
. CONFIGURE DEVICE TYPE DISK BACKUP TYPE TO COPY;
•	CONFIGURE CONTROLFILE AUTOBACKUP ON;
Можно также создать бэкап (резервный набор или копии образов), полученный в результате резервирования созданных ранее копий образов всех файлов данных и управляющих файлов базы данных:
RMAN> BACKUP COPY OF DATABASE;
По умолчанию RMAN выполняет каждую команду BACKUP последовательно. Но операцию можно распараллелить, когда:
•	была выполнена команда CONFIGURE DEVICE TYPE DISK PARALLELISM n, где r? -требуемый уровень параллелизма;
*	выделено несколько каналов;
•	одна команда BACKUP AS COPY используется для нескольких файлов.
Примечание: Высокая степень распараллеливания приводи! к потреблению большего количества машинных ресурсов, но при этом выполнение команды может происходить быстрее.
Oracle Database 10g: Administration Workshop II 3-21
Типы резервирования в RMAN
Полный бэкап, содержит все использовавшиеся блоки файлов данных.
Инкрементальный бэкап на уровне О, как и полный бэкап, содержит все блоки файлов данных, а также отметку о том, что его уровень 0.
Кумулятивный инкрементальный бэкап уровня 1 содержит только блоки, измененные с момента предыдущего инкрементального резервирования на уровне 0 Дифференциальный инкрементальный бэкап уровня 1 содержит только блоки, измененные с момента предыдущего инкрементального резервирования.
Полное или инкрементальное
Кумулятивное инкрементальное
Дифференциальное инкрементальное

Copyright © 2006, Oracle. All rights reserved.
Типы резервирования в RMAN
Полное резервирование
Полные бэкапы (full backup) отличаются от бэкапа всей базы данных (whole database backup). Бэкап всей базы данных содержит файлы данных и управляющий файл целевой базы данных. Полный бэкап файла данных содержит все использовавшиеся в файле блоки. В ходе создания полных бэкапов RMAN читает весь файл и копирует все блоки в резервный набор или копию образа. При создании резервного набора пропускаются блоки, которые никогда не использовались. В случае полной копии образа точно воспроизводится содержимое всего файла. Полный бэкап не является частью стратегии инкрементального резервирования и не может использоваться в качестве исходного бэкапа для последующего инкрементального резервирования.
Инкрементальное резервирование
Инкрементальный бэкап (incremental backup) может быть либо уровня 0 (тогда в него включаются все блоки файла данных, кроме тех, которые никогда не использовались), либо уровня 1 (в него включаются только блоки, измененные с момента предыдущего резервирования). Инкрементальный бэкап на уровне 0 физически схож с полным бэкапом. Единственное отличие в том, что бэкап на уровне 0 может использоваться в качестве базы для резервирования на уровне 1, а полный бэкап ~ нет.
Инкрементальное резервирование определяется в команде BACKUP с помощью ключевого слова INCREMENTAL. Пользователь задает INCREMENTAL LEVEL = [0 | 1].
Oracle Database 10g: Administration Workshop II 3-22
Типы резервирования в RMAN (продолжение)
Инкрементальное резервирование (продолжение)
В RMAN могут быть созданы многоуровневые инкрементальные бэкапы:
•	Дифференциальный (Differential).
Действующий но умолчанию режим инкрементального резервирования, при котором копируются все блоки, измененные после самого последнего инкрементального резервирования либо на уровне 1, либо на уровне 0.
*	Кумулятивный (Cumulative)
Резервируются все блоки, измененные после самого последнего резервирования на уровне 0.
Примеры
•	Для инкрементального резервирования на уровне 0 используйте команду: RMAN> BACKUP INCREMENTAL LEVEL 0 DATABASE;
•	Чтобы выполнить дифференциальное инкрементальное резервирование, введите команду:
RMAN> BACKUP INCREMENTAL LEVEL 1 DATABASE;
•	Чтобы выполнить кумулятивное инкрементальное резервирование, введите команду:
RMAN> BACKUP INCREMENTAL LEVEL 1 CUMULATIVE DATABASE;
RMAN по умолчанию выполняет полное резервирование, если не указаны ни опция FULL, ни INCREMENTAL. При этом в процессе резервирования и копирования файлов данных в наборы пропускаются блоки, в которые никогда ничего не писалось (сжатие неиспользуемых блоков — unused block compression). Так происходит даже при полном резервировании.
Полное резервирование не оказывает влияния на последующее инкрементальное резервирование и не рассматривается как часть инкрементальной стратегии, хотя полная копия образа может быть инкрементально обновлена путем применения инкрементальных бэкапов по команде RECOVER (это будет рассмотрено далее в этом уроке).
Oracle Database 10g: Administration Workshop II 3-23
Выбор между дифференциальным и кумулятивным резервированием
*	Дифференциальный инкрементальный резервный набор содержит все блоки, измененные с момента самого последнего инкрементального резервирования.
•	Кумулятивный инкрементальный резервный набор содержит все блоки, измененные с момента самого последнего инкрементального резервирования уровня 0.
Уровень 0
Сб
Вт
Чт
Вс
Copyright © 2006, Oracle. All rights reserved.
Уровень 0
Уровень о
День Вс ПН
IK
Пт
3-24

Выбор между дифференциальным и кумулятивным резервированием
Кумулятивное инкрементальное резервирование повторяет работу по копированию тех же блоков, которые копировались при предыдущем некумулятивном инкрементальном резервировании на таком же уровне. Поэтому, если сначала выполняется инкрементальное резервирование на уровне 1, тогда последующее кумулятивное резервирование на уровне 1 копирует блоки, измененные после инкрементального резервирования на уровне 1, а также блоки, которые уже копировались в ходе этого инкрементального резервирования на уровне 1. Это означает, что только один инкрементальный бэкап такого же уровня необходим при полном восстановлении.
Сравнение инкрементального и кумулятивного резервирования:
•	Дифференциальное инкрементальное резервирование быстрее пишет меньше блоков и создает меньшие файлы. Инкрементальные бэкапы создаются быстрее, однако при восстановлении RMAN вынужден найти и применить все инкрементальные бэкапы.
•	Кумулятивное инкрементальное резервирование может занять большее время, потребовать записи большего числа блоков и создать большие по размеру файлы. Кумулятивное резервирование повышает скорость восстановления, поскольку при этом применяется меньше бэкапов.
На представленном графике показана стратегия резервирования компании, основанная на инкрементальном и кумулятивном резервирование. Каждое воскресенье выполняется инкрементальное резервирование уровня 0. Дважды в неделю (в среду и пятницу) производится кумулятивное резервирования с целью снижения времени восстановления БД. В остальные дни выполняется инкрементальное резервирование, чтобы уменьшить время, необходимое для резервирования, и требования к пространству хранения.
Oracle Database 10g: Administration Workshop II 3-24
Отслеживание измененных блоков Включение отслеживания измененных	Команды BACKUP > Отслеж. юм. блков Инкр. обнов. LIST REPORT DELETE
блоков может ускорить процесс резервирования
*	Регистрация измененных блоков в файле для отслеживания изменений
•	Если режим отслеживания включен, этот файл автоматически используется утилитой RMAN
•	Оптимизация инкрементального резервирования за счет устранения необходимости полного просмотра файлов данных в ходе резервирования
Список измененных
блоков
SGA
Генерация данных "^повторного выполнения Г
1011001010110
0001110100101
1010101110011
Файл отслеживания изменений
Оперативный журнал

3-25 Copyright © 2006. Oracle. All rights reserved.
Отслеживание измененных блоков
Цель инкрементального резервирования состоит в копировании только тех блоков, которые были изменены после предыдущего резервирования. В ходе каждого инкрементального резервирования читается весь файл данных, даже если после последнего инкрементального резервирования была изменена только очень небольшая часть этого файла.
Фоновый процесс записи отслеживаемых изменений (change tracking writer- CTWR) заноет информацию о физическом расположении всех изменений, сделанных в базе данных, в файл нового типа, называемый файлом отслеживания изменений {change tracking file). После включения возможности отслеживания изменений первое инкрементальное резервирование уровня 0 все же вызывает полный проем огр всего файла данных, так как в файле для отслеживания изменений еще не отражается статус блоков. Последующие операции инкрементального резервирования используют файл отслеживания изменений для определения резервируемых блоков. В результате повышается производительность, поскольку не надо читать весь файл данных.
При включенной возможности отслеживания измененных блоков для выполнения инкрементального резервирования используются обычные команды. Сам файл отслеживания изменений не требует большого сопровождения после его начального конфигурирования. Его размер пропорционален:
•	размеру БД и количеству включенных потоков (threads) в среде RAC;
•	числу старых резервных объектов, сопровождаемых с помощью такого файла.
Oracle Database 10у: Administration Workshop II 3-25
Включение отслеживания измененных
блоков
SQL> ALTER DATABASE 'ENABLE
2> BLOCK CHANGE TRACKING
3> USING FILE ’/mydir/rman change track.f'
4> REUSE;
Debase instance: ord otacle-cot^ > Backup Settings
Backup Settings
Device Backup Set ‘ Pofcy Г™
Backup Policy
F~ Automatically backup the control file and server parameter file (SPFILE) with every backup and database structural change
Autobackup Disk Location |~
An feisty еягескчу о? $зк«тар гйву -Феп? the control fe and serve?	file ^41 be nxl.ed up if
you de гкч dj-ute the	Ч'Ш he Ь..ч=лм up to the ifeh n?n.-v^y ел?а
Г Optimize the whole database backup by skipping unchanged files such as read-only and offline datafiles that have been backed up
Й Enable block change tracking for faster incremental backups
Block Change Tracking File [
Spscifi? ->	fik", O-h?r?iSS %П UrXfe	fi?* wffl h* k. fl-»
3-26 Copyright © 2006. Oracle. All rights reserved.
Включение отслеживания измененных блоков
Возможность отслеживания измененных блоков включается в Enterprise Manager (ЕМ) на странице Maintenance. Щелкните на ссылке Backup Settings, а затем на закладке Policy. Чтобы сохранить установки резервирования, необходимо ввести имя пользователя и пароль для аутентификации на уровне ОС.
Минимальный размер файла для отслеживания изменений -10 Мб и новое пространство выделяется с шагом 10 Мб. Не требуется указывать имя этого файла, когда задан параметр инициализации db_create_f ile_dest; в этом случае создается файл, сопровождаемый сервером Oracle.
Для ручного конфигурирования быстрого инкрементального резервирования используются команды:
SQL> ALTER DATABASE ENABLE BLOCK CHANGE TRACKING;
SQL> ALTER DATABASE DISABLE BLOCK CHANGE TRACKING;
Если параметр db_create_f ile_dest не установлен, используйте фразу USING FILE, чтобы задать местоположение и имя файла для отслеживания изменений.
Представление V$BLOCK__CHANGE__TRACK1NG содержит текущие характеристики конфигурации функциональной возможности отслеживания измененных блоков.
По умолчанию отслеживание изменений отключено, поскольку оно добавляет небольшие накладные расходы, влияющие на производительность обычных, операций в базе данных.
Oracle Database 10g: Administration Workshop II 3-26
Инкрементально-обновляемые резервные копии
Копия образа файла данных
Команды BACKUP Отслеж, изи. блоков.
> Инкр. обнов.
LIST REPORT DELETE
Файлы с инкрементальными резервными объектами
RMAN> RECOVER'COPY OF
2> DATAFILE <ti | ' имя_файла ’} 3> WITH TAG ’incr upd
Копия образа файла данных, обновленная к । более близкому по времени состоянию 1
3-27
Восстановлен н ый файл /данных йншаамиммым
Copyright © 2006, Orade. All rights reserved.
Инкрементальнообновляемые резервные копии
Функциональная возможность инкрементально-обновляемые резервные копии (Incrementally Updated Backup) позволяет, используя RMAN, применять файлы, полученные в результате инкрементального резервирования, к копиям образов файлов данных. С помощью такого метода RMAN подкатывает вперед копию образа к определенному моменту времени (восстанавливает копию файла данных ). В копию вносятся все изменения, сделанные до момента, определяемого системным номером (SCN), при котором был получен инкрементальный бэкап.
В ходе восстановления после потери носителя RMAN может использовать обновленную копию образа также, как он использует полную копию образа, полученную на момент того же SCN. При этом не надо ежедневно тратить дополнительные ресурсы для получение полной копии образа всей базы данных или файла данных.
Две различные команды используются с инкрементально-обновляемыми бэкапами.
•	Команда backup incremental level i ... for recover of copy with tag ... создает инкрементальные резервные наборы, которые можно инкрементально обновить с помощью команды BACKUP. Если не существуе! инкрементальный резервный объект на уровне 0, он создается по этой команде с заданным тегом.
•	По команде recover copy . . .with tag к множеству копий образов с заданным тегом применяются инкрементальные резервные объекты. При отсутствии копий файлов данных или инкрементальных резервных объектов команда выдает сообщение, но не генерирует ошибку.
Теги необходимо использовать для идентификации инкрементальных резервных объектов и копий файлов данных, к которым применяется рассматриваемая стратегия восстановления, так чтобы не было пересечений с другими стратегиями резервирования.
Oracle Database 10g: Administration Workshop II 3»27
1
Команда list
*	Перечень резервных наборов БД
RMAN> LIST BACKUP OF DATABASE ;
Команды BACKUP Отслеж. изм, блоков Инкр. обнов. > LIST
REPORT DELETE
•	Перечень резервных наборов, содержащих указанный файл данных
rman> BACKUP or datafile
2> ,7db01/g&ADAl»A/u0g/usegs01.dbf";i
•	Список копий файлов данных указанного табличного пространства
RMAN> LIST COPY OF TABLESPACE "SYSTEM’»;
•	Список копий архивных журналов из указанного интервала времени
RMAN> LIST COPY OF DATABASEARCHIVELOG ”	;
_____ |
3-28 Copyright © 2006, Oracle. All rights reserved.]
Команда list
Команда RMAN LIST используется для вывода хранимой в репозитарии информации о резервных наборах, прокси-копиях и копиях образов. Можно вывести перечень, содержащий:
*	резервные наборы и копии, не имеющие статус AVAILABLE в репозитарии RMAN;
•	резервные наборы и копии файлов данных, которые доступны и могут быть использованы в операции извлечения из бэкапа (ге store);
•	резервные наборы и копии, содержащие указанные в списке файлы данных или заданные табличные пространства;
•	резервные наборы и копии, содержащие архивные журналы с заданным именем или из указанного диапазона;
•	резервные наборы или копии с указанным тегом, временем завершения создания, пригодные для восстановления или хранимые на определенном типе устройств
*	инкарнации заданной базы данных или всех баз данных, о которых есть сведения в репозитарии;
•	хранимые скрипты в каталоге восстановления.
До выполнения команды LIST необходимо установить соединение с целевой БД. Для соединения в режиме NOCATALOG она должна быть смонтирована, а для соединения с использованием каталога восстановления необходимо, чтобы был запущен целевой экземпляр, а база данных может быть не смонтирована.
Кроме того, можно задавать порядок выводимых данных (BY BACKUP или BY FILE), а также уровень их детализации (VERBOSE или SUMMARY).
Oracle Database 10g: Administration Workshop II 3-28
Команда
•	Детальный анализ репозитария
•	Ответы на вопросы:
-	Какие файлы данных принадлежат базе данный?
-	Какие файлы необходимо резервировать?
-	Какие резервные объекты можно удалить?
-	Какие файлы не восстановимы?
Команды BACKUP Отслеж.
изм блоков Инкр. обнов.
LIST
> REPORT DELETE
Команда report
Команда REPORT помогает выполнить детальный анализ информации репозитария RMAN.
С помощью команды REPORT могут быть получены ответы на такие вопросы:
•	Какова структура база данных?
RMAN> REPORT SCHEMA;
•	Какие файлы необходимо резервировать?
RMAN> REPORT MEED BACKUP . . . ;
•	Какие резервные объекты могут быть удалены (так как они устарели)?
RMAN> REPORT OBSOLETE;
*	Какие файлы не восстановимы из-за невозможности выполнения операции восстановлен ия?
RMAN> REPORT UNRECOVERABLE . . . ;
Oracle Database 10g: Administration Workshop II 3-29
Команда REPORT NEED BACKUP
*	Список всех файлов данных, которые необходимо резервировать
•	Предполагается, что при восстановлении используется самый последний резервный объект
•	Доступны четыре опции:
-	Incremental
-	Days
-	Redundancy
-	Recovery window
• Если опция не указана, принимается во внимание политика удержания
[ 3-30 Copyright © 2006, Oracle. All rights reserved.j
Команда REPORT NEED backup
Команда report need backup используется для выявления всех файлов данных, которые необходимо резервировать. Отчетные данные выдаются на основе предположения, что в случае восстановления используется самый последний резервный объект.
Команда имеет четыре опции:
•	Incremental; целое, определяющее максимальное число инкрементных резервных объектов, используемых при восстановлении. Если при восстановлении требуется такое или большое число инкрементных резервных объектов, необходимо выполнить новое полное резервирование.
Например, чтобы выявить файлы, для восстановления которых необходимы зри или более инкрементных резервных объектов, используется команда:
RMAN > REPORT NEED BACKUP incremental 3 database;
•	Days; целое, определяющее максимальное число дней с момента последнего полного или инкрементного резервирования файла. Если возраст последнего резервно! о объекта равен или превышает заданное значение, требуется резервирование файла. Например, чтобы выявить файлы, которые не резервировались последние гри дня:
RMAN > REPORT NEED BACKUP days 3 tablespace system;
•	Redundancy; целое число, определяющее минимальный уровень избыточности. Например, для уровня избыточности, равного двум, резервирование необходимо при отсутствии хотя бы двух резервных объектов.
•	Recovery window; временное окно, в рамках которого RMAN должен быть в состоянии восстановить базу данных.
Oracle Database 10g: Administration Workshop II 3-30
Примеры команды report need backup
•	Файлы, для восстановления которых необходимы три или более инкрементных резервных объекта:
RMAN> REPORT NEED BACKUP incremental 3;
*	Файлы, которые не резервировались последние три дня:_______________________
RMAN> REPORT NEED BACKUP-Says 3;
•	Резервирование необходимо при отсутствии хотя бы двух резервных объектов:
RMAN> REPORT NEg|^BACKUP; redunda^^j!; , _______
• Сведений о файлах, для которых нет подходящих бэкапов, позволяющих выполнить восстановления на любой момент времени из прошедших трех дней:
RMAN> REPORT NEED BACKUP
2> recovery window of 3 days;
_   .....> „„sfe —  ;——-----—-—------------—

3-31 Copyright © 2006, Oracte. All rights reserved.
Примеры команды report need backup
Время восстановления можно оценить, имея сведения о количестве бэкапов, которые необходимо обработать для восстановления файлов. Если нежелательно обрабатывать более трех инкрементальных бэкапов при восстановлении, можно, используя следующую команду, выяснить, какие файлы нарушают данное требования:
RMAN> REPORT NEED BACKUP incremental 3;
Если за последнее время были выполнены некоторые значительные изменения в базе данных, необходимо установить, какие файлы после этого не резервировались. Например, допустим, что изменения производились три дня назад, тогда следующая команда показывает, какие файлы не резервировались с этого времени:
RMAN> REPORT NEED BACKUP days 3;
При рассмотрении сценариев, не основанных на стандартной политике удержания, могут понадобиться сведения о файлах, для которых нет определенного количества существующих бэкапов. Например, следующая команда, выдает данные на основе уровня избыточности, равного двум:
RMAN> REPORT NEED BACKUP redundancy 2;
Чтобы получить сведений о файлах, для которых нет подходящих бэкапов, позволяющих выполнить восстановления на любой момент времени из прошедших трех дней, введите команду:
RMAN> REPORT NEED BACKUP recovery window of 3 days;
Oracle Database 10g: Administration Workshop I! 3-31
Команды
BACKUP Отслеж.
изм. блоков
Инкр. обнов.
LIST
REPORT
> DELETE
Команды REPORT OBSOLETE И DELETE OBSOLETE
•	Выявить устаревшие и поэтому непригодные для восстановления файлы исходя из текущей политики удержания:
RMAN> REPORT OBSOLETE^
•	Перечень файлов, устаревших из-за того, что не требуется хранить более двух резервных копий:
RMAN> REPORT OBSOLETE REDUNANCY 2;
•	Удалить резервный набор с ключом, равным 4:
RMAN> DELETE BACKUPSET 4;
•	Удалить файлы, устаревшие по причине того, что имеется более двух бэкапов, пригодных для восстановления:
RMAN> DELETE OBSOLETE REDUNDANCY 2;
,...ж.....
3-32 Copyright © 2006, Oracle. All rights reserved.
Команды REPORT OBSOLETE И DELETE OBSOLETE
Устаревший резервный объект может иметь статус OBSOLETE или EXPIRED. Отличие между ними в том, что объект со статусом OBSOLETE больше не нужен, исходя из пользовательской политики удержания, а объект со статусом EXPIRED был переведен в это состояние после выполнения команды CROSSCHECK, которая не обнаружила его на носителе.
Команда REPORT OBSOLETE позволяет обнаружить файлы, которые больше не нужны по причине старения на основе политики удержания. По умолчанию команда REPORT OBSOLETE выводит файлы, устаревшие на основе текущей сконфигурированной политики удержания.
Можно также выводить файлы, устаревшие по причине применения другой политики удержания, задаваемой опцией REDUNDANCY или RECOVERY WINDOW в команде REPORT OBSOLETE.
При выполнении команды REPORT OBSOLETE без опций, когда не сконфигурирована политика удержания, RMAN возвращает сообщение об ошибке.
Команда DELETE может удалить все виды файлов, которые обрабатываются командами LIST и CROSSCHECK. Например, можно удалить резервные наборы, архивные журналы и копии файлов данных. Команда DELETE удаляет физически файл и строку об этом файле из каталога восстановления. Команда DELETE OBSOLETE удаляет резервные объекты, которые больше не нужны. В ней можно задавать такие же опции REDUNDANCY и RECOVERY WINDOW, как и в команде REPORI OBSOLETE.
После удаления резервных объектов без использования RMAN можно воспользоваться командами CROSSCHECK и UNCATALOG для удаления файлов из каталога восстановления.
Oracle Database 10g: Administration Workshop II 3-32
Сопровождение резервных объектов
_______________________ с помощью ЕМ_______________________________________
Manage Current Backups
(Catalog Additional Flies J (Crosscheck Ail J .. Delete All Obsolete) (Delete AH Expired)
This backup data was retrieved from the database control file.
Васйф Sets Image Copies
Search
Status [Available Д	л
Contents FDatafile P' Archived Redo Log P SPFILE FControl File
Completion Time | Within a month jj	‘ 4Go)
Results
' Crosscheck)^ Change to Unawilafcjle^)(Delete)4 Validate )<
Select All | Select None
sSBteetjEbJSZ " Completion:TIm\ _ j Contents	Г-№>
г	4EXAMPLEAUC1 16.2005 6:46:31 AM DATAFILE DISK	AVAILABLE NO	ll
' Г	3 USERS 'Aug IB, 2005 6:46:08 AMiDATAFILEDISK	AVAILABLE NO	I;
Подсказка по навигации:
Страница Database Home > Maintenance > Manage Current Backups
3-33 Copyright © 2006, Oracle. All rights reserved.
Сопровождение резервных объектов с помощью ЕМ
Enterprise Manager предоставляет следующие возможности сопровождения бэкапов.
•	Просмотр списков резервных объектов (резервных наборов и копий образов), записи о которых хранятся в репозитарии RMAN.
•	Перекрестная проверка репозитария:
-	проверка того, что резервные объекты, записи о которых есть в репозитарии, действительно существуют и доступны;
-	резервные объекты, недоступные во время перекрестной проверки, помечаются как устаревшие (статус EXPIRED).
♦ Удаление записей о резервных объектах со статусом EXPIRED из репозитария.ЯМАК
• Удаление записей об устаревших резервных объектах со статусом OBSOLETE из репозитария и самих резервных файлов с диска.
Для перехода в Enterprise Manager на страницу Manage Current Backups щелкните на ссылке Manage Current Backups в секции Backup/Recovery, расположенной на странице Maintenance. На странице Manage Current Backups имеется две закладки для перехода на страницы Backup Set (выводится первой) и Image Сору. Обе страницы предназначены для вывода сведений о резервных объектах, информация о которых хранится в репозитарии утилиты Recovery Manager.
Примечание: когда в качестве хранилища резервных объектов используется флэш-область восстановления, уменьшается объем или совсем устраняется необходимость операций по сопровождению, поскольку Oracle автоматически сопровождает дисковое пространство и файлы в этой области на основе политики удержания.
Oracle Database 10g: Administration Workshop II 3~33
Динамические представления,
используемые RMAN
•	V$ARCHIVED_LOG
•	V$BACKUP_CORRUPTION
•	V$BACKUP_DEVICE
•	V$BACKUP__FILES
•	V$BACKUP_PIECE
•	V$BACKUPJREDOLOG
•	V$BACKUP_SET
•	V$BACKUP_SPFILE
•	V$COPY_CORRUPTION
•	V$RMAN_CONFIGURATION
Copyright © 2006, Oracte- AH rights reserved.
Динамические представления, используемые RMAN
Следующие представления используются для получения информации утилиты RMAN из управляющего файла:
•	V$ARCHIVED_ LOG; показывает, какие архивные журналы создавались, резервировались или удалялись из базы данных.
*	V $ ВАС KU Р__С ORRU PT I ON; показывает, какие блоки обнаружены искаженными в процессе записи резервного набора.
*	V$BACKUP__DATAFILE; используется для определения количества блоков каждого файла данных в созданных резервных наборах; на основе этих данных можно создавать в дальнейшем резервные наборы одинакового размера; это представление также содержит количество искаженных блоков для конкретного файла данных.
•	V$BACKUР__DEVICE; показывает информацию о поддерживаемых устройствах резервирования; тип устройства DISK никогда не возвращается при запросе к этому представлению, так как это устройство всегда доступно.
•	V$BACKUP__FILES; показывает сведения о всех бэкапах (копиях образов и резервных наборах), а также о зарезервированных архивных журналах. Это представление отражает сведения, выводимые по командам LIST BACKUP и LIST COPY утилиты RMAN
Oracle Database 10g: Administration Workshop II 3-34
Динамические представления, используемые RMAN (продолжение)
•	v$BACKUP__PIECE; показывает фрагменты резервных наборов.
•	V$BACKUPJREDOLOG; показывает архивные журналы, хранимые в резервных наборах.
•	V$BACKUPSET; показывает созданные резервные наборы.
•	,V$BACKUP_SPFILE; выводит сведения о файлах серверных параметров, хранимых в резервных наборах.
*	V $ СО Р Y_CORRU PT I ОМ; показывает, какие блоки обнаружены искаженными в процессе записи копии образа.
.	V$DATABASE _BLOCK_CORRUPTION; показывает, какие блоки были помечены как поврежденные в процессе самого последнего резервирования, выполнение! о RMAN.
• V$RMAN CONFIGURATION: выводит значения установленных устойчивых параметров конфигурации RMAN.
При использовании прокси-копирования с RMAN можно запрашивать представления: . V$ PROX Y__ARC НIVE DLOG
» V$ PROXY_ DATAFILE
Статистики резервирования можно запросить в представлениях:
. V$BACKUP_ASYNC_IO
- V$BACKUP__SYNC_JO
Oracle Database 10g: Administration Workshop II 3-35
Мониторинг резервирования с помощью RMAN
•	Свяжите серверные сеансы с каналами, используя команду SET COMMAND ID
•	Выполните запрос к представлениям V$PROCESS И V$SESSION ДЛЯ выявления сеансов, соответствующих каналам RMAN
•	Выполните запрос к представлению V$SESSION_LONGOPS ДЛЯ мониторинга выполнения резервирования и копирования
•	Используйте утилиту операционной системы для мониторинга процессов или потоков
3-36 Copyright © 2006, Oracle. All rights reserved.
Мониторинг резервирования с помощью RMAN
Чтобы соотнести процесс и канал во время резервирования, выполните следующие шаги:
1.	Запустите утилиту Recovery Manager, установив соединение с базой данных назначения и, если необходимо, с каталогом восстановления.
2.	Установите параметр COMMAND ID после выделения каналов и затем скопируйте требуемые объекты. Строка, заданная в команде set command id, отображается в столбце v$session . client_info для всех выделенных каналов.
run {
allocate channel tl type disk;
set command id to ’rman’;
backup datafile 1;
release channel tl;}
3.	Выполните запрос представлений V$PROCESS и VSSESSION, чтобы получить для каждого канала идентификатор сеанса (session identifier - SID) и идентификатор прогресса в операционной системе (operating system process identifier - SPID), используя строку, заданную на предыдущем шаге во фразе command id.
SELECT sid, spid, client info
FROM v$process p, v$session s
WHERE p.addr = s.paddr
AND client_info LIKE ’%id~rman%’;
Oracle Database 10g: Administration Workshop II 3-36
Мониторинг резервирования с помощью RMAN (продолжение)
4.	Чтобы получить сведения о продвижении процесса резервирования, выполните запрос к представлению V$SESSION___LONGOPS.
SELECT sid, serial#, context, sofar, totalwork,
round (sofar/totalwork*100, 2) "% Complete*’
FROM V$SESSION__LONGOPS
WHERE opname LIKE ’RMAN:%’
AND opname NOT LIKE ’RMAN: aggregate%’
AND totaiwork 0;
5.	Если используется канал с типом устройства sbt и обнаруживается, что выполнение процесса приостановилось, закроемте представление V$SESSION___WAIT, используя SID, полученный на шаге 3, чтобы проверить, ждеи ли RMAN завершения вызванной функции программы управления носителем.
SELECT * FROM V$SESSION_WAIT WHERE event LIKE *sbt%’;
Oracle Database 10g: Administration Workshop II 3-37
Итоги
•	Использование команды backup утилиты RMAN для создания резервных наборов и копий образов
*	Использование команды list для получения данных о резервных наборах и копиях, полученных с помощью RMAN
•	Использование команды report для получения сведений об устаревших резервных объектах RMAN и команды delete для их удаления
3-38
Copyright © 2006, Oracle. Ail rights reserved.
Oracle Database 10g: Administration Workshop II 3-38
Обзор практического занятия: резервирование базы данных
•	Включение архивирования оперативных журналов базы данных
•	Использование утилиты RMAN для получения информации о структура базы данных
•	Использование Recovery? Manager для резервирования файлов данных и управляющего файла
•	Использование Recovery Manager для создания копий образов файлов данных
•	Создание сжатого резервного набора базы данных
•	Планирование задания по резервированию
'<аС1 «
3-39 Copyright © 2006, Oracle. АН rights reserved.
Oracle Database 10g: Administration Workshop II 3*39
Восстановление после несущественных потерь
Copyright © 2006, Oracle. All rights reserved.
Рассматриваемые вопросы
•	Восстановление временных табличных пространств
•	Восстановление элемента журнальной группы
•	Восстановление после потери индекса
•	Пересоздание файла паролей
Copyright © 2006, Oracle. All rights reserved.
Oracle Database 10g: Database Administration Workshop II 4-2
Причины потери файла
•	Ошибка пользователя
•	Ошибка в приложении
•	Потеря носителя
Copyright © 2006, Oracle. АН rights reserved.
Причины потери файла
Файлы могут быть потеряны или повреждены вследствие следующих причин.
•	Ошибка пользователя. Администратор может непреднамеренно удалить или перенести необходимый для функционирования файл в операционной системе.
•	Ошибка в приложении. Приложение или скрипт может содержать логическую ошибку, которая при обработке файлов базы данных приводит к потере или повреждению файла.
•	Потеря носителя. Может произойти полный или частотный откат дисковода или контроллера, в результате чего искажаются или даже полностью теряются файлы.
Oracle Database 10g: Database Administration Workshop II 4-3
Сравнение критических и некритических потерь
В случае потери некритического файла база данных может продолжить свое функционирование.
Для устранения проблемы выполняется одно из следующих действий:
•	Создание нового файла	к
•	Пересоздание файла.
•	Восстановление потерянного или
поб ежденного файла.	________
Г-,. -IV
4-4 Copyright © 2006, Oracle. АН rights reserved.
Сравнение критических и некритических потерь
Несущественным (поп-critical file) считается такой файл, без которого может быть продолжено функционирование базы данных и большинства приложений. Например, при потере одного из мультиплексируемых управляющих файлов можно воспользоваться остальными управляющими файлами для сохранения работоспособности базы данных.
Потеря несущественного файла может повлиять на функционирование базы данных, но не вызовет полный отказ (crash) базы данных. Например:
•	Потеря индексного табличного пространства может сильно замедлить работу приложений и выполнение запросов и даже сделать приложение непригодным для использования (unusable) в случае, когда индексы использовались для поддержки ограничений.
•	Потеря оперативной журнальной группы, которая не является текущей (current), может вызвать приостановку работы базы данных до создания новых журнальных файлов.
•	Потеря временного табличного пространства может не позволить пользователям выполнять запросы или создавать индексы до тех пор, пока пользователям не будет назначено новое временное табличное пространство.
Oracle Database 10g: Database Administration Workshop li 4-4
Потеря временного файла
Команды SQL, которым при выполнении требуется временное табличное пространство, могут завершаться с ошибкой, если потерян один из временных файлов.
SQL> select * from big__table order by
1,2	,3,4 ,5^,8 t1,8,9,10	13;
select * from big__table order by
1,2	,	,7,8,9 ,i0> 11,12 ,13 ;
*
ERROR ИЖ 1":
QRA-01565; error in identifying Lfile »'/<0'l/aft^'Z<iMdie/oradata/orcl/teinp01. dbf'
ORA-27Qj37: >abl^ Jtd obtain file status
Lintig- Error':' :2 f Ho such file or directory
4-5
Copyright © 2006, Oracle. All rights reserved
Потеря временного файла (tempfile)
Временной табличное пространство (например, TEMP) становится недоступным, когда теряется или повреждается принадлежащий ему файл. Эта проблема обнаруживается в ходе выполнения команд SQL, которым необходимо временное табличное пространство для сортировки.
Команда SQL, показанная на слайде, содержит длинный список столбцов в предложении order by, и поэтому ей при выполнении понадобится временное табличное пространство. В результате обнаружится отсутствие временного файла.
База данных Oracle может быть запущена без потерянного временного файла. Если какой-либо временный файл отсутствует во время старта базы данных, он создается автоматически и база данных открывается нормально. В таких случаях в сигнальном файле при старте БД появляется сообщении, подобное приведенному ниже:
Recreating tempfile /u01/app/oracle/oradata/orcl/temp01.dbf
Oracle Database 10g: Database Administration Workshop II 4-5
Восстановление при потере временного файла

Copyright © 2006, Grade. All rights reserved.
Восстановление при потере временного файла
После потери временного файла можно восстановиться без перезапуска базы данных.
Например, пусть удален на уровне ОС файл tempO 1. dbf, принадлежащий временному табличному пространству по умолчанию TEMP. Чтобы выполнить восстановление в базе данных после такого удаления добавьте новый файл, а затем выполните операцию drop для удаленного файла:
SQL> ALTER TABLESPACE temp ADD DATAFILE ’/u01/app/oracle/oradata/orcl/temp02.dbf1 SIZE 20M;
Tablespace altered.
SQL> ALTER TABLESPACE temp DROP TEMPFILE ’/uOl/арр/oracle/oradata/orcl/tempOl.dbf1;
Tablespace altered.
Oracle Database 10g: Database Administration Workshop II 4ИВ
Статус журнальной группы
В любой момент времени статут журнальной группы имеет одно из следующих значений:
А V
current: процесс LGWR в текущий момент времени пишет данные в журнальную группу.
active: в журнальную группу больше не производится запись, но она все еще требуется для восстановления после сбоя экземпляра.
INACTIVE: в журнальную группу больше
не производится запись, и она не нужна для восстановления после сбоя
экземпляра.

4-7
Copyright © 2006, Oracle. АН rights reserved.
Статус журнальной группы
В ситуациях, когда теряется файл оперативной журнальной группы, пригодится знание возможных состояний оперативных журнальных групп. В нормально функционирующей базе данных Oracle такие группы проходят в круговом режиме через три состояния. В каждом таком цикле состояние (статус) журнальной труппы изменяется в следующей последовательности.
. CURRENT
Процесс LGWR пишет в данную группу журнальные записи с информацией о выполняемых в базе данных транзакциях. Журнальная группа находится в таком состоянии до переключения в другую журнальную группу.
•	ACTIVE
Данные журнальной группы все еще необходимы для восстановления после сбоя экземпляра. Этот статус сохраняется, пока не завершится выполнение контрольной точки, по которой в файлы данных записываются все измененные данные, отраженные в записях оперативной журнальной группы.
•	INACTIVE
Выше упомянутая контрольная точка завершилась, и поэтому оперативная журнальная группа больше не нужна для восстановления после сбоя экземпляра. Такая группа свободна и может быть следующей текущей (статус CURRENT) журнальной группой.
Oracle Database 10g: Database Administration Workshop II 4-7
Потеря элемента оперативной журнальной группы
Потеря журнального файла отражается в сигнальном файле и трассировочном файле архивного процесса (ARCn).
Errors to file
/uOl/agj|/bracle/admin/0rcl/bdpi^/orcl_arcl_2573B. trc: СЖА~0(Й13: open failed for members of log group 2 of thread 1
ORA-Q031?: .online log 2 thread. 1:.
*/u01/app/oracie/oradata/orcl/redo02blog9
OB^-27037: unable to obtain file status
bxnux Mrrof:'2: No such file or directory

Copyright© 2006, Oracle. All rights reserved.
Потеря элемента оперативной журнальной группы
Журнальные данные повторного выполнения важны для восстановления, поскольку они содержат записи обо всех изменениях в базе данных, что позволяет выполнить подкат вперед при восстановлении после копирования из бэкапа.
Группа оперативных журналов может содержать несколько одинаковых элементов. Таким образом обеспечивается избыточное хранение журнальных данных. Для продолжения функционирования БД необходимы, по крайней мере, две журнальные группы с хотя бы одним доступным элементом в каждой из них.
Когда какой-либо элемент журнальной группы недоступен, сообщение об этом заносится в сигнальный файл и формируется трассировочный файл архивного процесса При потере нетекущей оперативной журнальной группы можно воспользоваться командой ALTER DATABASE CLEAR LOGFILE, чтобы пересоздать элементы этой труппы. При этом не происходит никаких транзакционных потерь. В случае, когда журнальная группа была заархивирована до того, как произошла ее потеря, больше ничего не требуется делать. В противном случает необходимо немедленно выполнить полное резервирование базы данных. Резервные объекты, полученные до момента потери журнала, не пригодны для восстановления.
Oracle Database 10g: Database Administration Workshop II 4-8
Пересоздание оперативных журнальных файлов
SQL> ALTER DATABASE DROP LOGFILE MEMBER
> ’/uOl/app/oracle/oradata/orcl/redo02b.log'; SQL> !rm /u01/app/oracle/dradata/orcl/redo02b.log CATS ЬГФТО П1Ф2Ш1СП? ВПП TrVZIFTTT?
> ’/цОl/app/oracle/oradata/orcl/redo02btlog’
> TO GROUP 2,
4-9	 Copyright © 2006, Oracle. All rights reserved.
Пересоздание оперативных журнальных файлов
В некоторых случаях может понадобиться удалить целиком журнальную группу или одни, или несколько файлов журнальной группы. Например, в случае дискового отказа придется удалить все оперативные журнальные файлы, расположенные на отказавшем диске, чтобы база данных не выполняла попыток записи в недоступные файлы.
Для удаления оперативной журнальной группы необходимо иметь системную привилегию ALTER DATABASE. Кроме того, следует принять меры предосторожности и учесть следующие ограничения:
•	Экземпляру требуются хотя бы две группы оперативных журнальных файлов, независимо от количества элементов в группах.
•	Группу или элемент группы можно удалить только, когда группа неактивна (статус INACTIVE в представлении V$LOG).
•	Когда БД в архивном режиме, удалить элемент или группу можно, если оперативная журнальная группа заархивирована (YES в столбце ARCHIVED представления V$LOG).
SELECT GROUP#, ARCHIVED, STATUS FROM V$LOG;
GROUP# ARC STATUS
1	YES ACTIVE
2	NO CURRENT
3	YES INACTIVE
Oracle Database 10g: Database Administration Workshop li 4-9
Пересоздание оперативных журнальных файлов (продолжение)
Удаление группы оперативных журналов производится по команде SQL ALTER DATABASE, содержащей фразу DROP LOGFILE. Следующая команда удаляет группу под номером 3:
ALTER DATABASE DROP LOGFILE GROUP 3;
Чтобы удалить элемент оперативной журнальной группы, необходимо иметь системную привилегию ALTER DATABASE. Кроме того, следует принять меры
предосторожности и учесть следующие ограничения:
•	Можно удалить оперативные журнальные файлы, и в результате мультиплексируемый журнал становится временно асимметричным. Например, при использовании дуплексных групп оперативных журналов можно удалить один элемент в одной группе, при этом во всех остальных группах останется по два файла. Настоятельно рекомендуется немедленно исправить эту ситуацию и сделать так. чтобы во всех группах было хотя бы два элемента. Тогда все группы будут защищены от возможного сбоя.
*	Экземпляру требуются хотя бы две работоспособные группы оперативных журнальных файлов, независимо от количества элементов в группах.
*	Если БД в архивном режиме, проверьте, что группа, к которой принадлежит удаляемый файл, была заархивирована. Для этого запросите представление V$LOG.
*	Элемент журнальной группы не может быть удален, когда его группа активна или является текущей. Если необходимо удалить элемент текущей группы, сначала выполните принудительное переключение журнала. После этого группа переходит либо в состояние ACTIVE, либо INACTIVE. Если состояние INACTIVE, тогда можно выполнить команду удаления группы. Если же состояние ACTIVE, тогда следует сначала выполнить принудительную контрольную точку, чтобы перевести группу в состояние INACTIVE. В следующем примере показывается, как происходит такой переход для первой группы (1 в столбце GROUP# ), которая сначала имела статус CURRENT, затем ACTIVE и наконец INACTIVE:
SQL> SELECT GROUP#, ARCHIVED, STATUS FROM V$LOG;
GROUP# ARC STATUS
1	NO CURRENT	4———
2	YES INACTIVE
3	YES INACTIVE
SQL> alter system switch logfile;
SQL> SELECT GROUP#, ARCHIVED, STATUS FROM V$LOG;
GROUP# ARC STATUS
1	YES ACTIVE *"......~,n,~
2	NO CURRENT
3	YES INACTIVE
SQL> alter' system checkpoint;
System altered.
SQL> SELECT GROUP#, ARCHIVED, STATUS FROM V$LOG;
GROUP# ARC STATUS
1	YES INACTIVE
2	NO CURRENT
3	YES INACTIVE
Oracle Database 10g: Database Administration Workshop II 4-10
Пересоздание оперативных журнальных файлов (продолжение)
Для удаления элемента неактивной и нетекущей группы оперативных журналов используется команда SQL ALTER DATABASE, содержащая фразу DROP LOGFILE MEMBER. Следующая команда удаляет оперативный журнальный файл / и 01 / а р р / о г а с 1 е / о г a d a t а / о г с 1 / г е d о 0 2 b. 1 о g:
ALTER DATABASE DROP LOGFILE MEMBER
*/u01/app/oracle/oradata/orcl/redo02b,log*;
При удалении журнальной группы или отдельного элемента всегда удаляются ссылки на них в управляющем файле, а соответствующие файлы в операционной системе остаются, кроме случая, когда используются файлы, сопровождаемые Oracle (Oracle Managed Files OMF). Проверьте, что операция удаления элемента или оперативной журнальной группы завершилась успешно, а затем, если не использовались OMF-файлы, удалите файлы оперативных журналов g помощью соответствующих команд ОС.
При использовании файлов, сопровождаемых Oracle, удаление этих файлов в операционной системе выполняется автоматически.
Oracle Database 10g: Database Administration Workshop II 4-11
Пересоздание оперативных журнальных файлов
CgiQlviewJ, CeleteClear logfile
Current:	1 Ne	51200	50;	1847791j
Inactive.	2 Yes	SI 200	46.	1792269
Inactive:	1 Yes	51200	49	182W85|
Edit Redo Log Group: 2
Actions [cEarTogfile
^Show SQl) (Revert J (Apply)
Group # 2
File size 51200 KB
Status INACTIVE
Redo Log Members
C redo02.log
® redoOEb.log
?ЯЬВ1ЫйЬгу
AjO 1 /app/oracle/oradata'orcl/ /u01 /app/oracle/oradata/orcl/
Г RACUS
4-12
Copyright © 2006, Oracle. All rights reserved.
Пересоздание оперативных журнальных файлов
Enterprise Manager позволяет создавать и редактировать информацию о группах оперативных журналов, связанных с текущей базой данных. Для этого на странице Administration выберите ссылку Redo Log Groups в секции Storage.
На странице Redo Log Groups выводится информация о каждой журнальной группе, а также предоставляется возможность просмотра и редактирования состава группы.
Выберите отдельную журнальную группу и щелкните на кнопке View. Для оперативной журнальной группы будет выведена таблица, содержащая файлы и директории, в которых они находятся.
Добавить или удалить элементы группы можно, используя кнопку Edit.
Oracle Database 10а: Database Administration Workshan I! 4-12
Повторное создание индексов
Используйте параметры, уменьшающие время создания индекса:
•	PARALLEL
•	NOLOGGING	?
SQL> CREATE INDEX rname_idx
2 Ml hr. regions (region, name)
3 PARALLEL 4;'
Copyright © 2006, Oracle. AH rights reserved.
4-13
Повторное создание индексов
При создании и пересоздании индекса можно использовать следующие ключевые слова для снижения времени выполнения операции:
• PARALLEL (по умолчанию NOPARALLEL).
Индекс может создаваться несколькими процессами, выполняющими одновременно совместную работу. Разделяя необходимые для создания индекса действия между несколькими серверными процессами, Oracle может создать индекс более быстро, чем это сделает одиночный процесс, создающий индекс последовательно. Из таблицы случайным образом выбираются данные, выявляются множества индексных ключей, которые равномерно разбивают индекс на части. Количество этих множеств определяет уровень параллелизма. Первый набор процессов запроса полностью просматривает таблицу, выделяет пары, состоящие из ключей и rowid и передает каждую пару процессу во втором наборе процессов запроса, исходя из значения ключа. Каждый процесс во втором наборе сортирует ключи и строит индекс обычным образом. После того, как все части индекса выстроены, координатор параллельных процессов объединяет части (которые упорядочены), чтобы окончательно сформировать индекс.
--- ЛП—
Повторное создание индексов (продолжение)
« NOLOGGING
Индекс строится быстрее, поскольку в ходе операции создания очень небольшой объем информации заносится в журнал. Это значение также значительно минимизирует объем генерируемых журнальных данных в процессе выполнения прямой вставки (directpath insert) и производимой с помощью утилиты SQL*Loader прямой загрузки (Direct Loader). NOLOGGING - постоянный атрибут, который хранится в словаре данных. Он может быть изменен в любое время с помощью команды:
ALTER INDEX NOLOGGING/LOGGING.
При потере индекса может оказаться быстрее и проще его пересоздать, а не пытаться произвести восстановление (recover). Один из способов определения кода SQL для создания индекса - использование утилиты Data Pump:	impdp
SQL FIЬЕ=<имя__ файла>
В качестве имени_файла указывается выходной файл, сгенерированный при выполнении команды expdp. В результате на основе dump-файла генерируются команды SQL для создания импортируемых объектов, но сам импорт не выполняется. Команды expdp и impdp подробно рассматриваются в курсе Oracle Database 10g: Администрирование L
Oracle Database 10g: Database Administration Workshop II 4-14
Методы аутентификации администраторов базы данных
Методы аутентификации администраторов базы данных
Администрирование базы данных может производиться локально на той же самой машине, на которой расположена база данных. С другой стороны, можно управлять многими различными сервера с единого удаленного клиента. В зависимости от выбранного подхода к администрированию может быть отдано предпочтение либо аутентификации на уровне ОС, либо аутентификации при помощи файла паролей.
* Если есть парольный файл базы данных и пользователю предоставлена системные привилегии роли SYSDBA или SYSOPER, тогда он может пройти аутентификацию при помощи парольного файла.
• Если на сервере не используется парольный файл или пользователю не предоставлены привилегии SYSDBA и SYSOPER и поэтому нет нужды в парольном файле, тогда может использоваться аутентификация на уровне ОС. В большинстве операционных систем для аутентификации администраторов необходимо разместить пользователя ОС в специальной группе, на которую обычно ссылаются как на группу OSDBA. Пользователям этой группы предоставлены привилегии SYSDBA. Группа OSOPER используется для предоставления пользователям привилегий SYSOPER.
Аутентификация на уровне ОС имеет приоритет над аутентификацией при помощи парольного файла. Так, если пользователь входит в группу OS DBA или OSOPER и соединяется как SYSDBA или SYSOPER, тогда соединение устанавливается с соответствующими административными привилегиям, независимо от того, какое имя и пароль были введены.
Oracle Database 10g: Database Administration Workshop II 4«15
Повторное создание файла парольной аутентификации
1.	Соединитесь с базой данных, используя аутентификацию на уровне ОС.
2.	Установите значение none в параметре REMOTE_LOGIN_PASSWORDFILE И перезапустите БД.
3.	Пересоздайте парольный файл, используя утилиту orapwd.
4.	Установите значение exclusive в параметре REMOTE_LOGIN_PASSWORDFILE.
5.	Добавьте пользователей в парольный файл и выделите каждому необходимые привилегии.
6.	Перезапустите экземпляр.
Повторное создание файла парольной аутентификации
Для создания парольного файла Oracle предоставляет утилиту orapwd. При установлении соединения с привилегиями SYS DBA пользователь подсоединяется к схеме SYS, а не к своей собственной схеме. Как SY SOPER пользователь соединяется с схемой PUBLIC. Доступ к базе данных с использованием парольного файла предоставляется по команде GRANT, выполненной привилегированным пользователем. Обычно парольный файл не включается в резервные наборы, так как почти во всех ситуациях парольный файл можно пересоздать. При потере парольного файла для того, чтобы его пересоздать, требуется хотя бы раз остановить и повторно запустить базу данных. Чтобы не терять время на остановку БД, следует включить парольный файл в перечень резервируемых объектов.
Чрезвычайно важно для обеспечения системной безопасности защищать парольный файл и переменные окружения, которые задают местоположение парольного файла. Пользователи, имеющие доступ к такой информации, потенциально могут нанести вред безопасности соединения.
Примечание. Не удаляйте и не изменяйте парольный файл, если БД или экземпляр были смонтированы с параметром инициализации REMOTE_LOGIN__P AS SWORD FILE, равным EXCLUSIVE (или SHARED). После таких действий нельзя удаленно переподсоединиться с использованием парольного файла. Даже если заменить этот файл, новый парольный файл нельзя использовать, так как временные метки и контрольные суммы будут неверными.
Oracle Database 10g: Database Administration Workshop II 4-16
Повторное создание файла парольной аутентификации (продолжение) Использование файла паролей
1.	Файл паролей создается с помощью утилиты orapwd.
orapwd Ше=<имя файла> passwcrd=<naponb> entries =<число> где:
имя_файла имя файла паролей (обязательный параметр);
пароль пароль для соединения с привилегиями SYSOPER или SYSDBA (обязательный параметр);
число число, задающее максимальное количество администраторов базы данных, которые могут подсоединиться с
привилегиями SYS DBA или SYSOPER;
при превышении за^нного числа необходимо пересоздавать файл паролей, поэтому рекомендуется указывать большее число;
не должно быть пробелов вокруг знака равно (=).
Пример:	orapwd file=$ORACLE__HOME/dbs/orapwU15
password-admin entries-5
2.	Значение параметра REMOTE_LOGIN__PASSWORDFILE установите равным EXCLUSIVE
где:
EXCLUSIVE указывает на то, что данный файл паролей может использоваться только одним экземпляром и что он содержит еще какие-то имена кроме SYS; когда парольный файл используется в режиме EXCLUSIVE, привилегии SYS DBA и SYSOPER могут быть выделены другим пользователям.
3.	Соединение с базой данных с использованием парольного файла устанавливается
следующим образом:
CONNECT sys/admin AS SYSDBA
Расположение файла паролей
UNIX: $ORACLE__HOME/dbs
NT: %ORACLE_HOME%/database
Сопровождение файла паролей
Удалите файл паролей и создайте новый файл с помощью утилиты ORAPWD.
Oracle Database 10g: Database Administration Workshop II 4-17
Повторное создание файла парольной аутентификации (продолжение) Использование файла паролей
1.	Соединитесь с базой данных, используя аутентификацию на уровне ОС.
2.	Установите значение NONE в параметре REMOTE___LOGIN___PASSWORDFILE и перезапустите БД.
3.	Создайте парольный файл, используя утилиту orapwd.
orapwd f 11е~<имяфайла> password~<napcxnb> entries ~<число> где:
имя файла имя файла паролей (обязательный параметр);
пароль пароль для соединения с привилегиями SYSOPER или SYSDBA (обязательный параметр);
число число, задающее максимальное количество администраторов базы данных, которые могут подсоединиться с привилегиями SYSDBA или SYSOPER; при превышении заданного числа необходимо пересоздавать файл паролей, поэтому рекомендуется указывать большее число;
не должно быть пробелов вокруг знака равно
Пример: orapwd f ile~$ORACLE_HOME/dbs /orapwUl 5 password-admin entries~5
4.	Значение параметра REMOTE_LOGIN___PASSWORDEILE установите равным EXCLUSIVE:
- EXCLUSIVE указывает на то. что данный файл паролей может использоваться только одним экземпляром и что он содержит еще какие-то имена кроме SYS; когда парольный файл используется в режиме EXCLUSIVE, привилегии SYSDBA и SYSOPER могут быть выделены другим пользователям.
5.	Соединитесь с базой данных, используя парольный файл, созданный на шаге 3. CONNECT sys/admin AS SYSDBA
6.	Перезапустите экземпляр.
Расположение файла паролей
UNIX: $ORACLE_HOME/dbs
Windows: %ORACLE__HOME%\database
Сопровождение файла паролей
Удалите существующий файл паролей, используя команду операционной системы, и создайте новый файл с помощью утилиты ORAPWD.
Oracle Database 10g: Database Administration Workshop li 4-18
Итоги
•	Восстановление временных табличных пространств
•	Восстановление элемента журнальной группы
•	Восстановление после потери индекса
•	Пересоздание парольного файла
'ACL®
[ 4-19 Copyright © 2006, Oracle. Alt rights reserved.
Oracle Database 10g: Database Administration Workshop II 4-19
Обзор практического занятия: восстановление после потери временного файла и оперативного журнального файла
•	Запуск базы данных с потерянным временным файлом
•	Создание нового временного табличного пространства
•	Изменение для базы данных табличного пространства по умолчанию
•	Восстановление после потери элемента оперативной журнальной группы
Copyright © 2006, Oracte. АН rights reserved.
Oracle Database 10g: Database Administration Workshop II 4-20
Восстановление базы данных
1
Copyright © 2006, Oracle. All rights reserved-

Рассматриваемые вопросы
*	Полное и неполное восстановление, управляемое пользователем
•	Ситуации, в которых необходимо неполное восстановление
Польз.упр. RMAN CLI ЕМ Полное Неполное Упр.файл ROTBS
•	Выполнение полного и неполного восстановления с использованием RMAN
*	Неполное восстановление на основе времени, SCN, номера журнала, точек восстановления и метода прерывания процесса восстановления
•	Восстановление с использованием автоматически зарезервированного управляющего файла
•	Использование Enterprise Manage для выполнения восстановления
•	Восстановление табличных пространств с доступом только на чтение

5-2 Copyright -© 2006, Oracle. АН rights reserved.
Oracle Database 10g: Administration Workshop II 5-2
Методы восстановления
•	Восстановление, управляемое пользователем
-	Необходимо вручную сопровождать и перемещать файлы в требуемое место.
-	Используются команды SQL*Plus.
• Восстановление с помощью RMAN
-	Автоматическое управление файлами.
-	Использование функциональных возможностей RMAN, включающих сопровождение всего репозитария и получение отчетов.
-	Может быть произведено с использованием Enterprise Manager.
-	Корпорация Oracle рекомендует использовать этот метод.
Методы восстановления
Восстановление, управляемое пользователем, требует большего ручного вмешательства, чем восстановление с использованием RMAN. Поэтому использование RMAN -рекомендуемый метод резервирования, и он подробно рассматривается далее в этом уроке.
Oracle Database 10g: Administration Workshop II 5-3
Восстановление, управляемое пользователем: команда recover
> Польз, упр. RMAN CL! ЕМ Полное Неполное Упр.файл ROTBS
•	Скопируйте из резерва все файлы базы данных, а затем выполните восстановление:
SQL> RECOVER DATABASE
•	Скопируйте из резерва поврежденные файлы данных, а затем выполните их восстановление:
SQL> RECOVER TABLESPACE index tbs
ИЛИ
SQL> RECOVER' DATAFILE gt> ‘/oxadata/indxOl.dbf•
Copyright © 2006, Oracle. All rights reserved.
Восстановление, управляемое пользователем: команда recover
На первом шаге восстановления после потери носителя необходимо вручную скопировать файлы данных из резервных объектов. Если нельзя восстановить файл данных в его первоначальное местоположение, следует обновить в управляющем файле указатель на его местоположение, используя команду alter database rename file. Необходимо также вручную восстановить архивные журналы, требуемые для восстановления извлеченных из резерва файлов данных. При использовании RMAN новое место, в которое копируются извлекаемые из резерва файлы, задается командой set newname.
Для восстановления базы данных или файла данных может быть запущена одна из приводимых ниже команд:
•	RECOVER [AUTOMATIC] DATABASE
Используется только для восстановления закрытой базы данных.
•	RECOVER [AUTOMATIC! TABLESPACE <ИМЯ>
Используется только для восстановления открытой базы данных.
•	RECOVER [AUTOMATIC] DATAFILE <НОМЕР> | <1имя_файла1>
Используется для восстановления как открытой, так и закрытой базы данных.
Ключевое слово AUTOMATIC задает директиву базе данных Oracle по выполнению автоматического генерирования имени следующего архивного журнального файла, необходимого для продолжения операции восстановления файлов данных. В противном случае выдаются запросы для ввода таких имен.
Oracle Database 10g: Administration Workshop II 5-4
Восстановление с помощью RMAN: команды RESTORE И RECOVER
Польз, ynp. > RMAN CLI
EM Полное Неполное Упр файл ROTBS
sql ’’ALTER TABLESPACE	OFFLINE	IMMEDIATE*’ ;
I RESTORE TABLESPACE iasr_t$»s;
! RECOVER TABLESPACE invj^bs DELETE ARCHiVEbOG;
I ftgl. "ALTER. TABLESPACE inv tbs ONLINE";
_1_____________________—_____

5-5 Copyright © 2006, Oracle. AH rights reserved.
Восстановление с помощью RMAN: команды restore и recover
Если для восстановления после потери носителя используется RMAN, тогда он извлекает из резерва архивные журналы, необходимые в ходе операции восстановления. Если резервные объекты доступны с помощью программы управления носителем, сконфигурируйте или выделите каналы для доступа к хранимым резервным объектам. Восстановление всего или части содержимого базы данных на основе резервных объектов обычно включает две фазы: извлечение из резерва копии файла данных и повторное применение изменений из архивных и оперативных журналов к файлу с момента резервирования до требуемого SCN (обычно до самого последнего системного номера изменений). Команда restore копирует на диск файл данных, извлекая его из резерва, хранимого на ленте, диске или другом носителе, и делает этот файл, доступным для сервера базы данных. Команда recover применяет к извлеченной копии файла данных изменения, записанные в журнальных файлах базы данных.
DELETE ARCHIVELOG - это одна из очень полезных опций для сопровождения дискового пространства, связанного с восстанавливаемыми файлами. Она вызываез удаление извлеченных из резерва архивных журналов, как только они становятся ненужными для операции RECOVER.
Когда RMAN копирует из резерва архивные журналы во флэш-область восстановления для выполнения операции recover, восстановленные журналы автоматически удаляются после их применения к файлам данных, даже если не используется опция delete ARCHIVELOG.
Oracle Database 10g: Administration Workshop II 5-5
Восстановление с использованием Enterprise Manager
С помощью Enterprise Manager можно создать и запустить скрипт RMAN для
Польз.упр.
RMAN CU
> ЕМ Полное Неполное Упр.файл ROTBS
выполнения восстановления.
Database Instance: orcl.oracle.com
gfj>e Pemitnance Агч i?• |~KWn^narice J
The Administration tab displays links that allow you to administer database objects and initiate database operations inside an Oracle database. The Maintenance tab displays links that provide functions that control the flow of data between or outside Oracle databases.
High Availability
Backup/Recovery
Schedule Bacru»
Manage Restore Points Backup Reports
Backup/Recovary
Settings
Backup Settings
Recovery Settings
Recovery Catalog Settings
Grade Secure Backup
Oracle Secure Backup
Device and Media Fite System Backup and Restore
RMAN> RECOVER DATABASE ...
Copyright © 2006,. Oracle. All rights reserved.
Восстановление с использованием Enterprise Manager
Полное и неполное восстановление может быть также произведено с помощью мастера восстановлений, предоставляемого в Enterprise Manager Database Control.
Войдите в Database Control. Для этого введите на странице Login имя и пароль пользователя с привилегиями SYS DBA. После щелчка на кнопке Login появится страница Database с общей информацией о базе данных. На этой странице щелкните на закладке Maintenance. В результате будет выведена страница Maintenance, предоставляющая различные возможности резервирования, копирования из резерва и восстановления.
Щелкните на ссылке Perform Recovery.
Oracle Database 10g: Administration Workshop II 5-6
Сравнение полного и неполного восстановления
Два типа восстановления:
• Полное восстановление переносит базу данных к настоящему моменту времени; оно включает повторение всех изменений данных до момента времени, когда возникла необходимость восстановления.
Полное w _ восстановление
Неполное _ _ восстановлен ие
Копирование	Потерянные транзакции-*
из бэкапа после неполного восстановления
Задача восстановления появилась в этот момент
Неполное восстановление переносит БД к заданному времени в прошлом, предшествовавшему моменту, в котором возникла необходимость восстановления.
I 5-7 Copyright © 2006, Oracle. All rights reserved.|
Сравнение полного и неполного восстановления
Выполняя полное восстановления, вы переносите базу данных в состояние, полностью соответствующее текущему времени, повторяя все изменения, сделанные после получения бэкапа.
Неполное восстановление переносит базу данных к какому-то моменту в прошлом. Это означает, что не производится повторение некоторых транзакций, в результате чего теряются результаты изменений, произведенных после целевого момента времени. Во многих случаях неполное восстановление выполняется для достижения желаемой цели, поскольку необходимо отменить последствия некоторых действий в базе данных.
Восстановление к моменту в прошлом - это способ удаления результатов транзакций, внесших нежелательные изменения в базу данных.
Oracle Database 10g: Administration Workshop II 5-7
Полное восстановление
Польз.упр. RMAN CLI ЕМ
> Полное Неполное
Упр.файл
ROTBS
Ар*
Копирование из бэкапа файлов данных
Восстановленные файлы данных
Применение изменений
БД открыта
Применение данных отмены
Файлы данных, содержащие результаты зафиксированных и незафиксированных транзакций ______________
Copyright © 2006, Oracle. All rights reserved.
Полное восстановление
Шаги полного восстановления:
1.	Поврежденные и потерянные файлы восстанавливаются из резервных объектов.
2.	При необходимости применяются изменения с использованием инкрементальных резервных объектов, архивных и оперативных журналов. Изменения из оперативных журналов применяются к файлам данных до самых последних записей текущего оперативного журнала и при этом повторяется выполнение самых последних транзакций. Одновременно генерируются блоки отмены. Этот шаг принято называть подкатом вперед или восстановлением кэша.
3.	Скопированные из бэкапа файлы могут теперь содержать как зафиксированные, так и незафиксированные изменения.
4.	База данных открывается перед применением данных отмены. Это делается для предоставления высокого уровня доступности.
5.	Блоки отмены используются для отката назад любых незафиксированных изменений. Этот шаг принято называть откатом назад или восстановлением транзакции.
6.	Файлы данных теперь в восстановленном состоянии и согласованы с другими файлами данных БД.
Oracle Database 1(kp Administration Workshop II 5-8
Неполное восстановление
Применение изменений до момента времени (point in time - PIT)
Польз.упр. RMAN CL1 ЕМ Полное
> Неполное Упр.файл ROTBS
г
Применение данных отмены
. ВД открыта
1 J
Копирование файлов данных из подходящего по моменту времени бэкапа
Файлы данных, восстановленные до момента времени (PIT)
Файлы данных, содержащие зафиксированные и незафиксированные данные.
Транзакции до PIT
%

5-9 Copyright © 2006, Oracle. Ай rights reserved.
Неполное восстановление
Неполное восстановление (incomplete recovery) или восстановление на момент-в-прошлом (point-m-time recovery) использует резервные объекты для воссоздания базы данных в ее предшествовавшем по времени состоянии. В этом случае при восстановлении не применяются все журнальные записи, сгенерированные после самого последнего резервирования. Такое восстановление производится только в случае, когда это действительно необходимо. Для проведения неполного восстановления:
•	требуются резервные объекты, полученные в автономном или оперативном состоянии БД, пригодные для восстановления всех файлов базы данных и полученные до требуемого момента восстановления;
•	необходимо иметь все архивные журналы с момента последнего резервирования и до выбранного времени восстановления.
Последовательность действий при неполном восстановлении:
1.	Копирование файлов данных из бэкапа. Если целевая точка восстановления не находится совсем близко от текущего момента, может использоваться не самый последний по времени бэкап,
2.	Применение всех архивных журнальных файлов, требуемых для достижения точки восстановления.
3.	Файлы данных содержат результаты как зафиксированных, так и незафиксированных транзакций, поскольку после повторения действий по журналам не все данные могут быть зафиксированы.
4.	База данных открывается перед тем, как применяется информация отмены. Таким образом достигается более высокая доступность.
5.	Данные журналов повторного выполнения применялись ко всем файлам данных, в том числе также и к файлам типа undo. Поэтому данные отмены доступны. Они применяются к файлам данных для отмены незафиксированных транзакций.
6.	Файлы данных теперь восстановлены к выбранному моменту времени.
Oracle Database 10g: Administration Workshop II 5-9
Неполное восстановление (продолжение)
Восстановление на момент-в-ирошлом - это единственная возможность в ситуации, когда восстановление необходимо и обнаруживается, что потерян архивный журнал, содержащий записи о транзакциях, произошедших между временем последнего резервирования и SCN, до которого требуется провести восстановление. Не имея журнал, нельзя применить изменения к восстанавливаемым файлам за период, отслеживаемый в этом журнале. Единственный выход - восстанавливать базу данных с момента получения резервных объектов, используемых при восстановлении, применяя архивные журналы, пока не будет прервана их цепочка, а затем открыть базу данных с параметром RESETLOGS. Все изменения из утерянного журнала и последующие изменения будут потеряны.
Oracle Database 10g: Administration Workshop II 5-10
Ситуации, вызывающие необходимость неполного восстановления
•	Полное восстановление завершилось неудачно из-за потери архивного журнала
•	Потеря одного или нескольких неархивированных журналов и файла данных
•	Для открытия или восстановления базы данных используется резервная копия управляющего файла
ОАС
5-11 Copyright © 2006, Oracle. АН rights reserved.
Ситуации, вызывающие необходимость неполного восстановления
Обычно неполное восстановление всей БД выполняется в следующих ситуациях:
•	Потеря журналов. Зеркальных копий журналов не было, и произошла потеря журнала до его архивирования вместе с файлом данных. Восстановление не может пройти через потерянный журнал.
•	Отсутствующая архивная копия. Операция полного восстановления завершилась неудачно вследствие плохого либо отсутствующего архивного журнала. Восстановление можно завершить только на момент-в-прошлом, предшествующий применению архивного журнала.
•	Резервная копия управляющего журнала используется для открытия базы данных вместо текущей копии. Этот подход используется, когда:
-	все управляющие файлы потеряны, управляющий файл не может быть создан заново, и имеется в наличии двоичная копия управляющего файла;
зеркалирование управляющего файла (на различные диски) и сохранение текущей текстовой версии команды CREATE CONTROLFILE уменьшит вероятность потребности в использовании этого метода.
-	копируются из бэкапа все файлы базы данных, структура которой отлична от текущей, для восстановления к моменгу-в-прошлом.
При использовании старой копии управляющего файла требуется указать фразу USING BACKUP CONTORFILE в команде RECOVER DATABASE, чтобы выполнить восстановление и открыть базу данных.
Oracle Database 10g: Administration Workshop II 5-11
Типы неполного восстановления
Четыре типа неполного восстановления:
•	Восстановление по времени
•	Восстановление до прерывания
•	Восстановление с использованием номера изменений
•	Восстановление до журнала с заданным номером
Типы неполного восстановления
Восстановление по времени
С помощью фразы UNTIL TIME задается момент времени, до которого необходимо восстановить базу данных. Восстановление согласно этому методу прекращается после того, как в базе данных зафиксированы все изменения, внесенные до указанного момента времени. Этот подход используется, когда в данные были внесены нежелательные изменения либо удалены важные таблицы, и известно приблизительное время ошибки. Потери данных будут минимальны, если администратора уведомили немедленно. Хорошо протестированные программы, процедуры и защита данных должны предотвратить потребность в таком типе восстановления.
Восстановление до прерывания
Этот метод восстановления завершает свою работу, когда в командной строке восстановления вводится CANCEL (вместо имени журнального файла). Этот подход используется в следующих ситуациях:
•	Текущий журнальный файл либо журнальная группа повреждены и недоступны для восстановления. Зеркалирование, как правило, предотвращает потребность в таком типе восстановления.
Oracle Database 10g: Administration Workshop II 5*12
Типы неполного восстановления (продолжение)
•	Архивный журнал, фебующийся для восстановления, потерян. Частое резервирование и дублирование архивов (использование нескольких мест архивирования) должны предотвратить потребность в таком виде восстановления.
Восстановление с использованием номера изменений
С помошью фразы UNTIL CHANGE при восстановлении, управляемом пользователем, и фразы UNTIL SCN при восстановлении с помошью RMAN задается системный номер изменений (system change number - SCN} последнего зафиксированного изменения, до которого необходимо восстановиться. Восстановление согласно этому методу прекращается после того, как в базе данных зафиксированы все изменения, внесенные до указанного системного номера изменения (SON). Данный подход используется при восстановлении баз данных, работающих в распределенной среде. Вы можете также воспользоваться фразой UNTIL RESTORE POINT и задать псевдоним для SCN, называемый точкой восстановления (restore point}. Точки восстановлен ня будут рассмотрены далее в этом уроке.
Восстановление до журнала с заданным номером
Используя резервные объекты, сопровождаемые RMAN, можно задать номер последнего журнала, используемого для восстановления базы данных с помощью фразы UNTIL SEQUENCE. Восстановление согласно этому метод}' прекращается после того, как были применены все журналы до, но не включая журнал с заданным порядковым номером.
Oracle Database 10g: Administration Workshop II 5-13
Выполнение неполного восстановления, управляемого пользователем
•	Восстановление базы данных до определенного момента времени:...............
SQL> RECOVER PANABASE UNTIL
2 TIME ’2005* *1'2-14112:10:03'; 	....	-------------, г..	-----.-.-.-........
•	Восстановление базы данных до прерывания:
SQL> RECOVER DATABASE UNTIL CANCEL;
•	Восстановление с использованием резервной копии управляющего файла:
"""."i"™1 ir I	у1 J	..«luLuuwTu nnrnnnw;^	v 1 и и '	.. —;—--ртг-г..^ . .. I.
SQL> RECOVER DATABASE
2 UNTIL TIME ’2005-12-14:12:10:03’
3 USING BACKUP CONTROLFILE;.
5-14	___ Copyright © 2006, Oracle. Ah rights reserved.
Выполнение неполного восстановления, управляемого пользователем
Для выполнения неполного восстановления используется следующая команда: RECOVER [AUTOMATIC] DATABASE опция
где:
• AUTOMATIC: автоматически применяются архивные и оперативные журнальные файлы.
• опция:	UNTIL TIME ’YYYY-MM-DD:НН24:MI:SS*
UNTIL CANCEL
UNTIL CHANGE <целое>
USING BACKUP CONTROLFILE
Примечание: для автоматического применения журнальных файлов во время восстановления можно использовать команду SET AUTORECOVERY ON утилиты SQL*Plus, ввести AUTO после запроса журнала командой восстановления, либо использовать команду SQL RECOVER AUTOMATIC.
Oracle Database 10g: Administration Workshop II 5-14
Выполнение неполного восстановления, управляемого пользователем
5-15
1.
2.
3.
4.
5.
Остановите базу данных.
Скопируйте файлы данных из резервных объектов.	?
Смонтируйте базу данных.
Восстановите базу данных.
Откройте базу данных с опцией RESETLOGS.
Copyright © 2006, Oracle, AH rights reserved.
Выполнение неполного восстановления, управляемого пользователем (продолжение)
1. Если база данных открыта, то нужно завершить ее работу с использованием параметра NORMAL, IMMEDIATE или TRANSACTIONAL.
2. Восстановите все файлы данных из резервной копии (самой последней, если это возможно). Может быть, потребуется выполнить восстановление из резервной копии архивных журналов. Если достаточно дискового пространства, нужно выполнить восстановление архивных журналов из резервной копии на место LOG~_ARCHIVE__DEST либо использовать для изменения местоположения одну из команд:
ALTER SYSTEM ARCHIVE LOG START TO < местоположение> или
SET LOGSOURCE < местоположение^
3. Смонтируйте базу данных.
4. Восстановите базу данных, используя команду RECOVER DATABASE.
5. Для синхронизации файлов данных с управляющими и журнальными файлами необходимо открыть базу данных с использованием параметра RESETLOGS.
Oracle Database 10«р Administration Workshop II 5-15
Пример управляемого пользователем неполного восстановления до определенного момента времени
Сценарий:
*	Задание выполнилось с ошибкой и необходимо отменить его последствия.
•	Это произошло 15 минут назад и после этого активность операций в базе данных была небольшой.
•	Вы решаете выполнить неполное восстановление базы данных к состоянию, в котором она находилась 15 минут назад.
SQL> SHUTDOWN IMMEDIATE
$ ср /BACKUP/* /uOl/dbOl/ORADATA
SQL> STARTUP MOUNT
-RECOVER DATABASE UNTIL TIME ' 2005-11-28:11:44:
SQL> ALTER DATABASE OPEN RESETLOGS;

Пример управляемого пользователем неполного восстановления до определенного момента времени
Рассмотрим типичный сценарий применения метода восстановления UNTIL TIME:
• Текущее время - 12 дня, 28 ноября 2005 года,
• Было выполнено некорректное задание, затронувшее многие таблицы в нескольких схемах.
• Это произошло примерно в 11:45 утра.
• Активность обращений к базе данных минимальна, поскольку персонал находится в настоящий момент на собрании. Требуется восстановить состояние базы данных на момент перед выполнением задания.
Поскольку известно приблизительное время сбоя и структура базы данных с 11:44 утра не изменялась, можно использовать метод восстановления до определенного момента времени (UNTIL TIME):
1. Если база данных открыта, то нужно завершить ее работу с использованием параметра NORMAL, IMMEDIATE или TRANSACTIONAL.
2. Восстановите все файлы данных из резервной копии (самой последней, если это возможно). Можез быть, потребуется выполнить восстановление из резервной копии архивных журналов. Если достаточно дискового пространства, нужно выполнить восстановление архивных журналов из резервной копии на место
LOG__ARCHIVE__DEST либо использовать для изменения местоположения одну из команд: ALTER SYSTEM ARCHIVE LOG START TO < местоположение^ ИЛИ
SET LOGSOURCE < местоположение^
3. Смонтируйте базу данных»
5-16 Copyright © 2006, Oracle. Al? rights reserved.
Oracle Database 10g: Administration Workshop II 5-16
Пример управляемого пользователем неполного восстановления до определенного момента времени (продолжение)
4.	Восстановите базу данных :
SQL> recover database until time ’2005-11-28:11:44:00’ ORA-00279: change 148448 ... 11/27/05 17:04:20 needed for thread ...
Media recovery complete.
5.	Для синхронизации файлов данных с управляющими и журнальными файлами необходимо открыть базу данных с использованием параметра RESETLOGS:
SQL> alter database open resetlogs;
SQL> archive log list
Oldest online log sequence 0
Next log sequence to archive X
Current log sequence 1.
Если восстановление завершилось успешно и резервирование выполнено, можно уведомить пользователей, что база данных доступна для использования, а все данные, введенные после времени, на которое выполнено восстановление (утро, 11:44), должны быть введены повторно.
Oracle Database 10g: Administration Workshop II 5-17
Пример управляемого пользователем неполного восстановления до прерывания
Сценарий похож на предыдущий, за исключением следующего:
•	Журналы не мультиплексированы
•	Один из оперативных журналов отсутствует
•	Отсутствующий журнал не был записан в архив
•	Журнал содержал информацию начиная с 11:34 утра
•	Введенные в течение 26 минут данные будут потеряны
•	Пользователи смогут повторно ввести свои данные
5-18 Copyright © 2006, Oracle. AU rights reserved.
Пример управляемого пользователем неполного восстановления до прерывания
После поиска в директории было обнаружено, что журнал Log2a. г do отсутствует и не был записан в архив. Поэтому невозможно продолжить восстановление, начиная с этого журнала.
Результат запроса V$LOG__HISTORY подтверждает отсутствие архивного журнала номер 48 (log2a. г do):
SQL> SELECT * FROM vSlog__history;
RECID	STAMP	.. FIRST_CHANGE	FIRST_TIME
1	318531466 . .	..	88330	05-11-15:12:43
47	319512880	..	. .	309067	05-11-28:11:26
Oracle Database 10g: Administration Workshop II 5-18
Пример управляемого пользователем неполного восстановления до прерывания
Восстановите следующим образом базу данных:
1.	Остановите БД.
2.	Восстановите все файлы данных из самой последней резервной копии.
3.	Смонтируйте базу данных.
4.	Выполните команду recover database until CANCEL.
5.	Выполните команду alter database open resetlogs, чтобы открыть базу данных.
5-19 Copyright © 2006, Oracle. AH rights reserved.
Пример управляемого пользователем неполного восстановления до прерывания (продолжение)
Шаги восстановления до прерывания такие же, как и при восстановлении до определенного времени, за исключением шага, на котором выполняется команда RECOVER DATABASE. При выполнении команды RECOVER DATABASE UNTIL CANCEL восстановление выполняется до тех пор, пока предоставляется очередной журнальный файл. Чтобы остановить восстановление, введите CANCEL, когда будет запрошено имя журнального файла, на котором необходимо прервать процесс восстановления.
Oracle Database 10g: Administration Workshop II 5-19
Неполное восстановление БД посредством RMAN
1.	Смонтируйте базу данных.
2.	Выделите несколько каналов для распараллеливания процесса.
3.	Выполните копирование из резерва всех файлов данных.
4.	Восстановите базу данных, используя предложения until time, until sequence или UNTIL SCN.
5.	Откройте базу данных с параметром RESETLOGS.
5-20 Copyright © 2006, Oracle, All rights reserved.j
Неполное восстановление БД посредством RMAN
С помощью RMAN можно выполнить восстановление на момент-в-прошлом, до SCN или номера оперативного журнала.
Неполное восстановление вызывает необходимость открытия БД с опцией RESETLOGS. В результате использования этой опции оперативным журналам присваивается новая временная метка и системный номер изменений, устраняя таким образом возможность повреждения файлов данных путем применения устаревших архивных журналов. Нельзя восстановить отдельные файлы данных до момента, предшествующего открытию БД с параметром RESETLOGS, а другие - на момент после открытия БД с параметром RESETLOGS. Необходимо восстановить все файлы данных к одному и тому же SCN. Единственное исключение составляют файлы данных, переведенные в автономное состояние с параметром normal или находящие в состоянии ‘только чтение’. Такие файлы можно оставить в состоянии ‘только чтение’ или в автономном состоянии после открытия БД с опцией RESETLOGS, так как в журналах нет транзакционных изменений для таких файлов данных.
Примечание: RMAN можно использовать для восстановления файлов данных из резерва только, когда когда резервный объект был получен с помощью RMAN или же после получения резервной копии вручную она была зарегистрирована в RMAN.
Oracle Database 10g: Administration Workshop II 5-20
Пример неполного восстановления посредством RMAN с использованием предложения until time
RMAN> RUN {
2> SET UNTIL TIME = ’2005-11-28:11:44:00';
3> RESTORE DATABASE; *
4> RECOVER DATABASE;
5> ALTER DATABASE OPEN RESETLOGS; )
5-21	Copyright © 2006, Oracle. All rights reserved.
Пример неполного восстановления посредством RMAN с использованием предложения until time
В 12:00 дня в четверг 28 ноября 2005 года обнаруживается, что ошибочно уничтожена таблица ОЕ .ORDERS. Поскольку известно приблизительное время сбоя, и структура базы данных не изменялась с 11:44 утра, при восстановлении можно использовать метод UNTIL TIME (“по времени”).
1.	Если база данных открыта, выполните чистую остановку.
2.	Смонтируйте целевую базу данных. Не осуществляйте резервирования базы данных в течение процедуры восстановления.
3.	Убедитесь, что переменные среды NLS__LANG и NLS__DATE__FORMAT установлены надлежащим образом:
$NLS__LANG=;american_anierica. we8iso8859pl5 $NLS__DATE_FORMAT- ’ YYYY-MM-DD: HH24:MI:SS’
4.	Запустите утилиту Recovery Manager и соединитесь с целевой базой данных.
$rman target rman/rmanQORCL
5.	Для повышения производительности можно выделить несколько каналов: RMAN> run {allocate channel cl type DISK;
2> allocate channel c2 type DISK;
Oracle Database 10g: Administration Workshop II 5-21
Пример неполного восстановления посредством RMAN с использованием предложения until time (продолжение)
6.	Установите время для восстановления и произведите с помощью команд RMAN копирование всех файлов из резервной копии. Утилита RMAN будет выполнять отбор файлов, используя дату и время, указанные в команде SET UNTIL:
RMAN> . , set until time 2005-11-28:11:44:00 *;
RMAN> ... restore database;
Примечание: если необходимо копирование из резерва архивных журнальных файлов в новое место, используйте команду RMAN SET ARCHIVE LOG
DESTINATION TO <местоположение>.
7.	Выполните восстановление базы данных до времени, указанного в команде SET UNTIL:
RMAN> ... recover database;
8.	Откройте базу данных, используя параметр RESETLOGS :
RMAN> ».. alter database open resetlogs; }
9.	Убедитесь, что таблица восстановлена, и выполните резервирование.
10.	Проинформируйте пользователей, что база данных готова к работе. Они должны ввести заново все данные, которые не были зафиксированы перед сбоем.
Oracle Database 10g: Administration Workshop II 5-22
Пример неполного восстановления посредством RMAN с использованием предложения until sequence
RMAN> RUN {
2> SET UNTIL SEQUENCE 120‘THREAD 1;
3> ALTER DATABASE MOUNT; f
4> RESTORE DATABASE;
5> RECOVER DATABASE; # восстановление до 119 журнала включительно
0> ALTER	OPEN
5-23
Copyright © 2006, Oracle. All rights reserved.
Пример неполного восстановления посредством RMAN с использованием предложения until sequence
В предложении UNTIL SEQUENCE указывается порядковый номер журнала и потока для ограничения процесса восстановления сверху. RMAN выполняет операции по восстановления до. но не включая журнал с заданным порядковым номером. В примере, приведенном на слайде, предполагается, что журнал с порядковым номером 120 потерян, и база данных должна быть восстановлена с использованием доступных архивных журналов.
Oracle Database 10g: Administration Workshop II 5-23
Неполное восстановление с использованием Enterprise Manager
Database Instance;. prcl-Qracle.com > Perform Recovery
Perform Recovery
Whole Database Recovery
Recover to the current time or a previous pcint-Mme , Perform Whole Database Recovery)
й£з&? чяй he	fe>>- the «fet feeble hsfktip
Г Restore all datafiles
Spwruy r«:K. ЗСЛ or rfq^ncs. the harKup t;te: al <;? pfe io lr-al fes
. jr' i^oreo st ' иЬл'р'Чл-'ъ^» 'й .ptf/t ~t
C Recover from previously restored datafiles
Object Level Recovery
Object Type	Perform Object Level Recowry)
Operation Type Recover to current time
.>:& h# >	у--, t
Г Restore datafiles
й'р&с-У fee. SC?y or k~> sequsrae the hado& taken Л 6? pfcr fc= ife fee he a?*,U fe recovery
ч be	s-. thh- upera&n
Г Recover from previously restored datafiles
Г Block Recovery
' -> <: -< -
5-24 Copyright © 2006, Oracle. All rights reserved.
Неполное восстановление с использованием Enterprise Manager
Чтобы восстановить всю базу данных на определенный момент времени, выберите на странице Perform Recovery опцию “Recover to the current time or a previous point-intime” Затем щелкните на кнопке Perform Whole Database Recovery.
На странице Perform Recovery также доступна опция “Restore all datafiles”. Ее использование позволяет извлечь из резервных объектов все файлы БД в том состоянии, в котором они находились во время предыдущего резервирования.
Последняя опция “Recover from previously restored datafiles” позволяет выполнить подкат вперед базы данных к некоторому моменту времени.
Oracle Database 10g: Administration Workshop II 5*24
Неполное восстановление и сигнальный файл
*	Проверяйте сигнальный файл до и после восстановления
	В сигнальном файле содержится информация об ошибках, подсказки и системные номера изменений (SCN) ?
•	В сигнальный файл пишется подтверждение того, что процесс восстановления завершился успешно
5-25	_____________Copyright © 2006, Oracle. Ail rights reserved.
Неполное восстановление и сигнальный файл
Во время восстановления информация о выполнении хранится в сигнальном файле.
Этот файл необходимо всегда проверять до и после восстановления. Например:
$ vi $ORACLE__BASE/admin/orcl/bdump/alert__orcl. log
ALTER DATABASE RECOVER database until cancel
Media Recovery Start
ORA-279 signalled during: ALTER DATABASE RECOVER database until cancel
Fri Aug 26 15:22:46 2005
ALTER DATABASE RECOVER CONTINUE DEFAULT
Fri Aug 26 15:28:27 2005
ALTER DATABASE RECOVER CANCEL
Fri Aug 26 15:28:27 2005
Media Recovery Canceled
Completed: ALTER DATABASE RECOVER CANCEL
Oracle Database 10g: Administration Workshop il 5-25
Точки восстановления
Точка восстановления:
•	Служит в качестве псевдонима для SCN или заданного момента времени
•	Хранится в управляющем файле
•	Может использоваться в командах:
-	RECOVER DATABASE
before load
-	FLASHBACK DATABASE
-	FLASHBACK TABLE	I / /
—	. t_____________________________
(7) I SQL> CREATE RESTORE POINT beforeJLoad;
2) RMAN> RECOVER DATABASE ШТ-IL RESTORE POINT before load;
ЧшХ |	'-'t	„ .	... .	..Ж
5-26
Copyright © 2006, Oracle. All rights reserved.
Точки восстановления
При создании обычной точки восстановления (normal restore point) задается имя для определенного момента времени или SCN. Оно служит в качестве закладки или псевдонима, которым можно воспользоваться в командах, распознающих фразу RESTORE POINT.
Перед выполнением операции, результаты которой, возможно, придется отменить, вы можете создать обычную точку восстановления. Имя точки восстановления и SCN записываются в управляющий файл. Если позднее, вам понадобиться сослаться на этот момент времени в команде RECOVER DATABASE, это можно будет сделать без указания временной метки или значения SCN. При использовании таких возможностей, как Flashback Database, Flashback Table и восстановление на момент времени, можно ссылаться на целевое время с помощью имени точки восстановления, а не временного выражения или SCN. Определение обычной точки восстановления перед операцией, которая будет после завершения отменена, устраняет необходимость предварительной ручной записи SCN, а также поиск корректного SCN с помощью Flashback Query. Обычные точки восстановления очень нересурсоемкие. Управляющий файл может сопровождать одну запись о тысячах точках восстановления, не оказывая существенного влияния на производительность базы данных. Со временем устаревающие точки восстановления удаляются из управляющего файла, если удаление не производится вручную. Поэтому их использования не требует дополнительного сопровождения.
Примечание: использование точек восстановления в командах FLASHBACK рассматривается в уроке “Флэшбэк”.
Oracle Database 10g: Administration Workshop SI 5-26
Неполное восстановление: указания
Заранее планируйте и проверяйте сценарии восстановления.
Изучайте и проверяйте необходимость неполного восстановления.
Точно выполняйте все шЬги по восстановлению. Выполняйте резервное копирование всей базы данных до и после восстановления.
Всегда проверяйте, успешно ли завершилось восстановление.
Используйте преимущества точек восстановления.
5-27
Copyright © 2006, Oracle. АП rights reserved.
Неполное восстановление: указания
•	Очень важно точно следовать всем рекомендациям по восстановлению, поскольку большинство проблем с восстановлением вызвано ошибками администраторов во время неполного восстановления.
•	Возможен только подкат вперед по транзакциям к желаемому моменту времени, но не откат назад к требуемому времени. По этой причине необходимо восстановление всех файлов из резервной копии для того, чтобы вернуть состояние базы данных на момент-в-прошлом. Если при восстановлении всех файлов данных из резервной копии произойдет сбой, несинхронизированную базу данных нельзя будет открыть.
•	Перед неполным восстановлением необходимо выполнить резервирование всех файлов закрытой базы данных (включая управляющие файлы и журналы). Это поможет в следующих случаях:
-	Восстановление после ошибки. Если восстановление завершается неудачно (например, восстановление завершилось раньше требуемой точки восстановления), журналы и управляющие файлы не могут использоваться для следующего восстановления, если у этих файлов нет резервной копии.
-	Экономия времени в случае неудачного завершения восстановления. В этой ситуации, можно выполнить восстановление файлов данных из новой резервной копии, а не из предыдущей резервной копии, использование которой потребует применения архивных журналов.
Oracle Database 10g: Administration Workshop II 5-27
Рекомендации по неполному восстановлению (продолжение)
Примечание. Если резервирование всей базы данных не было выполнено, нужно, по крайней мере, выполнить архивирование текущего журнала:
SQL> ALTER SYSTEM ARCHIVE LOG CURRENT
и резервирование управляющего файла:
SQL> ALTER DATABASE BACKUP CONTROLFILE TO ’/uOl/data/backup.ctl’;
*	Необходимо производить резервирование всей базы данных при закрытой базе данных после успешного восстановления. Резервная копия сэкономит много часов, если до следующего планового резервирования потребуется восстановление. При использовании базы данных Oracle 10g этот шаг стал необязателным.
•	Перед открытием системы для доступа пользователей необходимо убедиться, что в результате восстановления сбой был устранен, на случай, если восстановление завершится неудачно и потребуется его повторение.
Рассмотрим следующий прмер:
*	У базы данных при номере журнала 14 имеются архивные журналы с номерами от 2(arch_2.гdo) до 13(archil3.гdo).
*	После выполнения неполного восстановления создается новая инкарнация базы данных, номер журнала устанавливается на 0.
•	Архивные журналы от arch__2. г do до arch_l 3 . г do теперь являются частью старой инкарнации базы данных.
•	После нескольких переключений журнала архивный журнал arch__2. г do будет перезаписан и будет заархивирован вместе со всеми остальными архивами (включая старые архивные журналы, начиная с arch_3. rdo до archil 3 . rdo).
♦	На более поздней стадии, если восстановление потребует архив arch_6 . rdo, то потребуется архивный журнал, полученный путем восстановления из резервной копии, соответствующей правильной инкарнации базы данных, иначе произойдет ошибка.
Для предотвращения такого перемешивания архивных журналов используйте шаблон
%г в параметре инициализации log__archive__f ormat. Это:
•	приводит к автоматическому включению идентификатора сброса журналов (Resetlogs ID) в имена архивных журнальных файлов;
•	гарантирует уникальные имена архивных журналов в разных инкарнациях базы данных.
Oracle Database 10g: Administration Workshop II 5-28
5-29
Восстановление управляющего файла из автобэкапа
:RMAN> RESTORE SPFILE то
’/oradata/spfile.bak* FROM AUTOBACKUP;
Recovery Manager (RMAN)
ФлэшчЯбласть восстановления
Управляющий файл
RECOVER DATABASE ;
RESETLOGS;
База данных
Г10ЛЬЗ,упр. RMAN CLI EM Полное Неполное > Упр.файл
RO TBS
ALTER TABtESRACE temp ADD TEMPFILE. » Л
Copyright © 2006, Oracle. AH rights reserved.

Восстановление управляющего файла из автобэкапа
Если не используется каталог восстановления, следует сконфигурировать автоматическое резервирование управляющего файла. Это позволяет при необходимости быстро скопировать из бэкапа управляющий файл. Для такой операции применяются одни и те же команды, независимо от того, используется или нет флэш-область восстановления.
Однако при использовании флэш-области восстановления RMAN неявно выполняет перекрестную проверку (crosscheck) резервных наборов и копии образов, перечисленных в управляющем файле, а также заносит (catalog) в извлеченный из бэкапа управляющий файл сведения об отсутствующих в нем файлах, которые он находит во флэш-области восстановления. В результате управляющий файл лучше подходит для восстановления остальной части базы данных.
Примечание. Резервные объекты на ленте не подвергаются перекрестной проверке после копирования из бэкапа управляющего файла. При использовании резервных объектов на ленте для них необходимо выполнить перекрестную проверку после копирования из бэкапа управляющего файла и монтирования базы данных.
Oracle Database 10g: Administration Workshop II 5«29
Восстановление управляющего файла из автобэкапа (продолжение)
Чтобы скопировать управляющий файл из автобэкапа, требуется перевести базу данных в состояние NOMOUNT, а затем выполнить команду RESTORE CONTROLFILE FROM AUTOBACKUP:
RMAN> SHUTDOWN IMMEDIATE;
RMAN> STARTUP NOMOUNT;
RMAN> RESTORE CONTROLFILE FROM AUTOBACKUP;
RMAN производит поиск файла, содержащего автоматически зарезервированный управляющий файл. При обнаружении такого файла RMAN извлекаем из него управляющий файл и копирует его во все места расположения, перечисленные в параметре инициализации CONTROL__FILES.
Если каталог восстановления существует, тогда необязательно задавать DBID и использовать управляющий файл из автобэкапа для последующего восстановления.
Можно ввести команду RESTORE CONTROLFILE без параметров:
RMAN> RESTORE CONTROLFILE;
При выполнении этой операции экземпляр должен быть в состоянии NOMOUNТ и RMAN должен быть подсоединен к каталогу восстановления. Восстанавливаемый управляющий файл будет копироваться во все места расположения, перечисленные в параметре инициализации CONTROL__FILES.
При потере SPFILE процедура его восстановления схожа с процедурой восстановления управляющего файла из автобэкапа. Сначала требуется задать DBID базы данных, а затем воспользоваться командой RESTORE SPFILE FROM AUTOBACKUP.
После запуска экземпляра с восстановленным файлом серверных параметров можно с помощью RMAN извлечь из автобэкапа управляющий файл. Затем смонтировать экземпляр с восстановленным управляющим файлом, в котором содержится информация, позволяющая выполнить операции restore и recover для базы данных.
После восстановления из бэкапа управляющих файлов необходимо выполнить полное восстановление после потери носителя, а затем открыть базу данных с опцией RESETLOGS.
Oracle Database 10g: Administration Workshop II 5-30
Создание нового управляющего файла
SQL* ALTER DATABASE BACKUP CONTROLFILE TOTRACE;
5-31 Copyright © 2006, Oracle. All rights reserved.
Создание нового управляющего файла
Необходимость пересоздания управляющего файла может и не возникнуть, если сконфигурировано автоматическое резервирование управляющего файла.
По команде alter database backup controlfile to trace генерируется пользовательский трассировочный файл, содержащий команды SQL для повторного создания управляющего файла. Скопируйте трассировочный файл в скрипт-файл, например, new_control. sgl, удалите в нем заголовок с информацией о выполненной трассировке (до строки перед командой startup nomount) , а также внесите требуемые изменения, например, увеличьте значения параметров maxdatafiles, maxlogfiles и т.д. В этом файле два варианта скрипта для создания управляющего файла, отличающиеся опциями NORESETLOGS (сохранение старых оперативных журналов) и RESETLOGS (сброс и начало нумерации оперативных журналов с 1). Обычно выбирается первый вариант (до строки с комментарием начала второго варианта скрипта: - Set #2. RESETLOGS case).
Выполните скрипт, создающий новый управляющий файл. Для этого вы должны подсоединиться как пользователь с привилегиями SYSDBA к опущенной базе данных с правильно установленным параметром окружения ORACLE__SID, в котором задается имя запускаемого экзем пляра.
Oracle Database 10g: Administration Workshop II 5-31
Создание нового управляющего файла
Эа-грд ? in :>/ ',г arcLaraclexarn > Centr'd Files
Control Fites
"General AdvancedTRecord Section
BatKupTo T rat e)
Control File Mirror Images
Oracle strongly recommends that your database has a minimum of two control files and that they are located on separate disks. If a control file is damaged due to a disk failure, It could be restored using the intact copy of the control file from the other disk. You can specify their location in the database's initialization parameter file.
ЭДМ	FF
VALID	conrrolOl.ctl
V AL ID	controi02.ctl
VALID	controidactj
Ffellreciury
/uO 1 /app/oracle/oradatatorcl/
/uD 1 /app/oracle/oradata/orcl/
/u01/app/oracle/oradatatorci/
General \ Advanced Record Section
.>...ж...... ж .	»	ORACL.G
5-32 Copyright ©2006, Oracle. All rights reserved.
Создание нового управляющего файла (продолжение)
Database Control Console позволяет выполнять сопровождение управляющих файлов базы данных. На странице Administration выберите в секции Storage ссылку Control Files.
На странице Control Files General выводятся имена и места расположения зеркально сопровождаемых сервером Oracle копий управляющих файлов. Используйте кнопку Backup to Trace, чтобы создать трассировочный файл, содержащий скрипт для пересоздания управляющего файла.
Можно также самостоятельно написать команду CREATE CONTROLFILE, но при этом необходимо правильно указать:
•	полные имена и размеры оперативных журнальных файлов;
•	полные имена всех файлов данных базы данных, в том числе файлов табличных пространств SYSTEM И SYSAUX.
Oracle Database 10g: Administration Workshop II 5-32
Восстановление табличных пространств
Польз.упр. RMAN CLI ЕМ Полное Неполное© Упр.файл > ROTBS
с доступом только на чтение
Случай 1
Случай 2
Случай 3
В случае потери управляющего файла для восстановления будет использоваться
Резервирование состояния Откази табличного восстановления зарезервированным в данное время пространства	управляющий файл
Восстановление табличных пространств с доступом только на чтение
Перевод табличного пространства в состояние ‘только чтения’ препятствует записи в файлы данных этого табличного пространства, независимо от уровня привилегий пользователя для проведения изменений. Главное ~ устранить необходимость резервирования и восстановления больших, статических порций информации БД. Табличные пространства ‘только чтения’ также защищают данные за прошлый период от изменений пользователей. Так как такие табличные пространства никогда не изменяются, их можно разместить на устройствах CD-ROM или WORM (write once, read many; однократная запись и многократное чтение).
Метод восстановления табличного пространства ‘только чтения’ зависит от того, какие резервные объекты доступны, а также от того, переводилось ли табличное пространство в состояние ‘только чтения’ или чтение-запись в рассматриваемом периоде.
Случай L Восстанавливаемое табличное пространство является доступным только на чтение, кроме того оно находилось в этом же состоянии при проведении последнего резервирования. В этом случае можно просто выполнить копирование табл шитого пространства из резервной копии. Нет необходимости в применении журнальной информации.
Oracle Database 10g: Administration Workshop II 5-33
Восстановление табличных пространств с доступом только на чтение (продолжение)
Случай 2. Восстанавливаемое табличное пространство является доступным для чтения-записи, но находилось в состоянии доступном только на чтение при проведении последнего резервирования. В этом случае может возникнуть необходимость выполнить копирование табличного пространства из резервной копии и применить информацию журнала с того момента времени, когда табличное пространство было переведено в состояние чтение-запись.
Случай 3» Восстанавливаемое табличное пространство является доступным только на чтение, ио находилось в состоянии доступном на запись при проведении последнего резервирования. Так как всегда следует проводить резервирование табличного пространства после его перевода в состояние ‘только чтения’, такая ситуация не должна возникнуть. Тем не менее, если это случилось, нужно обязательно выполнить копирование табличного пространства из резервной копии и произвести его восстановление вплоть до момента времени, когда табличное пространство было переведено в состояние ‘только чтения*.
Во всех трех случаях, когда недоступен текущий управляющий файл, звездочка означает, какой бэкап управляющего файла следует использовать для восстановления. Это необходимо, поскольку, когда используется бэкап управляющего файла, процесс восстановления требует открытия базы данных с параметром RESETLOGS. При таком открытии обновляются заголовки файлов данных, а писать в файлы данных в состоянии 'только чтение* нельзя.
Oracle Database 10g: Administration Workshop II 5-34
Вопросы восстановления табличных пространств с доступом только на чтение
Табличным пространствам с доступом только на чтение необходимо уделить специальное внимание при:
•	Повторном создании управляющего файла
*	Переименовании файлоцданных
•	Использовании резервной копии управляющего файла

5-35 Copyright © 2006, Oracle. АН rights reserved,>
Вопросы восстановления табличных пространств с доступом только на чтение
Повторное создание управляющего файла
Если требуется заново создать управляющий файл по команде CREATE CONTROL FILE, а БД имеет табличные пространства с доступом только на чтение, нужно выполнить специальные действия. Поскольку табличное пространство находится в состоянии ‘только чтение’, в него не вносятся изменения и поэтому предполагается, что его не надо восстанавливать. Файлы такого табличного пространства не включаются в создаваемый управляющий файл. Вследствие этого, когда база данных запускается с новым управляющим файлом, производится перекрестная проверка с файлами, сведения о которых хранятся в словаре данных. Обнаруженные в словаре данных файлы, отсутствующие в управляющем файле, добавляются в управляющий файл с именами вида: MISSINGnnnnn. После открытия базы данных такие файлы необходимо переименовать в управляющем файле, используя команду ALTER DATABASE RENAME FILE:
ALTER DATABASE RENAME FILE ’MISSING00005’
TO ’/u01/app/oracle/oradata/orcl/example01.dbf’; ALTER TABLESPACE "EXAMPLE" ONLINE;
Корпорация Oracle рекомендует включить в RMAN авторезервирование управляющего файла. Это устранит необходимость выполнения таких искусственных приемов при восстановлении управляющего файла, потребность в которых возникает, если резервирование было выполнено по команде ALTER DATABASE BACKUP CONTROLFILE TO TRACE.
Oracle Database 10g: Administration Workshop II 5-35
Вопросы восстановления табличных пространств с доступом только на чтение (продолжение)
Переименование файла данных
Если невозможно выполнить копирование файла данных табличного пространства с доступом только на чтение из резервной копии в правильное местоположение, для изменения расположения файла можно использовать команду ALTER DATABASE RENAME.
Резервная копия управляющего файла
Операция восстановления с использованием фразы USING BACKUP CONTROLFILE при наличии табличного пространства ‘только чтения’ на носителе, доступном только на чтение, может отличаться низкой производительностью и сопровождаться ошибками. Такая ситуация происходит, если в управляющем файле табличное пространство отражается как доступное на чтение-запись, так как таким оно было, когда выполнялось резервирование управляющего файла. В ходе операции восстановления после потери носителя будет сделана попытка записи в файлы табличного пространства. Для носителя, доступного только на чтение, база данных выдаст ошибку, в которой будет сообщено о невозможности записи в файлы.
Ниже приведены альтернативные решения проблемы восстановления файлов на носителе, доступном только на чтение, с использованием резервной копии управляющего файла:
♦	Переведите файлы данных табличного пространства ‘только чтения5 в автономное состояние перед восстановлением с использованием резервной копии управляющего файла, а затем верните файлы в оперативное состояние в конце операции восстановления после потери носителя.
•	Используйте корректную версию управляющего файла для восстановления. Если табличное пространство должно быть в состоянии ‘только чтения’ по завершению операции восстановления, тогда необходим управляющий файл, полученный на момент времени, когда табличное пространство было в состоянии ‘только чтения’. Напротив, если табличное пространство должно быть в состоянии чтения-запись в конце операции восстановления, тогда необходим управляющий файл, полученный на момент времени, когда табличное пространство было доступно для чтения-записи.
Восстановление базы данных Database
Если файл в состоянии ‘только чтение’ в момент времени, к которому восстанавливается база данных, тогда RMAN не восстанавливает этот файл. Чтобы изменить такое функционирование и сделать так, чтобы RMAN проверил заголовки существующих в данное время файлов данных, задайте в команде RECOVER DATABASE опцию CHECK READONLY.
Oracle Database 10g: Administration Workshop II 5-36
Итоги
•	Выполнение полного и неполного
восстановления, управляемого пользователем
•	Выполнение полного и неполного восстановления с использованием RMAN
•	Ситуации, в которых необходимо неполное восстановление <
•	Неполное восстановление на основе времени, SCN, номера журнала, точек восстановления и метода прерывания процесса восстановления
•	Восстановление с использованием автоматически зарезервированного управляющего файла
•	Использование Enterprise Manage для выполнение восстановления
•	Восстановление табличных пространств с доступом только на чтение

Copyright © 2006, Oracle. АН rights reserved.
Oracle Database 10g: Administration Workshop il 5-37
Обзор практического занятия: выполнение неполного восстановления
• Восстановление на момент времени в прошлом с использованием RMAN
Oracle Database 10g: Administration Workshop II 5-38
Флэшбэк
Copyright © 2006, Oracle. All rights reserved.
Рассматриваемые вопросы
Корзина Flashback БД Конфиг. FB DB Монит, FB DB Гараи, т.восст.
•	Запрос к корзине удаленных объектов
•	Конфигурирование Flashback Database
•	Выполнение операции Flashback Database для отката БД к определенному моменту времени
•	Мониторинг статистик журнала flashback
•	Включение и отключение функциональной возможности Flashback Database
•	Использование мастера восстановлений Enterprise Manager для выполнение операции Flashback Database
•	Использование гарантированных точек восстановления в операции Flashback Database
6-2 Copyright©2006, Oracle. All rights reserved.
Oracle Database 10g: Administration Workshop II 6*2
6-3
Copyright © 2006, Oracle. All rights reserved.
ORACLE
Обзор технологии флэшбэк
Технологию отката или использования данных об изменениях в прошлом (Flashback, флэшбэк) следует применять при возникновении логических искажений в базе данных Oracle, когда требуется простое и быстрое их устранение.
В случае человеческих ошибок трудно выявить объекты и строки, на которые оказала воздействие неверная транзакция. Технология флэшбэк помогает диагностировать то, как ошибочные данные были внесены в базу данных. После этого вы можете устранить последствия искажения данных.
Вы можете просмотреть транзакции, в которых были выполнены изменения определенной строки, просмотреть все версии данной строки в указанном периоде времени, а также просмотреть данные в том виде, в каком они отображались в определенный момент в прошлом. Вышеприведенная таблица показывает типичные случаи использования технологий флэшбэк.
Операция Flashback Database использует журнал возврата {flashback logs),. Flashback Drop корзину удаленных объектов (recycle bin). Все остальные методы используют данные отмены (undo data).
Не все возможности флэшбэк изменяют базу данных. Некоторые из них ~~ это просто методы запроса версий данных. Они помогают исследовать проблему и определить цель восстановления. В результате таких запросов можно выполнить одно из двух:
• определить, какой тип операций flashback следует произвести в БД для устранения проблемы;
♦ направить результаты запросов в команду INSERT. UPDATE или DELETE, что позволит простым образом исправить ошибочные данные.
Oracle Database 10g: Administration Workshop II 6-3
Flashback Drop и корзина удаленных объектов
Flashback Drop и корзина удаленных объектов
В предыдущих версиях базы данных Oracle после ошибочного удаления таблицы требовалось восстановление базы данных к предыдущему до удаления таблицы моменту времени. Эта процедура часто занимала мною времени и приводила в результате к потере изменений, выполненных в других транзакциях.
В Oracle Database 10g введена возможность восстановления удаленных объектов {flashback drop). которая позволяет отменить команду DROP TABLE без помощи традиционного метода восстановления на момент времени.
Примечание. Параметр инициализации RECYCLEBIN используется для включения (ON) или отключения (OFF) функциональной возможности Flashback Drop. Если параметр имеет значение OFF, тогда удаленные таблицы не попадают в корзину (recycle bin), Если же значение этого параметра ON. тогда удаляемые таблицы помещаются в корзину и могут быть восстановлены. По умолчанию для параметра RECYCLEBIN установлено значение ON.
Oracle Database 10g: Administration Workshop II 6-4
6-5
Copyright © 2006, Oracle. AH rights reserved.
Корзина удаленных объектов
Если отключена функциональная возможность ведения корзины (RECYCLED IN^OFF), тогда при удалении таблицы немедленно освобождаегся пространство, занимаемое таблицей и зависимыми от нее объектами (т.е., оно может быть использовано для других объектов).
Когда корзина активна (RECYCLEBIN-ON), тогда при удалении таблицы пространство, занимаемое таблицей и зависимыми от нее объектами, немедленно не освобождается, хотя появляется в словаре DBA__FREE__SPACE. Вместо этого удаленные объекты временно помещаются в корзину (recycle bin) и все еще принадлежат своему владельцу.
Пространство, занимаемое объектами корзины никогда автоматически не освобождается, если только не возникнет проблема нехватки пространства. Это позволяет восстановить объекты из корзины в течение максимально возможного отрезка времени.
При удалении и перемещении таблицы в корзину она и связанные с ней объекты и ограничения получают новые имена, сгенерированные системой. Это необходимо для устранения конфликтов имен, которые могут возникнуть, если позднее создать новую таблицу с таким же именем.
Корзина сама по себе представляет собой таблицу словаря, в которой сопровождаются связи между первоначальными именами удаленных объектов и имена, сгенерированными для них системой. Запросить содержимое таблицы можно с помощью представления DBA__RECYCLEBIN.
Oracle Database 10g: Administration Workshop II 6-5
Корзина удаленных объектов (продолжение)
Диаграмма на слайде иллюстрирует описанную выше новую функциональную возможность:
1.	Вы создали таблицу EMPLOYEES в своем табличном пространстве.
2.	Вы удалили таблицу EMPLOYEES.
3.	Экстенты, занимаемые таблицей EMPLOYEES, теперь рассматриваются в качестве свободного пространства.
4.	Таблица EMPLOYEES переименована и добавлена в корзину.
Oracle Database 10g: Administration Workshop 0 6-6
Восстановление удаленных объектов из корзины
•	Восстанавливаются удаленные таблицы и зависимые от них объекты.
•	Если имеется несколько записей в корзине с одинаковым первоначальным именем:
-	Используйте уникальные-сгенерированные системой имена для восстановления определенной версии объекта.
-	При восстановлении таблиц с одинаковыми первоначальные имена в соответствии с алгоритмом LIFO извлекается последняя удаленная таблица.
• Измените первоначальное имя таблицы, если оно используется в настоящее время.
FLASHBACK TABLE <имя__таблицы>
ТО BEFORE DROP [RENAME ТО <новое имя>]
6-7	Copyright © 2006, Oracle. АП rights reserved

Восстановление удаленных объектов из корзины
Команда FLASHBACK TABLE . .. ТО BEFORE DROP используется для восстановления из корзины таблицы и всех зависимых от нее объектов. Можно указывать либо первоначальное имя таблицы, либо имя, сгенерированное системой и назначенное объекту при его удалении.
Если задается первоначальное имя и в корзине несколько объектов с таким именем, тогда занесенный последним в корзину объект восстанавливается первым (Last In First Out -LIFO). Если необходимо извлечь более старую версию таблицы, можно указать сгенерированное системой имя таблицы или же выполнять команды FLASHBACK TABLE ... ТО BEFORE DROP, пока не будет выбрана нужная таблица.
При извлечении таблицы с первоначальным именем, совпадающим с именем новой таблицы, созданной в той же схеме после удаления старой таблицы, выдается ошибка, если только не указана фраза RENAME ТО.
Примечание. При извлечении таблицы из корзины восстанавливаемые индексы, триггеры и ограничения сохраняют имена, которые они имели в корзине. Поэтому целесообразно запросить данные из корзины и представления dba__constraints перед операцией FLASHBACK TABLE. После этого можно переименовать восстанавливаемые индексы, триггеры и ограничения и дать им более подходящие имена.
Oracle Database 10g: Administration Workshop II 6-7
Автоматическое использование
пространства корзины
Авторасширение (з)
Copyright © 2006, Oracle. All rights reserved.
Автоматическое использование пространства корзины
До тех пор, пока пространство, используемое корзиной, не потребуется базе данных для других целей, возможно восстановление удаленных объектов. Существуют следующие варианты освобождения пространства корзины, занимаемого объектами:
•	Ручная очистка корзины по команде PURGE.
•	Автоматическая очистка по причине нехватки пространства. Пространство, занимаемое объектами корзины, может быть автоматически возвращено для другого использования. Поэтому оно отражается в представлении dba__free__space. До тех пор, пока не возвращено пространство, занимаемое объектами в корзине, вы можете восстановить такие объекты, используя Flashback Drop. Ниже приведены правила, по которым в указанном порядке занимается свободное место в табличном пространстве:
1.	Свободное пространство, не связанное с корзиной;
2.	Свободное пространство, связанное с корзиной; корзина автоматически очищается на основе алгоритма FIFO {First in First Out, первым поступил, первым удален).
3.	Свободное пространство автоматически выделяется, если файлы табличного пространства с авторасширением.
Oracle Database 10g: Administration Workshop II 6-8
Автоматическое использование пространства корзины (продолжение)
Предположим создается новая таблица в табличном пространстве TBS1. Если в этом табличном пространстве есть свободное место, не занимаемое корзиной, тогда сначала используется это свободное пространство. Если его недостаточно, тогда занимается место, используемое в табличном пространстве TBS1 объектами корзины.
При использовании свободного пространства корзины соответствующие объекты автоматически удаляются их корзины. После этого их нельзя восстановить по команде flashback drop.
Если все таки места для таблицы недостаточно, база данных применяет автоматическое расширение табличного пространства TBS1, если эго возможно.
$
Oracle Database 10g: Administration Workshop II 6-9
Ручное освобождение пространства
корзины
PURGE {TABLE <имя_®аблицы>|INDEX <имя__индекса >}
PURGE TABLESPACE < имя__табличного : пространства» [Ц5ЕК<имя пользователя >]
PURGE [USER_|DBAJ RECYCLEBIN
Database instance: orclorasie con; > Tables > Recycle Bin
Recycle Bin
Results
I. f Drop )|
Select All I Select Nene I Expand Ah I Collapse All	~
f" " .....,A-- -	v
i ...	WwT--- ........
ш ж	(леаге i $ Size Operation
Г W Recycle Bin	; =_
Г	^EMPLOYEES HR2	TABLE USERS 2005-88-31:17:44:17 2005-08-31:17:40:45 8	View Content )
.2- JOBS HR2 TABLE USERS 2005-08-31:17:44:30 2005-08-31:17:41:29 8 ^View Content)
6-10	Copyright © 2006, Oracle. All rights reserved.
Ручное освобождение пространства корзины
Используйте команду PURGE, чтобы удалить объекты из корзины. Одновременно из базы данных окончательно удаляются зависимые от них объекты. В результате удаленные из корзины объекты больше не могут быть восстановлены с помощью команды flashback drop.
Использование команда PURGE:
•	PURGE TABLE; удаления указанной таблицы.
•	PURGE INDEX; удаления указанного индекса.
•	PURGE TABLESPACE; удаление всех объектов, размешенных в заданном табличном пространстве. Дополнительно могут быть удалены зависимые объекты, размещенные в других табличных пространствах. Кроме того, можно задать фразу USER, чтобы удалить объекты, принадлежащие только указанному пользователю. Это опция применяется в случае, когда у пользователя небольшая квота на дисковое пространство данного табличного пространства.
•	PURGE RECYCLEBIN; удаление всех объектов текущего пользователя. RECYCLEBIN и USER__RECYCLEBIN - это синонимы.
PURGE DBA_RECYCLEBIN; удаление всех объектов из корзины. Для выполнения этой команды необходимы соответствующие системные привилегии или привилегия SYSDBA.
Примечание: Когда в корзине содержится несколько объектов с именем удаляемого объекта, указанным в команде PURGE TABLE или PURGE INDEX, тогда из корзины первым удаляется объект, который дольше всего находится в корзине (Firsthi First Out-первым пришел, первым ушел).
Oracle Database 10g: Administration Workshop II 6-10
Когда удаляемые объекты не переносятся в корзину
DROP TABLE <имя таблицы> [PURGE] ;
ЙО *ГДВШЗЖСВ	пространет?ва>
[INCLUDING CONTENTS] ;
DROP USER <имя пользователя> [CASCADE] ;

_____6-11__________________Copyright ©2606, Oracle. All rights reserved____________
Когда удаляемые объекты не переносятся в корзину
Команда DROP TABLE PURGE окончательно удаляет таблицу и зависимые от нее объекты из базы данных. При использовании этой команды соответствующие объекты не попадают в корзину. Она действует так же, как и команда DROP TABLE в предыдущих версиях.
При выполнении команды DROP TABLESPACE . . . INCLUDING CONTENTS объекты табличного пространства не перемещаются в корзину. Более того, объекты, находящиеся в корзине и принадлежащие табличному пространству, удаляются из нее. Для успешного выполнения такой команды без фразы INCLUDING CONTENTS необходимо, чтобы табличное пространство было пустым. Однако при этом объекты, принадлежащие удаляемому табличному пространству, могут находиться в корзине. Они в этом случае из нее удаляются.
Команда DROP USER . . . CASCADE удаляет пользователя и все его объекты навсегда из базы данных. Объекты удаляемого пользователя, находящиеся в корзине, также удаляются.
Oracle Database 10g: Administration Workshop II 6-11
Запрос сведений о содержимом корзины
Ч9ЖВВС7 owner, eriginal_nante, c4o®qt_nam^ type, ts_name, droptime, related, space ,
FROM dba^ecyclebijg
ЙЙЙЕКЕ can nndrop « 'YES’;
L:.................-......... .	......	...
---------——* *     -----——r............   — —
JSEEECT original_name, object_name,
type, ts_name, droptime, related^ space
FROM userjcecyclebin
WHERE can undrop = ’YES’;
.....—TOm-amm,, » ,   .......-. ..	..
SQL> SHOW recycle»» .......	...	-	..	_ '	, ди-джми:	. '
6-12 Copyright © 2006. Oracle. All rights reserved.
Запрос сведений о содержимом корзины
Можно просмотреть все сведения об объектах, которые были удалены, запросив для этого представление USER__RECYCLEBIN или RECYCLEBIN.
Представление DBA_RECYCLEBIN показывает все объекты, которые были удалены всеми пользователями и все еще находятся в корзине.
Кроме того можно воспользоваться командой SQL*Plus SHOW RECYCLES IN. По этой команде выводятся только такие объекты, которые можно восстановить.
В приведенных примера показывается, как получить следующую сведения об объектах корзины:
* OR IGINAL_NAME; как назывался объект перед удаление;
. OB JECT__NAME; сгенерированное системой имя для объекта после его удаления;
• TYPE; тип объекта;
• TS__NAME; имя табличного пространства, которому принадлежит объект:
• DROPT IМЕ; дата удаления объекта;
• RE LATE D; идентификатор объекта (столбец ob j е с t __i d в dba__ob j е с t s ) для удаленного объекта;
SPACE; количество блоков, используемых объектом в настоящее время.
Можно также просмотреть содержимое корзины с помощью Database Control.
Примечание: дополнительную информацию о представлении DBA RECYCLEBIN см. в документу Oracle Database Reference.
Oracle Database 10g: Administration Workshop il 6-12
I 6-13 Copyright © 2006, Oracle. All rights reserved
Запрос данных из удаленных таблиц
Когда таблица удаляется, она перемещается в корзину и ей присваивается уникальное сгенерированное системой имя. Так как удаленная таблица все еще находится в схеме пользователя-владельца, сведения о ней можно просмотреть в представлениях, например, DBA__TABLES, DBA___OB JECTS и DBA___SEGMENTS. Для того, чтобы можно было отличить таблицы, находящиеся и не находящиеся в корзине, в представление DBA TABLES был добавлен новый столбец DROPPED, значение в котором равно YES для таблиц, которые были удалены, но все еще находятся в корзине.
Вследствие этого в команде SELECT и запросам флэшбэк можно указывать объект, имеющий сгенерированное системой имя, пока он находится в корзине. Но операции DML и DDL над такими объектами производить нельзя.
Oracle Database 10g: Administration Workshop II 6ИЗ
Обзор операции
Flashback Database
Корзина
> Flashback БД Конфиг. FB DB Монит. FB DB Тарам, т.восст.
Операции Flashback Database:
• Выполняются подобно действию кнопки обратной прокрутки для БД
* Могут использоваться в случае логических повреждений, сделанных пользователями
п th аяБ’
Л
Пользователи совершают ошибки
Поврежденная база данных
Нажмите кнопку
прокрутки назад
Обзор операции Flashback Database
Flashback Database позволяет быстро перенести вашу БД к предыдущему моменту времени путем отмены всех изменений, сделанных после этого момента времени. Это быстрая операция, поскольку не надо производить восстановление из резервных копий БД. Flashback Database можно использовать для отмены изменений, приведших к логическим повреждениям данных.
Когда в базе данных обнаруживаются физические повреждения или происходит потеря носителя, тогда вы должны применять традиционные методы восстановления.
Oracle Database 10g: Administration Workshop II 6-14
Описание процесса Flashback Database
флэшбэк буфер
SGA
He все изменения!
Кэш буферов
Журнальный буфер
КаждоеЕ ^изменение
LGWR
Flashback
legs
RVWR
Периодическая запись в журнал старых образов
I
Откат назад изменений Восстановление в БД с помощью	носителя путем гп
предыдущих образов „одката вперед блоков данных	f
Журнал
ORACLE-
6-15
Copyright © 2006, Oracle. Ail rights reserved.
Описание процесса отката базы данных
При включении возможности отката базы данных запускается фоновый процесс RVWR. Он последовательно пишет данные для отката БД из флэшбэк буфера {flashback buffer) в журнал возврата (Flashback Database logs\ который заполняется 4по кругу' и поэтому старые данные со временем затираются новыми. При выполнении команды FLASHBACK DATABASE журнал возврата используется для восстановления предыдущих образов блоков, после чего для подката вперед к требуемому моменту применяется оперативный журнал.
Накладные расходы, связанные с включением возможности возврата базы данных, зависят от рабочей нагрузки по чтению-записи в базе данных. Поскольку команды запросов не вызывают генерации данных для возврата, только возрастание рабочей нагрузки, связанной с операциями записи, вызывает рост накладных расходов, вызванных включением возможности отката базы данных.
Примечание: журнал возврата БД не архивируется.
Oracle Database 10g: Administration Workshop II 6-15
Конфигурирование возможности
Flashback Database с помощью ЕМ
Включите опцию flashback logging и задайте использование flash recovery area.
10	" wa	VALID
?TIP !i •s mcummsnrM that amhH be widten tu multi^s tuuuuunr spsead the drfo:e:| (g? TIP V:--=: «specify up m 10 srdw fog rfeste^tforfo
Flash Recovery Area
It is highly recommended that you use flash recowry area to automate your disk backup management
Flash Recovery Area Location
Flash Recovery Area Size p	(Ъв 3
iiff-a '>;<:' ; te-iv. z\';a ы ixa when the	fe e«t
Used Flash Recovery Area Size (MB) 124.195
I P Enable flashback logging for fast database point-in-tirne recovery" | y>;»s тйу :£eo?sr voyr йпйй йй?к>зле tu iyi?	-fee F=^h^<h is =M preenedisc^Aii^feierecoverуг^гоиЬНПегеса^йу Vi.-rzsiiя w?ren
Specify how far back you wish to hash the database in the future Flashback Retention Time p4~^	। Hours 4
6-18 Copyright © 2006, Oracle. All rights reserved.
Конфигурирование возможности Flashback Database с помощью EM (продолжение)
После проверки архивного режима БД вернитесь на страницу Recovery Settings и прокрутите вниз содержимое экрана, чтобы отметить новые установки в секциях Media Recovery и Flash Recovery Area. Если сконфигурирована флэш-область восстановления и архивный режим, тогда USE___DB___RECOVERY__FILE__DEST используется в качестве параметра, задающего место архивирования под номером 10. Включите журналирование данных для выполнения отката БД, отметив поле Enable Flashback Logging.
Дополнительно можно задать время удержания данных (Flashback Retention), а также просмотреть важную информацию, относящуюся к временному окну операции флэшбэк. Проверьте местоположение флэш-области восстановления (Flash Recovery Area). Флэш-область восстановления -- это унифицированное место хранения всех связанных с восстановлением файлов и результатов операций в БД Oracle. Все файлы, необходимые для полного восстановления БД после потери носителя, содержатся в этой области. В число связанных с восстановлением файлов, которые могут быть созданы во флэш-области восстановления, входят: архивные журналы, управляющие файлы, резервные объекты, созданные утилитой RMAN, журнал отката БД, а также файл отслеживания изменений. Выделение в определенной области пространства хранения и сопровождение в ней файлов, связанных с восстановлением. освобождает АБД от обязанности сопровождения дисковых файлов, создаваемых компонентами Oracle. По умолчанию месторасположение флэш-области восстановления совпадает со значением параметра $ORACLE__BASE. Если необходимо использовать другое месторасположение, сделайте изменения сейчас. Прокрутите вниз содержимое экрана до конца и щелкните на кнопке Apply.
Oracle Database 10g: Administration Workshop II 6-18
Примеры Flashback Database
RMAN> FLASHBACK DATABASE TO TIME *
"2> ”TO_DATE(' 2004-05-27 16j00:00‘ |
3> 'YYYY-W-DD HH24:MI :SS’)”;
RMAN> FLASHBACK DATABASE TO SC№*23565|
RMAN> FLASHBACK DATABASE *
2> TO SEQUENCE=223 THREAD=1;
SQL> FLASHBACK DATABASE
2 T9WESTJW(SYSDATE-l/24);
SQL> FLASHBACK DATABASE TO SCN 53943;
SQL> FLASHBACK DATABASE TO RESTORE POINT b4_load;
___6-19 Copyright ©2006, Oracle. All rights reserved.
.u
Примеры Flashback Database
Команда RMAN FLASHBACK DATABASE используется для выполнения операции восстановления. В ней можно с помощью параметров SEQUENCE и THREAD задать в качестве ограничения сверху на номер журнала и номер потока. RMAN выбирает только те журналы, которые могут быть использованы для подката вперед, но не применяет журнал с заданным в команде номером.
Другие способы отката с помощью команды FLASHBACK DATABASE - возврат базы данных на момент времени в прошлом или к определенному SCN. При использовании фразы ТО SCN необходимо указать номер. Если задается фраза ТО TIMESTAMP, следует ввести значение временной метки.
Примечание: база данных должна быть смонтирована в монопольном режиме перед выполнением команды FLASHBACK DATABASE, а после завершения выполнения команды открыта с опцией RESETLOGS.
Oracle Database 10g: Administration Workshop II 6-19
Конфигурирование
Flashback Database
Корзина Flashback БД
> Конфиг. FB DB Монит. FB DB Гаран. т.восст.
1. Конфигурирование 2. Задание retention 3. Включение flash recovery area	target	Flashback Database
SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP MOUNT EXc4®IVE;
SQL> ALTER SYSTEM SET
? DB_FIASHBACK_RETENTION_TAR®ET^2880 SCOPE=BOTH;
SQL> ALTER DATABASE FLASHBACK ON;
SQL> ALTER DATABASE OREN;
6-16 Copyright © 2006, Oracle. AH rights reserved.
Конфигурирование возможности отката базы данных
Возможность отката базы данных конфигурируется следующим образом:
1.	Сконфигурируйте флэш-область восстановления.
2.	Задайте время удержания с помощью параметра инициализации DB__FLASHBACK__RETENTION__TARGET. Оно определяет максимальное время, на которое возможно удастся откатить назад базу данных. В примере задается 2880 минут, что эквивалентно двум дням. Этот параметр задает только целевое значение, но не дает полных гарантий. Реальный интервал времени отката назад зависит от того, сколько данных для отката сохранится во флэш-области восстановления.
3.	Включите возможность отката базы данных:
ALTER DATABASE FLASHBACK ON;
Перед тем, как выполнить эту команду, необходимо перевести базу в режим архивирования и запустить ее в режиме MOUNT EXCLUSIVE.
Проверить, включена ли возможность отката БД, можно, выполнив запрос:
SELECT flashback__on FROM vSdatabase;
Выключить возможность отката БД можно по команде ALTER DATABASE
FLASHBACK OFF. В результате весь существующий журнал отката БД будет автоматически удален.
Примечание: включить возможность флэшбэк БД можно только, когда база данных смонтирована в режиме MOUNT EXCLUSIVE, но не открыта.
Oracle Database 10g: Administration Workshop SI 6-16
Конфигурирование возможности Flashback Database с помощью ЕМ
Проверьте, находится ли БД в режиме archivelog.
Recovery	J
The database is currently in ARCHIVELOG?mode. In ARCHIVELOG made, ho space for logs. If you change the database to ARCHIVELOG mode, you shoul cold backups and data may be lost in the event of database corruption.
ARCHIVELOG Mode''
Log Archive Filename Format^
tne nesm-ag oonv??rsiion =<« fh& srcNveu fee; fife. kxj ?e<wsf? %L thre®
Конфигурирование возможности Flashback Database с помощью EM
Установите соединение c Enterprise Manager Database Console. На странице Maintenance выберите в секции Backup/Recovery Settings ссылку Recovery Settings. Проверьте, включен ли в базе данных режим ARC HIVE LOG. Если нет, тогда отметьте поле ARCHIVELOG Mode и щелкните на кнопке Apply. Придется остановить, а затем перезапустить экземпляр, чтобы изменения вступили в силу.
Oracle Database 10g: Administration Workshop II 6-17
Flashback Database с помощью EM
shut doun m.pr .
itg resicre or ft »’ । yh««- datM|f"> i ^,'A and; Ьгмйй1 Я MO> '1TCP • ||
Perform Recovery: Type
Выберите тип
объекта и операции у Warnincj
Th 2 dM-W -
Type
Object Type [whoie Database j|
Operation Recover to the current time or a previous реШп-tims Type DataTfcSi be restored from ins	teackut as required
C Restore all datafiles
Need tc< specify T*Re< SCN rz fog sequence. The ssackup taken M =? ic thc4 feme he usea
f Recover fwm previously restored datafiles
Host Credentials
To perform recovery, supply operating system login credentials.
« Username pmde
6-20 Copyright © 2006; Oracle. All rights reserved.
Flashback Database с помощью EM
На странице Maintenance щелкните на ссылке Perform Recovery.
Выберите в выпадающем списке поля Object Туре значение Whole Database. Затем отметьте Recover to current time or a previous point-in-time справа от Operation Type.
В секции Host Credentials введите имя и пароль пользователя ОС. В Unix это должен быть пользователь-владелец базы данных, обычно принадлежащий группе dba в операционной системе. В Windows пользователь должен иметь привилегию Log on as а batch job.
После этого щелкните на кнопке Next, чтобы перейти к следующему шагу подготовки операции отката базы данных.
Oracle Database 10g: Administration Workshop II 6»20
Flashback Database с помощью EM
Запуск мастера восстановления
Database: crcl. us. oracle, corn
ORACLG Enterprise Manager 10g

Recovery Wizard
The database will be shutdown and stsrted/mounted. Please wait seme time for this operation to complete and click ’Refresh’ You will be redirected to a page to go through the recovery wizard.
v Refresh^)
Database | Setup I Preferences I Help | Logout Соруй^й ©1996,2DD4, Oracle. AH right® reserved.
AtoU Orecfe Enterprise Manager 1 Gq Detabese Cerfe el
Copyright © 2006, Oracle. All rights reserved.
Flashback Database с помощью EM (продолжение)
После того, как был выбран тип операции восстановления, запускается соответствующий мастер (Recovery Wizard). Вы получаете сообщение о том, что база данных будет остановлена и повторно запущена в режиме монтирования. Эта операция займет несколько минут и вам будет выдана информация о временной задержке. После ожидания в течение некоторого времени вам предлагается щелкнуть на кнопке Refresh, чтобы продолжить действия.
Oracle Database 10g: Administration Workshop II 6-21
Flashback Database с помощью ЕМ (продолжение)
Теперь мастер восстановления запущен. База данных останавливается, а затем запускается в режиме MOUNT. Щелкните на кнопке Refresh.
Вы попадаете на страницу Perform Recovery: Point-in-time. На этой странице выберите опцию Recover to a prior point-in-time, а затем задайте либо дату, либо SCN. После этого щелкните на кнопке Next
Появляется страница Perform Recovery: Flashback, на которой можно выбрать либо откат назад, либо обычное восстановление. Выберите соответствующую опцию, а затем щелкните на кнопке Next.
Вы перейдете прямо на страницу Perform Recovery: Review, пример которой приведен на слайде. Чтобы выполнить откат базы данных, щелкните на кнопке Submit.
Oracle Database 10g: Administration Workshop II 6-22
Исключение табличных пространств из операции Flashback Database
ALTER TABLESPACE <ts_nan»> FLASHBACK {ON|OFF) 	..	..;.'	'W	.
SQL* SELECT' name, flashback^
j 2 FROM v$tablespace;
•	Переведите табличное пространство в автономное состояние перед выполнением восстановления путем отката базы данных.
•	Удалите табличное пространство или восстановите автономные файлы с помощью обычного восстановления на момент-в-прошлом.
Copyright © 2006, Oracle. All rights reserved j
Исключение табличных пространств из операции Flashback Database
В базе данных может быть табличное пространство, для которого нет необходимости вести журналы флэшбэк. Команда ALTER TABLESPACE позволяет исключить табличное пространство из процесса флэшбэк. Этот атрибут может быть также установлен, когда табличное пространство создается. По умолчанию значение атрибута -ON.
Перед выполнением операции флэшбэк необходимо перевести такое табличное пространство в автономное состояние. Затем его можно удалить или же восстановить его автономные файлы данных, используя традиционные методы восстановления на момент времени в прошлом.
Чтобы выяснить возможность отката табличного пространства при откате БД, выполните запрос к представлению V$ TABLE SPACE и выведите значение столбца f lashback__on.
Примечание. После пересоздания управляющего файла все табличные пространства переводятся в режим FLASHBACK ON. Необходимо повторить команды ALTER TABLESPACE, чтобы исключить табличные пространства из операций Flashback Database.
Oracle Database 10g: Administration Workshop II 6-23
Рассмотрение функциональной возможности Flashback Database
•	После завершения операции Flashback Database откройте базу данных:
-	В режиме ‘только чтение’ для проверки того, что использовалось правильное целевое значение времени или SCN
-	С опцией RESETLOGS, чтобы разрешить изменения
•	Обратная операция для flashback - операция recover
•	Нельзя применять откат БД в следующих ситуациях:
-	Управляющий файл был скопирован из резерва или пересоздан
-	Было удалено табличное пространство
-	Файл данных был сжат
• Используйте фразу то before resetlogs для отката к моменту, предшествующему последнему открытию БД с опцией resetlogs
6~24 Copyright © 2006, Oracle. АП rights reserved i
Рассмотрение функциональной возможности Flashback Database
В ситуациях, когда нельзя использовать возможность Flashback Database, следует применять операции неполного восстановления, чтобы вернуть БД к требуемому моменту времени. После завершения выполнения команды Flashback Database базу данных можно открыть в режиме только для чтения, чтобы проверить значение времени или SCN. Если значение было указано неправильно, можно снова откатить назад БД или произвести восстановление методом подката вперед. Таким образом, чтобы отменить операцию Flashback Database, необходимо выполнить команду recover и подкатить БД вперед.
Нельзя использовать Flashback Database, чтобы восстановить файл данных, который был удален в течение промежутка времени, в котором выполняется Flashback Database.
Удаленный файл данных добавляется к управляющему файлу и помечается как автономный, но не восстанавливается.
Операция Flashback Database не может возвратить файл данных к моменту времени между его созданием и перед операций изменения его размера. Если размер файла был изменен в течение промежутка времени, в котором выполняется откат назад БД, следует перевести этот файл в автономное состояние перед началом операции Flashback Database. Так же следует поступить с файлами, которые сжимались, а не расширялись. К автоматически расширяемым файлам операция Flashback Database применима.
Oracle Database 10g: Administration Workshop II 6-24
Рассмотрение функциональной возможности Flashback Database (продолжение)
Вы можете произвести откат назад непосредственно к моменту перед открытием базы данных с опцией RESETLOGS. Для этого следует указать в команде FLASHBACK DATABASE фразу ТО BEFORE RESETLOGS.
Примечание: значение flashback retention target не гарантирует возможность операции flashback. Когда во флэш-области восстановления требуется пространство для файлов, журналы флэшбэк могут автоматически удаляться.
5
&
Oracle Database 10g: Administration Workshop II 6-25
Мониторинг Flashback KJTfbm Database	* mohmt.fbdb
Гаран. т.восст
Мониторинг возможности отката БД в соответствие с заданным целевым временем удержания:
• Просмотрите квоту дискового пространства во флэш-области восстановления:	_______
SELECT estitratec^flagiBaekjsize,
2	f lashback^iaze
3 FROM V$FLASHBACK___DATABASE_LOG;
• Выясните текущее окно флэшбэк:_______________
SQL> SELECT oldest_flashback_8C<7’>’
2 oldest_flashback_tiine
3 FROM V$FLASHBACK DATABASE LOG; fZ'.'." '.. .................. *“**** ..... .
• Ведите наблюдение за журналом флэшбэк :
Мониторинг Flashback Database
Необходимо осуществлять мониторинг использования пространства флэш-области восстановления, чтобы знать, насколько достижимо заданное целевое время для отката БД.. Представление V$FLASHBACK _DATABASE_JLOG позволяет вести мониторинг целевого времени удержания информации для флэшбэк.
•	Е S ТI MATE D__FL AS НВ ACK__S IZ Е; оценка размера области дискового пространства во флэш-области восстановления, необходимого для журнала отката БД, в соответствие с текущим целевым значением удержания данных для флэшбэк. Чтобы оценить эту величину используются ранее записанные в журнал данные для отката БД. Оценка основывается на рабочей загрузке с момента запуска экземпляра или в течение самого последнего временного интервала, равного целевому значению удержания данных флэшбэк, если этот интервал меньше времени работы экземпляра.
•	FLASHBACK__S I ZE; текущий размер в байтах, занимаемый во флэш-области восстановления данными для флэшбэк.
•	OLDEST__FLASHBACK_SCN И OLDEST__FLASHBACK_TIME; приблизительное значение для наименьшего SCN и момента времени, к которому можно восстановить данные. Столбец CURRENT__SCN в представлении V$ DATABASE показывает текущий SCN базы данных.
Oracle Database 10$: Administration Workshop II 6-26
Мониторинг Flashback Database (продолжение)
Представление V$FLASHBACKJDATABASE_STAT позволяет веста мониторинг накладных расходов, связанных с ведением журнала данных для флэшбэк БД.
Представление содержит информацию за последние 24 часа и каждая строка отражает интервал в один час. Представление можно использовать для определения того, как меняется скорость генерации данных для отката БД.
SQL> SELECT begin__time, end-time, flashback_data, dbjiata,
2 redo data, estimated__flashback size AS EST_FB_SZE
3 FROM V$FLASHBACK_ DATABASE'STAT;
BEGINJTIM ENfDJFIME FLASHBACK DATA DB DATA REDO DATA ESTJF3 SZE
12-FEB-04
12-FEB-04 12-FEB-04 12-FEB-04
12-FEB-04
12-FEB-04
12-FEB-04
12-FEB-04
16384
6594560
17235968
311648256
0
7471104 12361728 3724^024
24576
1533440
5150720
10272768
0
815923200
839467008
855195648
На основе этих данных возможно потребуется скорректировать время удержания или: размер флэш-области восстановления.
FLASHBACK^ DATA и REDO__DATA отражают размер (в байтах) данных для флэшбэк и журнальных данных, записанных в соответствующем временном интервале, a DB_DATA показывает число байтов в прочитанных и записанных блоках данных. Это представление также содержит оценку пространства для данных отката в указанном интервале времени.
Чтобы получить сведения, касающиеся флэш-области восстановления, можно выполнить запрос к представлению V$RECOVERY_FILEWDEST, имеющему следующие столбцы:
•	NAME; имя флэш-области восстановления, показывающее ее местоположение;
•	SPACEJLXMIT; ограничение на размер дискового пространства, заданное параметром инициализации DB_RECOVERY__FILE__DEST__SIZE;
•	SPACE_USED; используемое пространство (в байтах) во флэш-области
восстановления;
*	SPACEJRECIAIMABLE; размер пространства, которое может освободить алгоритм управления пространством после удаления устаревших, избыточных и других неважных файлов
•	NUMBER^OFJFILES; количество файлов.
SQL> SELECT name, space_limit	AS	quota,
2	space_used	AS	used,
3	space__reclaimable	AS	reclaimable,
4	number_of_files	AS	files
5	FROM v$recoveryfile_dest ;
NAME
QUOTA	USED RECLAIMABLE FILES
/u01/f lash__recovery_area 5368709120 2509807104	203386880	226
Oracle Database 10g: Administration Workshop II 6-27
Мониторинг Flashback Database с
помощью ЕМ
Flash Recovery
Flash Recovery Area Is enabled for this database. The chart shows space used by each file type that is net reclaimable by Oracle. Performing backups to a tertiary storage Is one way to make space reclaimable. Usable Flash Recovery Area includes free and reciaimabte space.
Flash Recovery Area Location |i$Vapp/oracle/tlashjecovery„area
Flash Recovery Area Usage
Flash Recovery Area Size [2	(ЗГИ
FUth «st? See fev-U fc set whtn th
Reclaimable Flash Recovery™ « Area (MB)
Free Flash Recovery Aree^ 6
P Enable Flashback Database - flashback togging can be used database point-in-time recovery*
U й Ла й гее >-! / ar• - н»й1 he ж t s a s£ fee fcc- Wh? , ' iMv f i j rae-ove? errtee юадовг	referral rfebA-xRi-- h
<ur. t m₽ ieiX;very ,U> 1 in the rseovarj? %izsa wnsrs ?> j -nt. <t<
И Image Copy - 0.48GB (24.2%) 0 Backup Piece - 0.22 GB (11%) H Archive Log - 0.1GB (4.8%) в Control File - OGB (0%) Й Online Log - OGB (0%) ffl Flashback Log - 0.01GB (0.7%) g Usable -1.0108(59 3%)
Specify how far back you wish to flash the database in the fi
Flashback Retention Time	[Hour
Current size of the flashback togs(MB) 196.383
Lowest SCN in the flashback data 1252302
Flashback Time Oct 4,200510:31:5сг?чш-
6-28
Copyright © 2006, Oracle. All rights reserved.
Мониторинг Flashback Database с помощью EM
Большинство упомянутых на предыдущих страницах статистик флэшбэк можно просмотреть на странице Recovery Settings. В их число входят следующие метрики: текущий размер всех журналов отката БД, наименьший SCN и момент времени, соответствующий этому наименьшему системному номеру изменений данных для флэшбэк.
Oracle Database 10g: Administration Workshop II 6-28
Гарантированные точки восстановления
Корзина
Flashback БД
Конфиг. FB DB
Монит. FB DB
> Гараи, т.восст.
Гарантированные точки восстановления обеспечивают возможность в любой момент
времени восстановиться по команде flashback DATABASE к соответствующему SCN.
*
6-29
SQL> CREATE RESTORE POINT beforeJLoad I 2 GUARANTEE FLASHBACK DATABASE;
л « ’’ORACLjEM. •
Copyright © 2006, Oracle. All rights reserved.
Гарантированные точки восстановления
Подобно обычным точкам восстановления {normal restore points). рассмотренным в уроке “Восстановление базы данных”, гарантированные точки восстановления (guaranteed restore points) могут использоваться в качестве псевдонимов для системных номеров изменений (SCN) в операциях восстановления. Кроме того, они предоставляют специальные функциональные возможности, используемые операцией Flashback Database. Создание гарантированной точки восстановления для конкретного SCN обеспечивает возможность выполнения операции Flashback Database, возвращающей базу данных в состояние на момент времени, соответствующий данному SCN, даже если в базе данных не включено ведение журнала флэшбэк. При включенном журнале флэшбэк создание гарантированной точки восстановления обеспечивает удержание данных журнала флэшбэк, которые позволяют откатить базу данных с помощью операции Flashback Database к любому моменту времени после самой ранней созданной точки восстановления.
Гарантированная точка восстановления может быть использована для отката всей базы данных к заведомо хорошему состоянию, в котором она находилась несколько дней или недель назад. Для этого необходимо наличие во флэш-области восстановления дискового пространства, достаточного для хранения требуемых журналов. Гарантированные точки восстановления, как и операция Flashback Database, позволяют откатить последствия действий в режиме NOLOGGING, например, загрузки методом прямой вставки.
Примечание. Гарантированные точки восстановления могут, как и обычные точки восстановления, использоваться для указания момента времени в операции RECOVER DATABASE. Дополнительные сведения см. в уроке “Восстановление базы данных”.
Oracle Database 10g: Administration Workshop II 6-29
Итоги
•	Запрос к корзине удаленных объектов
•	Конфигурирование Flashback Database
•	Выполнение операции Flashback Database для отката БД к определенному моменту времени
•	Мониторинг статистик журнала flashback
•	Включение и отключение функциональной возможности Flashback Database
•	Использование мастера восстановлений Enterprise Manager для выполнение операции Flashback Database
• Использование гарантированных точек восстановления в операции Flashback Database
Oracle Database 10g: Administration Workshop II 6-30
Обзор практического занятия: откат базы данных
•	Выполнение операции Flashback Database для отмены ненужных транзакций
•	Мониторинг удержания данных для операции Flashback Database
•	Определение размера журналов флэшбэк
6-31
Copyright © 2006, Oracle. АН rights reserved.
Oracle Database 10g: Administration Workshop II 6-31
Обнаружение и устранение повреждений информации в базе данных
Copyright © 2006, Oracle. All nghts reserved.

Рассматриваемые вопросы
• Причины возникновения повреждений в базе данных:
-	аппаратное обеспечение
-	программное обеспечение
• Обнаружение повреждений в базе данных с помощью:
-	ANALYZE
—	dbverxfy
-	DB_BLOCK_CHECKING
-	DBMSJREFAIR
• Использование RMAN для устранения повреждений
OR.
7~2 Copyright © 2006, Oracle. All rights reserved.
Oracle Database 10g: Administration Workshop II 7-2
Что такое повреждение блока?
• При каждом чтении и записи блока
производится проверка его согласованности:
-	Версия блока
-	Значение DBA (data block address,адрес блока данных) в кэше сравнивается со значением DBA в буфере блока
-	Подсчет контрольной суммы блока, если такая возможность включена
• Два типа повреждений блоков:
-	Повреждение носителя
-	Логические (программные) повреждения
|7-3 Copyright © 2006, Oracle. All rights reserved.
Повреждение блоков
Поврежденный блок данных {corrupted data block) - это блок, содержимое которого не распознается на основе формата Oracle или его содержимое внутренне несогласованно. Обычно повреждения вызываются сбоями аппаратуры или проблемами операционной системы.
База данных Oracle определяет блоки, поврежденные программным обеспечением или логически (внутренняя ошибка Oracle), а также блоки после повреждения носителя (некорректный формат блока).
При логическом повреждении возникает внутренняя ошибка Oracle. Блоки помечаются базой данных как логически поврежденные {logically corrupt) после обнаружения их несогласованности.
Если искажение блока вызвано повреждением носителя (media corrupt), тогда нет смысла читать информация блока с диска.
Блок, искаженный вследствие повреждения носителя, можно исправить, проведя восстановление блока или же удалив объект, содержащий такой блок. Если повреждение вызвана плохой работой аппаратуры, проблема не может быть полностью решена, пока не будет устранена аппаратная неисправность.
Oracle Database 10g: Administration Workshop II 7-3
Симптомы повреждения блоков:
ORA-1578
ORA-01578: "ORACLE data block corrupted (file # %s, block # %s)"
•	Эта ошибка генерируется при обнаружении повреждения блока данных
*	В сообщении об ошибке всегда возвращается абсолютный номер файла и номер блока
•	Ошибка возвращается в сеансе, в котором выполняется запрос, обнаруживший повреждение
•	Появляется в файле alert. log
7-4 Copyright © 2006, Oracle. All rights reserved.
Симптомы: ORA-1578
Обычно ошибка ORA-157 8 возникает в результате аппаратных проблем.
Ошибка ORA-1578, постоянно возвращаемая с одними и теми же параметрами, почти всегда означает искажение блока на носителе.
Если параметры в сообщении о возвращаемой ошибке всегда, отличаются, тогда это может отражать аппаратную проблему. Следует проверить память и страничное пространство, а также подсистему ввода-вывода с целью обнаружения плохих контроллеров.
Oracle Database 10g: Administration Workshop II 7-4
Как обнаруживать и устранять влияние повреждений
•	Проверяйте сигнальный файл и системный журнал операционной системы.
•	Используйте доступные инструменты диагностики для выявления типа повреждений.
•	Выясните, постоянно ли*возникает ошибка, выполнив проверку несколько раз.
•	Восстановите данные поврежденного объекта, если это необходимо.
7-5
Copyright © 2006, Oracle. Ail rights reserved.
Как обнаруживать и устранять влияние повреждений
Всегда пытайтесь выяснить, постоянно ли возникает ошибка. Выполните команду ANALYZE несколько раз. Если это возможно, остановите и запустите снова базу данных, а затем повторите операцию, приводившую раньше к ошибке.
Выясните, есть ли еще повреждения. Другие блоки также могут быть повреждены, если обнаружен один искаженный блок. В подобной ситуации воспользуйтесь утилитой DBVERIFY.
Oracle Database 10g: Administration Workshop II 7-5
Как обнаруживать и устранять влияние повреждений
•	Разрешите аппаратные проблемы
-	Платы памяти
-	Дисковые контроллеры
-	Диски
• Восставите или извлеките данные из поврежденного объекта, если это необходимо.
Copyright © 2006» Oracle. АН rights reserved.
Как обнаруживать и устранять влияние повреждений (продолжение)
В случае отказа аппаратуры работа должна быть остановлена. Следует обратиться к поставщику оборудования для проведения проверки и устранения неисправности машины. Необходимо провести полную диагностику аппаратного обеспечения.
Возможные типы аппаратных сбоев:
•	отказ аппаратуры или программно-аппаратных средст в ввода-вывода;
•	проблемы, связанные с кэшем и подсистемой ввода-вывода операционной системы;
*	проблемы памяти и страничного обмена;
•	ошибочное выполнение утилит восстановления после дисковых сбоев (disk repair utilities).
Oracle Database 10g: Administration Workshop II 7-6
Функциональные возможности, имеющие отношение к обнаружению и устранению повреждений
Функциональная возможность	Обнаруживаемое повреждение	Исправление повреждения
DBVERIFY	Физическое	Нет
ANALYSE	Логическое	Нет
DBJBLOCKJCHECKING	Логическое	Нет
DB_BLOCK_CHECKSUM	Физическое	Нет
exp	Физическое	Нет
Flashback	Логическое	Да
DBMSJREPAIE	Логическое	Да
Восстановление на уровне блоков (BMR)	Никакое	Да

7-7
Copyright © 2006, Grade. Ait rights reserved.
Функциональные возможности, имеющие отношение к обнаружению и устранению повреждений
Имеется много инструментальных средств, предназначенных для обнаружения, диагностирования и устранения повреждений в базе данных Oracle. На слайде представлена краткая сводка таких инструментов, рассматриваемых в этом уроке.
Oracle Database 10g: Administration Workshop II 7«7
Утилита DBVERIFY
•	Проверяет только файлы данных, с ее помощью нельзя протестировать оперативные журнальные файлы.
•	Проверяет целостность блоков.
•	Может применяться при открытой базе данных.
•	Имя программной утилиты: dbv
$ dbv file=/u01/oradata/users01.dbf \ ?blocksize«8192
......................................    J
7-8__________
Утилита DBVERIFY
Copyright © 2006, Oracle. Ail rights reserved.
DBVERIFY - это внешняя утилита с интерфейсом командной строки, выполняющая физическую проверку структурной целостности информации автономной базы данных. Она может использоваться для проверки копий образов и оперативных файлов данных (или их части). Применяйте утилиту DBVERIFY главным образом, если необходимо удостовериться в корректности копии базы данных (или файла данных) перед восстановлением, а также как средство диагностики, если были зафиксированы симптомы повреждения данных. Поскольку утилита DBVERIFY может работать, когда база данных в автономном состоянии, проверка целостности выполняется значительно быстрее.
Ограничения использования утилиты DBVERIFY:
•	DBVERIFY не выявляет проблемы несоответствия индексов и таблиц, которые могут быть обнаружены ПО команде ANALYZE TABLE. . .VALIDATE STRUCTURE CASCADE.
•	DBVERIFY не проверяет ни оперативные журналы, ни управляющие файлы.
•	DBVERIFY проверяет блоки только изолированно, она не выясняет, является ли блок частью существующего объекта или нет.
•	Для "чистых”устройств (raw devices, "чистых" дисковых секций) необходимо задавать параметр END, чтобы устранить просмотр блоков, размещенных за границей пространства файла данных:
dbv FILE=/dev/rdsk/rl.dbf Е№^последнх4Йтблок_данных#
Oracle Database 10g: Administration Workshop II 7-8
Интерпретация выходных данных утилиты DBVERIFY
•	Число страниц- это число блоков в файле данных.
•	При несовпадении контрольной информации в заголовке блока (head) и его конечной части (tail) утилита deverify перечитывает блок. Если при повторном чтении контрольная информация совпадают, о таком блоке сообщается как о “плывущем" (influx), если нет - как о поврежденном (corrupt) блоке*__________________
ТсО1 ₽адЖ еОИЙЬТ	:	128®
Total ges, greased (Data) : 4408 fetal Pages falling (Data)
Total .Rages Processed (Index): 1264
Total Радей: Marked	Corrupt	:	4
Total Page® Influx	г	О
ЫОО> SCN:	854836	(0.65483»
rr^ci.e
7-9	_________________Copyright © 2006, Oracle. All rights reserved.
Интерпретация выходных данных утилиты dbverify
“Плывущие блоки” {influx blocks} ~~ это расщепленные блоки {split blocks). Утилита DBVERIFY не определяет такой блок как поврежденный, так как во время первого чтения процесс DBWn писал новую версию этого блока и при проверке были прочитаны новая и старая части блока. DBVERIFY обнаруживает только логические повреждения. Поэтому возможно появление искаженных блоков выше отметки максимального заполнения {high-water mark).
Пример использования утилиты DBVERIFY:
$ dbv file=example01.dbf blocksize^8192
DBVERIFY: Release 10.2.0.1.0 - Production on Fri Sep 9 13:17:45 2005
Copyright (c) 1982, 2005, Oracle. All rights reserved.
DBVERIFY - Verification starting : FILE = exampleOl.dbf
DBVERIFY - Verification complete
Oracle Database 10g: Administration Workshop II 7-9
Интерпретация выходных данных утилиты dbverify (продолжение)
Total	Pages	Examined	:	12800
Total	Pages	Precessed (Data) :	4409
Total	Pages	Failing (Data) :	0
Total	Pages	Processed (Index):	1264
Total	Pages	Fa i1ing	(In de x) :	0
Total	Pages	Processed (Other):	1539
Total	Pages	Processed (Seg) :	0
Total	Pages	Failing	(Seg) :	0
Total	Pages	Empty	:	5588
Total	Pages	Marked Corrupt :	0
Total.	Pages	Influx	:	0
Highest block SCN	: 654836 (0.654836)
Oracle Database 10g: Administration Workshop II 7-10
Команда analyze
•	Выполняет логическую проверку блоков
•	Не помечает блоки как поврежденные (soft corrupted), а только сообщает о них
•	Проверяет индексные и табличные записи
SQL> ANALYZE TABLE имя_шаблици VALIDATE
2 STRUCTURE CASCADE^
SQL> ANALYZE INDEX имя_ивдекса VALIDATE
2 STRUCTURE;
...____________'__________________________
Copyright © 2006, Oracle. AH rights reserved.
Команда analyze
Команда ANALYZE используется для проверки структуры таблицы или секций таблицы, а также индекса или индексных секций. Анализируемый объект должен быть локальным и находиться в собственной схеме пользователя, выполняющего команду, либо пользователь должен иметь системную привилегию ANALYZE ANY. Если задан параметр CASCADE, выполняется проверка указанного объекта и всех связанных с ним объектов. Такую команду можно запускать несколько раз в сеансе SQL*Plus с параметром CASCADE, чтобы выяснить, постоянно ли при этом обнаруживаются ошибки целостности данных.
Для секционированных таблиц команда ANALYZE также проверяет принадлежность строки к соответствующей секции.Значение ROWID неверно расположенной строки заносится в таблицу INVALID JROWS.
SQL> ANALYZE TABLE секционеров а нная__таблииа PARTITION (pl)
2 VALIDATE STRUCTURE INTO invalid_rows;
Простая команда выбора (SELECT * FROM table) полностью просматривает таблицу, читая все блоки до отметки максимального заполнения. Такую команду можно использовать для быстрой проверки наличия повреждений в текущих данных таблицы. Кроме того, можно воспользоваться утилитой Data Pump для экспорта объектов; в этом случае также производится полное сканирование каждой таблицы.
Примечание: команда ANALYZE проверяет битовые матрицы, используемые при автоматическом управлении пространством сегментов (auto segment space management -ASSM), но не принимает во внимание неразмеченные блоки ниже отметки максимального заполнения.
Oracle Database 10$: Administration Workshop II 7-11
Проверка целостности блока в реальном времени:db_block_checking
Параметр инициализации db_block_checking:
•	Управляет уровнем проверок непротиворечивости, производимых над каждым блоком во время его обработки
•	Может помочь предотвратить повреждения памяти и данных
•	Может быть установлен с помощью команд alter SESSION ИЛИ ALTER SYSTEM DEFERRED
7-12 Copyright © 2006, Grade. All rights reserved.|
Проверка целостности блока в реальном времени: dbjblockjCHECKING
Когда значение параметра равно TRUE, осуществляется проверка всех блоков данных.
Производя такие проверки Oracle, читает данные блока, чтобы убедиться в их согласованности. Включенная проверка блоков часто предотвращает повреждения памяти и данных. Дополнительные накладные расходы, которые обычно при этом возникают, составляют от 1 до 10%, в зависимости от рабочей нагрузки. Чем больше изменений и вставок, тем дороже обходится включение этого режима проверки. Параметр DB_BLOCK__CHECKING может иметь одно из следующих значений:
•	OFF; никакие проверки блоков не производятся ни в каком табличном пространстве, за исключением SYSTEM.
LOW; производятся основные проверки заголовка блока после изменения содержимого блока в памяти (например, после команд UPDATE и INSERT, а также чтений с диска).
•	MEDIUM; производятся все проверки, определяемые значением LOW, а также проверки блоков, не принадлежащих индекс-таблицам.
♦	FULL; производятся все проверки, определяемые значениями LOW и MEDIUM, а также проверки индексных блоков.
Для параметра DB _BLOCK_CHECKING следует устанавливать значение FULL, когда с точки зрения производительности допустимы возникающие накладных расходы.
Для обратной совместимости по умолчанию установлено значение FALSE, что эквивалентно OFF.
Даже если эта возможность отключена, табличное пространства SYSTEM всегда проверяется.
Oracle Database 10g* Administration Workshop I! 7-12
Проверка целостности блока в реальном времени: db_block__checksum
Параметр инициализации db_block_checksum:
• Определяет, сопровождается и проверяется ли контрольная сумма для каждого блока
Может предотвратить повреждение, причиной которого являются базовые системы ввода-вывода
* oraclg
Copyright © 2006, Oracle. All rights reserved.
Проверка целостности блока в реальном времени: dbjblock_checksum
Когда параметр DB__BLOCK__CHECKSUM установлен в TRUE, процесс DBWn и операция прямой загрузки подсчитывают контрольную сумму и сохраняют ее в заголовке (cache header) каждого блока во время записи его на диск. Контрольная сумма - это число, подсчитываемое по всем байтам блока. При последующем чтении блока контрольная сумма пересчитывается и сравнивается с хранимым в блоке значением. Так как контрольные суммы позволяют обнаружить повреждения дисков, систем хранения и систем ввода-вывода, вызывая при этом небольшие накладные расходы (от 1% до 2%), корпорация Oracle рекомендует устанавливать в TRUE значение параметра DBJBLOCK_CHECKSUM
Oracle Database 10g: Administration Workshop II 7-13
Использование утилиты ЕХР для обнаружения повреждения
Обычный режим экспорта можно использовать для обнаружения повреждения.
$ exp hr/hr tables=departments
About export specified tables via Conventional. Bm
. . exporting table	DEPARTMENTS
EXP-00056^ ORACLE error 1578 encountered
ORA-0157Ss ORACLE data block corrupted (file # 5-, block #
51)
ORA-OlllO: data .file 5i
’ /uOl/app/oracle/oradata/orcl/ifxainpleOl .dbf’

f ~ t	И	CxV/lvJ. Г-ЧП *	VvU.
Использование утилиты exp для обнаружения повреждения
Другая возможность обнаружения поврежденных блоков предоставляется утилитой экспорта (ЕХР). Поскольку утилита ЕХР полностью сканирует каждый блок экспортируемого объекта, она выдает сообщение об ошибке при обнаружении поврежденного блока.
Oracle Database 10g: Administration Workshop II 7-14
Использование flashback в случае логических повреждений
Versions Query
Flashback
Найдены поврежденные данные
Flashback Transaction Query
Пользователь
Отмена кода SQL или откат таблицы
7-15 Copyright © 2006, Oracle. All rights reserved.
Использование flashback в случае логических повреждений
После исключения причин появления физических повреждений можно воспользоваться возможностями технологии ретроспективных данных для выяснения того, когда появилось логическое повреждение. Например, можно сначала просмотреть строки, полученные с помощью Flashback Versions Query . Затем, используя полученные идентификаторы транзакций, просмотреть все объекты, на которые оказала воздействие одна и та же транзакция.
Для восстановления поврежденных данных можно воспользоваться кодом, возвращаемым в столбце UNDO__SQL, или же откатить таблицу назад к моменту времени (SCN) перед началом транзакции.
Примечание: подробно выполнение Flashback Versions Query рассматривается в курсе Oracle Database 10g: Администрирование I.
Oracle Database 10g: Administration Workshop II 7»15
Пакет DBMS repair
Процедуры пакета:
•	CHECK_OBJECT
•	FIX_CORRUPT_BLOCKS
•	DUMP_ORPHAN_KEYS
•	REBUILD_FREELISTS
•	SEGMENT_FIX_STATUS
•	SKIP_CORRUPT_BLOCKS
•	ADMIN_TABLES
Copyright © 2006, Oracle. AH rights reserved.
Пакет DBMS_REFAIR
Другой способ устранения влияния повреждений блоков данных состоит в использовании пакета DBMS_REPAIR. Пакет применяется для обнаружения и устранения поврежденных блоков таблиц и индексов. Он позволяет найти место повреждения и. не прекращая использования объекта, выполнять действия по его перестройке или устранению повреждений. Пакет содержит следующие процедуры:
•	CHECKJOB JECT; обнаружение и выдача информации о повреждениях в таблице или индексе;
FIX^CORRUPTJBLOCKS помечает блоки, ранее обнаруженные процедурой CHECK OB JECT, как программно (или логически) поврежденные;
-	DUMP_ORPHANJKEYS заносит в таблицу сведений о зависших ключах индекса, ссылающихся на поврежденные блоки данных;
REBUILD^FREELISTS; перестройка списков свободных блоков объекта;.
-	SEGMENT_FIX_STATUS; предоставляет возможность устранения поврежденного состояния входа битовой матрицы, используемой при автоматическом управлении свободным пространством сегмента;
•	SKIP_CORRUPT_BLOCKS; при полных просмотрах таблицы или индекса игнорируются блоки, отмеченные как поврежденные; когда поврежденные блок не отмечен, возникает ошибка ORA- 01578.
•	ADMINJFABIiES; возможности сопровождения (создание, удаление, очистка) таблиц с данными о табличных повреждениях или orphan keys (записи индекса, указывающие на несуществующие строки таблицы); такие таблицы всегда создаются в схеме SYS.
Примечание: зависшие ключи индекса (orphan keys) - записи индекса, указывающие на несуществующие строки таблицы.
Oracle Database 10g: Administration Workshop II 7-16
Использование пакета dbms_repair
1. Обнаружение и отчет о повреждениях.
SET S|?P.VEROUT₽UT ON
Е.	INI;
nua^borri^t := 0;	•	!
DB^jteFAIR.C№CKjOBJECT, (
schema_name ==>
object_name => МЖрАйТМЕЖЗ *-f
repair_table_name => !REPAIRATABLE', corrupt, count, s=> num corrupt) I «3	ж*
ида .......*................................:.________
2. Оценка преимуществ и издержек, связанных с использованием пакета dbmsjrepair.

_____7-17__________________Copyright © 2006, Oracle. Ait rights reserved.______
Использование пакета dbmsjrepair
Первая задача, которую следует решить до использования пакета DBMSJREPAIR, -обнаружение и получение сведений о повреждениях. Это предполагает не только установление того, что неверно в блоке, но также и определение соответствующих директив исправления (repair) повреждений. После использования инструментов, представленных ранее в этом уроке, можно рассмотреть возможность применения пакета DBMS_REPAIR для исправления повреждения. Процедура CHECK_OBJECT проверяет заданный объект и заполняет служебную таблицу сведениями о повреждениях и директивах по их устранению. Перед выполнением любой процедуры пакета
DBMS_REPAIR необходимо иметь созданную таблицу результатов проверки. Для этого используется процедура ADMIN__T ABLES:
BEGIN
DBMS__REPAIR. ADMINjTABLES ( table_name => ’REPAIR__TABLE’, table_type => DBMS_REPAIR.REPAIR_TABLE, action => DBMS_REPAIR.CREATE__ACTIONZ tablespace => ’USERS’);
END;
До применения пакета DBMS_ REPAIR следует оценить преимущества и связанные с ним искажения результатов обработки данных. Следует также оценить возможность использования других средств обнаружения поврежденных объектов.
Oracle Database 10g: Administration Workshop II 7-17
Использование пакета dbmsjrepair (продолжение)
На нервом шаге необходимо ответить на следующие вопросы.
♦	Насколько велики повреждения? Выполните процедуру CHECK OBJECT, чтобы занести сведения о повреждениях и указания по их устранению в таблицу результатов. Затем выполните запрос данных из этой таблицы.
•	Какие другие возможности доступны для обнаружения и устранения поврежденных блоков?
•	Какие логические повреждения отмечаются с помощью пакета DBMS JRE PAIR и каковы последствия такого подхода, в результате которого можно использовать объект? Можно ли добиться удовлетворительных результатов при таком подходе?
*	Если при устранении последствий повреждений теряются данные, можно их все таки как-то получить?
Данные можно выбрать из индекса, когда блок данных отмечен как поврежденный.
Процедура DUMP-ORPHAN KEYS может помочь выбрать эту информацию. Конечно такой способ получения данных в значительной степени зависит от объема информации таблицы, не хранимой в индексе.
В ниже приводимом примере показывается, как создается таблица ORPHANJKEY~TABLE, используемая для получения сведений о зависших ключах и размещаемая в табличном пространстве USERS.
BEGIN
DBMS__REPAIR. ADMINJTABLES (
table_name => ’ ORPHANJKEYJTABLE' , table_type => DBMS REPAIR.ORPHANJTABLE, action => DBMS__REPAIR.CREATE__ACTION, tablespace => ‘USERS1);
END;
Oracle Database 10g: Administration Workshop II 7-18
Использование пакета dbms_repair
3. Переведите объект в состояние, позволяющее его использовать.
Использование пакета dbmsjrepair (продолжение)
Пакет DBMSJREPAIR возвращает объект в состояние, позволяющее его использовать. Для этого выполняются процедуры FIX_CORRUPT__BLOCKS и SKIP__CORRUPT BLOCKS.
После их применения игнорируются повреждения, обнаруживаемые при полных просмотрах таблицы и индекса.
С помощью процедуры FIX CORRUPT^BLOCKS блоки с искаженной информацией (например, в какой-либо строке блока) отмечаются как поврежденные. Затем процедура SKIP__CORRUPT__BLOCKS устанавливает режим пропуска при полном просмотре таблицы или индекса отмеченных поврежденных блоков. Эти процедуры используются для устранения влияния повреждений media и soft corrupted блоков. Вы можете выяснить, включена ли возможность пропуска помеченных поврежденных блоков таблицы, запросив столбец SKIP__CORRUPT в представлении словаря данных DBA__TABLES.
Если данные в индексе и таблице не согласованы, тогда в транзакции, в которой установлен режим SET TRANSACTION READ ONLY, возможно рассогласование выбираемых данных, если в одном запросе данные читаются только из индекса, а в последующем из индекса и таблицы. Когда блок в таблице отмечен как поврежденный, эти два запроса возвращают разные результаты, нарушая правило целостного чтения в рамках всей транзакции. Один из выходов из такой ситуации - неприменение режима пропуска поврежденных блоков, когда в транзакциях используется команда SET TRANSACTION READ ONLY.
Oracle Database 10g: Administration Workshop II 7-19
Использование пакета dbms_repair
4. Устранение повреждений и перестройка потерянных данных.
г-------------- ..........:-—--------—.
SET SERVEROOTWT ON
^DECLARE num_orphans INT;
j Binuorphans
schemajname -> 6 SCOTT? ,
; object_name «> *FKJDEPT* ,
\ c^ject^type ->	.INDEX_OBJECT>
r^p®^r^tabXe_name -> SREFAIRJEABLE* f orphan table name * ORPHAN КЕУ TABLE * r «*?*!*?
kegjMmt num_orphans) ;
DBMS_OUTPOT. POT^LINE (* orphan key count: r | | TOJ2HAR (nuio^ozphans) ) ;
END; ' .. ,....'. ‘ ___________________......: ..

7-20 Copyright © 2006, Oracle. AH rights reserved.
Использование пакета dbmsjrepair (продолжение)
После перевода объекта в пригодное для использование состоянии можно восстановить данные, используя процедуру DUMP__ORPHAN__KEYS. Она сообщает об индексных входах, которые указывают на поврежденные блоки данных. Сведения о всех таких индексных входах (ключ и ROW ID) вставляются в таблицу зависших ключей (orphan key table). Таблица зависших ключей должна быть предварительно создана.
После просмотра информации об индексных входах можно перестроить индекс, используя команду ALTER INDEX ... REBUILD ONLINE.
Oracle Database 10g: Administration Workshop II 7-20
Восстановление блоков после сбоя носителя (BMR)
•	BMR уменьшает среднее время восстановления
•	BMR сохраняет доступность информации
-	Файл данных остается в оперативном состоянии во время восстановления
-	Недоступны только восстанавливаемые блоки
• Команда RMAN blockrecover запускает BMR
-	Из доступных резервных объектов копируются отдельные блоки
-	Сервер выполняет их согласование
7-21 Copyright © 2006, Orade. All rights reserved.
Восстановление блоков после сбоя носителя
Восстановление блоков после сбоя носителя (Block Media Recovery ~~ BMR} позволяет вместо файла данных восстанавливать наименьшую структуру единицу:- один блок. Если известно, что необходимо восстановить небольшое число блоков, тогда наиболее эффективный путь - скопировать из резерва и восстановить эти блоки. В ходе восстановления только восстанавливаемые блоки недоступны, остальная часть базы остается открытой для оперативного доступна. BMR имеет два главных преимущества по сравнению с восстановлением на уровне файла:
•	меньшее среднее время восстановления (mean time to recover - MTTRy,
•	более высокая степень доступности информации во время восстановления, поскольку файл данных остается в оперативном состоянии.
В ходе BMR используются существующие механизмы восстановления и применяются потоки данных из журналов повторного выполнения к версиям блоков, скопированным из подходящих резервных объектов. Выполняя BMR, утилита RMAN копирует из доступных резервных объектов отдельные блоки данных и согласовывает их с помощью серверного процесса Oracle. Без восстановления на уровне блока, даже если поврежден только один блок, весь файл данных должен быть скопирован из резерва и все изменения из журналов должны быть применены к файлу для восстановления. Уменьшение MTTR при использовании восстановления на уровне блока достигается за счет снижения как времени копирования из резервов, так к и времени восстановления. Отметим, что возможно только полное восстановление. Неполное восстановление приведет базу данных в логически несогласованное состояние.
Oracle Database 10$: Administration Workshop II 7-21
Команда blockrecover
•	Команда blockrecover выявляет резервные объекты, содержащие восстанавливаемые блоки.
•	Команда читает резервные объекты и аккумулирует требуемые блоки во входных буферах оперативной памяти.
•	Команда blockrecover управляет сеансом восстановления поврежденных блоков, считывая при необходимости архивные журналы из резерва.
•	Не может быть использована для неполного восстановления.
RMAN> BLOCKRECOVER DATAFILE 6 BLOCK	~1
.........    г..........
J	WI _яС
7-22 Copyright© 2006, Oracle. АН rights reserved.
Команда RMAN BLOCKRECOVER
RMAN поддерживает BMR с помощью команды BLOCKRECOVER. Пользователь обнаруживает поврежденные блоки, когда получает сообщение об ошибке или просматривает сигнальный и трассировочные файлы. После этого АБД может воспользоваться командой BLOCKRECOVER, чтобы восстановить из резервного объекта только требуемый блок. В результате система не простаивает в течение большого промежутка времени и данные остаются доступными.
Команда BLOCKRECOVER выполняет следующие действия:
•	Выявляет резервные объекты, из которых будут извлекаться блоки для восстановления.
•	Читает резервные объекты и аккумулирует требуемые блоки во входных буферах оперативной памяти. Если какой-либо из требуемых блоков поврежден (вследствие повреждения носителя или логического искажения), RMAN читает предыдущую резервную копию, содержащую необходимый файл. Выбор резервных наборов или копий файлов ограничивается опцией UNTIL, в которой задается момент времени, SCN или номер журнала, до которых включительно должно было быть выполнено резервирование. При использовании в команде BLOCKRECOVER опции UNTIL может использоваться не самый последний по времени зарезервированный объект.
•	Запускает и управляет сеансом восстановления поврежденного блока, читает архивные журналы из резерва, когда это необходимо.
•	Всегда производит полное восстановление. По команде BLOCKRECOVER нельзя выполнить восстановление на момент-в-прошлом.
Oracle Database 10$: Administration Workshop II 7-22
Примеры использования команды
BLOCKRECOVER
•	Восстановление группы поврежденных блоков.
•	Ограничение типа резервных объектов, используемых в команде восстановления на уровне блоков.	* *
*	Ограничение на используемые при восстановлении резервные объекты, задаваемое тэгом.
•	Ограничение на используемые при восстановлении на уровне блока резервные объекты, задаваемое в виде момента времени, SCN или номера журнала.
.______ ______________________________I

[7-23 Copyright © 2006, Oracle. Ail rights reserved.
Примеры использования команды blockrecover
• Восстановление группы поврежденных блоков:
BLOCKRECOVER DATAFILE 2 BLOCK 12, 13 DATAFILE 7 BLOCK 5, 98, 99 DATAFILE 9 BLOCK 19;
• В этом примере восстанавливаются заданные в команде блоки, которые извлекаются голько из копий файлов данных:
{ BLOCKRECOVER DATAFILE 3 BLOCK 1,2,3,4,5 TABLESPACE sales DBA 4194405, 4194409, 4194412 FROM DATAFILE COPY;
I
Примечание: DBA - это адрес блока данных (data block address).
* Ограничение на используемые при BMR резервные объекты, задаваемое тэгом: BLOCKRECOVER TABLESPACE SYSTEM DBA 4194404, 4194405 FROM TAG "weekly_backup";
* В следующем примере восстанавливаются два блока табличного пространства SYSTEM и при этом используются резервные объекты, с момента получения которых прошло хотя бы два дня:
BLOCKRECOVER TABLESPACE SYSTEM DBA 4194404, 4194405 RESTORE UNTIL TIME 'SYSDATE-21;
Oracle Database 10g: Administration Workshop II 7-23
Примеры использования команды blockrecover (продолжение)
•	В следующем примере восстанавливаются два блока и при этом используются резервные объекты, полученные до SCN 100:
BLOCKRECOVER DATAFILE 9 BLOCK 13 DATAFILE 2 BLOCK 19 RESTORE UNTIL SCN 100;
•	В следующем примере восстанавливаются два блока и при этом используются резервные объекты, полученные до журнала 7024:
BLOCKRECOVER DATAFILE 9 BLOCK 13 DATAFILE 2 BLOCK 19 RESTORE UNTIL SEQUENCE 7024;
Oracle Database 10g: Administration Workshop II 7-24
Интерфейс BMR, предоставляемый утилитой RMAN
•	Представление v$database_block_corruption хранит перечень поврежденных блоков БД.
RMAN> BLOCKRECOVER CORRUPTION LIST
2> RESTORE UNTIL TIME 'sysdate - 10';
•	Представление v$backup_corruption отражает перечень поврежденных блоков файлов данных в резервных наборах.
•	Представление v$copy__corruption отражает перечень поврежденных блоков в копиях образов файлов.

7~25 Copyright © 2006, Oracle. All rights reserved.j
Интерфейс BMR, предоставляемый утилитой RMAN
Используя фразу CORRUPTION LIST, можно восстановить блоки, которые перечисляются в представлении V$DATABASE__BLOCK__CORRUPTION. Это представление заполняется в ходе операции резервирования при обнаружении поврежденных блоков. Когда в процессе резервирования обнаруживается большее, чем допустимо количество поврежденных блоков, представление совсем не заполняется. Вам следует в таком случае выполнить команду BACKUP. . .VALIDATE, чтобы полностью заполнить это представление сведениями о всех поврежденных блоках.
После устранения повреждения в результате восстановления на уровне блока (или обычного восстановления после потери носителя) представление V$DATABASE_BLOCK^CORRUPTION не изменяется до тех пор, пока не будет произведено новое резервирование. Фраза UNTIL определяет, какие резервные наборы и копии могут быть использованы для извлечения блока. В ней указывается время, SCN или номер журнала. Резервный объект, полученный до момента, задаваемого одним из этих параметров, может быть использован для извлечения и восстановления блока. При использовании возможности BMR всегда выполняется полное восстановление до текущего момента времени.
Два типа повреждений отражаются в строках представлений V$BACKUP__CORRUPTICN и V$COPY_CORRUPTION после выполнения команд BACKUP и COPY.
•	Физические повреждения (иногда называемые повреждениями носителя). Сервер Oracle совсем не распознает блок: контрольная сумма неправильная, блок содержит одни нули или заголовок (header) и конечная часть (footer) блока не соответствуют друг другу. Проверка физических повреждения по умолчанию включена (ON) и может быть отключена с помощью опции NOCHECKSUM.
•	Логические повреждения. Контрольная сумма блока правильная, заголовок и конечная часть блока соответствуют друг другу и т.д. Однако содержимое блока логически противоречиво. По умолчанию логическая проверка отключена (OFF) и может быть включена с помощью опции CHECK LOGICAL.
Oracle Database 10g: Administration Workshop II 7-25
Альтернативные действия
* Таблица: данные в поврежденном блоке потеряны
-	Удалите таблицу, создайте ее повторно и импортируйте данные из экспортного файла
-	С помощью SQL и PL/SQL извлеките данные из таблицы и перенесите в новую созданную таблицу	f 
• Индекс: удалите и повторно	« j
создайте индекс	7^
i 7-26 Copyright © 2006, Oracle. AH rights reserved.
Альтернативные действия
Если вы не собираетесь выполнять для файлов данных операции restore и recover, тогда можете с помощью приведенного ниже запроса выяснить, какой объект был поврежден.
В сообщении об ошибке, вызванной обращением к поврежденному блоку, выводится абсолютный номер файла и номер блока. Пусть, например, это файл с абсолютным номером 5 и блоком 2:
ORA-01578: ORACLE data block corrupted (file #5, block# 2)
Выполните следующую команду:
SQL> SELECT segment__nairie, segment__typer relative_fno
2 FROM dba__extents
3 WHERE file__id - 5
4 AND 2 BETWEEN blockid AND block__id f blocks - 1;
SEGMENT__NAME SEGMENT_TYPE RELATIVE__FNO
EXAMPLE
TABLE PARTITION
После выявления поврежденного объекта можно попробовать другие варианты восстановления. Воспользуйтесь dump-файлов, полученным путем экспорта, чтобы восстановить таблицу. Или же напишите код SQL для создания таблицы из поврежденной. При этом могут потребоваться знания о бизнес-данных. Для поврежденного индекса наиболее эффективный способ - просто удалить и пересоздать индекс.
Oracle Database 10g: Administration Workshop II 7*26
Итоги
* Причины возникновения повреждений в базе данных:
-	аппаратное обеспечение
-	программное обеспечение
• Обнаружение повреждений в базе данных с помощью:
-	ANALYZE
-	dbverify
-	DB_BLOCK_CHECKING
-	DBMS_REFAIR
•	Использование RMAN для устранения повреждений
11	’ .л ........
7-27	___________________Copynght© 2006, Oracle. All rights reserved.
Oracle Database 10g: Administration Workshop II 7-21
Обзор практического занятия: восстановление блоков после сбоя носителя
•	Обнаружение повреждений
*	Выявление месторасположения повреждения
•	Устранение повреждений с помощью восстановления на уровне блока
|7-28 Copyright © 2006, Oracle. АП rights reserved
Oracle Database 10g: Administration Workshop II 7*28
Мониторинг и управление памятью
Рассматриваемые вопросы
•	Описание компонентов, размещаемых в SGA
•	Реализация автоматического управления разделяемой памяти
•	Ручное конфигурирование параметров SGA
•	Конфигурирование автоматического управления PGA
8-2
Copyright © 2006, Oracle. All rights reserved.
Oracle Database 10g: Administration Workshop II 8-2
Обзор управления памятью
Управление памятью должно рассматриваться АБД как важная часть его работы:
•	Размер доступной памяти ограничен
•	Выделение большей памяти для использования определенными видами функций может повысить общую производительность
•	Автоматическое выделение памяти - наиболее подходящая конфигурация. Однако в определенных средах или при одних и тех же коротких условиях может потребоваться дополнительное рассмотрение.
ORACUe
Обзор управления памятью
Память сервера баз данных имеет определенный размер. Поэтому пространство, доступное экземпляру базы данных Oracle, ограничено. Необходимо уделять внимание тому, как распределяется память. Когда слишком много памяти под определенную область, а в этом нет необходимости, тогда существует вероятность того, что функционирование неоптимально, так как другим областям недостаточно места.
Использование автоматического выделения памяти значительно упрощает задачу. Но даже в таком случае в целях оптимизации необходим мониторинг и может потребоваться ручное конфигурирование размеров некоторых частей памяти.
В курсе Oracle Database 10g: Администрирование I было представлено введение в вопросы настройки памяти. В этом уроке описывается, как функционирует автоматическая настройка памяти, когда производить ручную настройку, что представляет из себя программная глобальная область (Program Global Area - PGA), а также предоставляются подробные сведения о каждой структуре памяти экземпляра Oracle.
Oracle Database 10g: Administration Workshop II 8-3
Структуры памяти Oracle
8-4 Copyright © 2006, Oracle. АИ rights reserved.
Структуры памяти Oracle ~
С экземпляром Oracle связаны следующие основные структуры памяти:
•	системная глобальная область (System Global Area - SGA); эта область совместно используется всеми серверными и фоновыми процессами.
•	программная глобальная область (Program Global Area - PGA); такая приватная область выделяется для каждого серверного и фонового процесса (одна область PGA для каждого процесса).
SGA - разделяемая область, содержащая данные и управляющую информацию экземпляра.
SGA содержит следующие структуры данных:
•	кэш буферов базы данных (database buffer cache) - используется для кэширования блоков, выбираемых из файлов данных;
•	журнальный буфер (redo log buffer) - содержит журнальные данные перед их записью в журнальные файлы;
•	разделяемый пул (shared pool) - содержит различные структуры, которые могут совместно использоваться пользователями;
•	большой пул (large pool) ~ необязательная область памяти, используемая буферами ввода-вывода большого объема при выполнении параллельных запросов, разделяемым сервером, Oracle ХА, а также определенными типами операций резервирования;
•	java-пул - используется при выполнении Java-кода всех сеансов и обработки данных внутри виртуальной Java-машины {Java Virtual Machine - JVM)\
•	streams пул - используется опцией Oracle Streams;
•	keep пул - необязательный дополнительный пул буферов для объектов, чьи блоки должны оставаться в памяти как можно дольше;
*	recycle пул - для блоков, которые не должны задерживаться в памяти;
Oracle Database 10g: Administration Workshop il 8-4
Структуры памяти Oracle (продолжение)
® кэши буферов для блоков размера яК; кэшируют блоки данных, размер которых отличается от стандартного размера блока базы данных; используются для поддержки перемещаемых табличных пространств (transportable tablespaces}.
В динамической инфраструктуре SGA размеры кэша буферов базы данных, разделяемого пула, большого пула, Streams-пула и Java-пула изменяются без остановки экземпляра. Кроме того, размеры таких структур памяти, как удерживающий кэш буферов (keep buffer cache), рециклирующий кэш буферов (recycle buffer cache), а также кэши буферов для блоков размера иК, могут быть изменены без остановки экземпляра.
Преконфигурированная база данных предварительно настроена и для нее установлены соответствующие параметры использования памяти. Однако по мере расширения использования может возникнуть необходимость изменить установки таких параметров.
Oracle предоставляет сигнальные сообщения и рекомендации для выявления проблем, связанных с размерами структур оперативной памяти и определению подходящих значений параметров использования памяти.
Программная глобальная область (Program Global Area - PGA) ~ область памяти, содержащая данные и управляющую информацию для каждого серверного процесса. Серверный процесс (server process) - это такой процесс, который обслуживает запросы по выполнению команд, поступающие от клиента. Каждому серверному процессу принадлежит своя собственная приватная область PGA, которая создается, когда запускается серверный процесс. Доступ к этой области предоставляется исключительно этому серверному процессу и все действия по чтению и записи в эту область производятся только путем вызова соответствующего кода сервера Oracle.
Размер памяти, используемой PGA, и ее содержимое зависит от того, сконфигурирован ли экземпляр в режиме разделяемого сервера. Обычно PGA содержит следующее.
•	Приватная область SQL (private SQL area)
В этой области находятся такие данные, как информация привязки и структуры памяти, используемые при выполнении команды. Каждый сеанс, в котором вводится команда SQL, имеет приватную область SQL.
•	Память сеанса (session memory)
В памяти сеанса находятся переменные сеанса и другая информация, связанная с сеансом.
Oracle Database 10g: Administration Workshop II 8-5
Кэш буферов
SGA
Список Очередь
LRU контрольной точки Кэш буферов БД
DB_CACHE_SIEE
DB_RECYCLE_CACHE_SIEE
DBJKEEP_CACHEJSI ЕЕ
Файлы данных
ORACL.6'
DBJBLOCK SI2E
I В-6 Copyright © 2006, Oracle. AH rights reserved.
Кэш буферов
Для конфигурирование кэша буферов используется параметр DB__CACHE__SIZE. Кэш буферов содержит копии блоков данных из файлов данных. Размер этих блоков равен значению параметра DBJBLOCK__SIZE. Поскольку кэш буферов является частью SGA, эти блоки могут использоваться всеми пользователями. Серверные процессы читают блоки из файлов данных в кэш буферов. Для повышения производительности серверный процесс иногда читает несколько блоков за одну операцию чтения. Процесс DBWn записывает данные из кэша буферов в файлы данных. Для повышения производительности процесс DBWn записывает несколько блоков за одну операцию записи.
В произвольный момент времени кэш буферов может содержать несколько копий одного и того же блока базы данных. Только одна из них является текущей, остальные конструируются на основе информации сегментов отмены (construct read-consistent copies from past image information - CR block). Они обеспечивают целостные чтения данных.
Для мониторинга использования буферов используется список наиболее давно использовавшихся (least recently used-LRU) буферов. В этом списке буферы сортируются на основе учета того, как давно и как часто они использовались. Поэтому в одном конце этого списка находятся буферы, которые использовались совсем недавно (most recently used -MRU), а в другом ~~ давно не использовавшиеся буферы, которые доступны в первую очередь для перезаписи блоками, поступающими в кэш. Поступающий блок копируются в буфер в конце списка, где располагаются давно не использовавшиеся блоки, а затем переносится в середину списка. После этого он будет перемещаться вверх или вниз по списку в зависимости от использования.
Oracle Database 10g: Administration Workshop II 8-6
Характеристики кэша буферов (продолжение)
Буферы в кэше буферов могут быть в одном из четырех состояний:
•	Pinned (“закрепленный”) - означает, что несколько сеансов не могут в один и тот же момент времени писать в один блок и вынуждены ждать доступа к блоку, находящемуся в буфере.
•	Clean (“чистый”) - означает, что буфер в настоящее время не закреплен (unpinned) и является кандидатом на удаление из кэша, если на его содержимое не будет опять ссылок. Содержимое буфера либо синхронизировано с блоком на диске, либо буфер использовался для генерации и обработки старого моментального снимка блока в режиме целостного чтения {consistent read - CR блок).
*	Free/unused (свободный/неиспользуемый) ~~ означает, что буфер пустой, т.к. экземпляр только что был запушен. Состояние очень похоже на состояние clean, за исключением того, что буфер еше не использовался.
*	Dirty (“грязный”) - буфер больше не является закрепленным, но его содержимое было изменено и должно быть записано на диск процессом DBWn перед удалением из кэша.
Серверные процессы используют блоки в кэше буферов, но доступными блоки делает процесс DBWn, записывая их в файлы данных. Очередь контрольной точки {checkpoint queue} представляет собой список буферов (блоков), которые должны быть записаны на диск.
Oracle поддерживает использование несколько размеров блоков в одной и той же базе данных. Стандартный размер блока используется в табличном пространстве SYSTEM и задается параметром инициализации DB__BLOCK_SIZE. Нестандарные размеры блока могут иметь значение 2П в диапазоне от 2 Кб до 32 Кб и задаются следующими параметрами инициализации:
•	DB__2 К_СACHE_SIZE
•	DB__4K_CACHE__SIZE
•	DB__8K__CACHE__SIZE
.	DB__16K_CACHE_SI ZE
.	DB__3 2 K__C ACHEJSIZ E
Параметры DB__nK__CACHE_SIZE не могут использоваться для задания размера кэша с буферами, равными стандартному размеру блока. Если значение параметра DB__BLOCK___SIZE равно пК, тогда нельзя задать параметр DB_nK_CACHE__SIZE. Размер кэша с буферами стандартного размера всегда определяется параметром DB_CACHE_SIZE.
Любой кэш буферов ограничен по размеру. Поэтому не все данные, хранимые на диске, могут разместиться в кэше. Когда кэш заполнен полностью, последующие непопадания в кэш {cache misses) заставляют Oracle производить запись “грязных” (измененных) данных из кэша на диск для того, чтобы освободить место для новых данных. Если буфер “негрязный”, то не требуется писать его содержимое на диск перед чтением нового блока в буфер. Последующее обращение в данным, которые уже были записаны на диск, вызовет дополнительное неудачное чтение из кэша (cache misses).
Размер кэша влияет на вероятность того, что запрос данных обнаружит' их в кэше {попадание в кеш - cache hit). Когда кэш большой, больше вероятность того, что в нем содержатся запрашиваемые для обработки данные. С увеличением размера кэша возрастает процент удачных обращений к кэшу {cache hits).
Oracle Database 10g: Administration Workshop II 8-7
Использование нескольких пулов буферов
АБД может повысить производительность кэша буферов базы данных, создавая несколько буферных пулов. Объекты назначаются буферному пулу в зависимости от того, как осуществляется доступ к этим объектам. Существует три буферных пула:
•	KEEP (удерживающий); используется для удержания в памяти объектов, вероятность повторного использования которых велика - это позволяет уменьшить количество операций ввода-вывода. Удержание буферов в этом пуле обеспечивается за счет задания такого размера пула, который больше чем общий размер сегментов, размещаемых в этом нуле. В результате не возникнет необходимость выгрузки буферов из оперативной памяти на диск. Удерживающий пул конфигурируется путем задания значения параметра DBJKEEP__CACHE SIZE.
•	RECYCLE (повторно используемый); используется для удаления из памяти блоков, если вероятность их повторного использования мала. Размер повторно используемого пула меньше, чем общий размер размещаемых в нем сегментов. Поэтому блоки, читаемые в этот пул, часто выгружаются на диск.Данный пул конфигурируется путем задания значения параметра DB _RECYCLE__CACHESIZE.
•	DEFAULT (стандартный пул по умолчанию); этот пул существует всегда - он эквивалентен единственному кэшу буферов для экземпляра без удерживающего и рециклирующего пулов и конфигурируется с помощью параметра DB__CACHE_SIZE.
Примечание: память пулов keep и recycle не выделяется из пространства пула default.
Oracle Database 10g: Administration Workshop II 8-8
Использование нескольких пулов буферов
CREATE INDEX cust_idx .г.
STORAGE (BOTFERJPOOL '"KEEP ,...) ;
ALTER TABLE oe.customers
STORAGE (BUFFER_ROOL RECYCLE);
ALTER INDEX oe. cus t_lname__ix STORAGE (BUFFER_POOL KEEP);
Copyright © 2006, Oracle. Ail rights reserved.
Использование нескольких пулов буферов (продолжение)
Фраза BUFFER POOL определяет буферный пул, который используется объектом по умолчанию. Она является частью предложения STORAGE и допустима в командах CREATE и ALTER для таблиц, кластеров и индексов. Блоки объекта, для которого явно не задан буферный пул, будут помещаться в пул DEFAULT.
Синтаксис:
BUFFER__POOL [KEEP j RECYCLE | DEFAULT] .
Если в команде ALTER для объекта изменяется пул буферов по умолчанию, то все блоки, которые уже кэшированы в текущем пуле, остаются в нем до тех пор. пока они не будут выгружены обычным образом. Блоки, читаемые с диска, будут размешаться в новом буферном пуле, заданном для данного сегмента.
Пулы буферов назначаются сегменту, поэтому объекты с несколькими сегментами могут иметь блоки в нескольких буферных пулах. Например, индекс-таблица может иметь разные буферные пулы, определенные для индексного сегмента и сегмента переполнения.
Oracle Database 10g: Administration Workshop II 8-9
Разделяемый пул
•	Размер определяется SHARED_POOL_SIZE
•	Библиотечный кэш содержит текст команд, разобранный код и план выполнения.
•	Кэш словаря данных содержит определения таблиц, столбцов и привилегии из таблиц словаря данных.
•	UGA содержит информацию о сеансах
пользователей, когда используется архитектура
разделяемого сервера.
Copyright © 2006, Oracle. АН rights reserved
Разделяемый пул
Размер разделяемого пула можно задать с помощью параметра инициализации SHARED__POOL__SIZE. Разделяемый пул {sharedpool) ~ это область памяти, в которой хранится информация, совместно используемая многими сеансами. Он содержит различные данные, которые отражены на слайде.
Библиотечный кэш
Библиотечный кэш содержит разделяемые области SQL и PL/SQL: полностью разобранные или откомпилированные представления блоков PL/SQL и команд SQL.
К блокам PL/SQL относятся:
•	процедуры и функции;
•	пакеты;
*	триггеры;
•	анонимные блоки PL/SQL-
Кэш словаря данных
Кэш словаря данных используется для хранения в памяти объектов словаря данных.
Users Global Area (UGA)
UGA содержит информацию о сеансах разделяемого сервера Oracle. При их использовании UGA размешается в разделяемом пуле, если не сконфигурирован большой пул.
Oracle Database 10$: Administration Workshop II 8»10
Большой пул
Может быть сконфигурирован как отдельная область памяти в SGA
Размер устанавливается largejpooljsize
Предназначен для хранения в памяти:
-	UGA
-	данных, используемых операциями резервирования и восстановления «
-	данных сеансов, используемых разделяемыми серверами
-	сообщений при выполнении параллельного запроса
Журнальный Кэш
Разделяемый пул Библиотечный кэш
Большой пуп
ш словаря данных
UGA
8-11 Copyright© 2006, Oracle. Atf rights reserved.
Большой пул
Наличие большого пула
Размер большого пула должен быть явно указан. Память для большого пула выделяется непосредственно в SGA, но отдельно от разделяемого пула. Поэтому возрастает потребность в разделяемой памяти сервера Oracle, необходимой для запуска экземпляра.
Преимущества большого пула
Большой пул используется для выделения памяти, необходимой сеансам:
•	серверных процессов ввода-вывода;
•	при выполнении операций резервирования и восстановления;
•	разделяемых серверных процессов Oracle и интерфейсу Oracle ХА (используется, когда в транзакции происходит взаимодействие с несколькими базами данных других производителей)
Выделяя память для сеансов разделяемых серверных процессов в большом пуле, сервер Oracle может использовать разделяемый пул непосредственно для кэширования разделяемых команд SQL. Это позволяет устранить дополнительную конкуренцию за доступ к разделяемому пулу, которая уменьшает доступное пространство для кэширования команд SQL и снижает производительность.
Oracle Database 10g: Administration Workshop II 8-11
Java-пул
•	Может быть сконфигурирован как отдельная область внутри SGA
•	Размер задается параметром java_pool_size
•	Используется для хранения в памяти Java-кода всех сеансов и данных внутри JVM
Copyright © 2006, Oracle. All rights reserved

8-12
Память, используемая Java-приложениям
Java-пул (Javapool) ~ это структура внутри SGA, используемая для хранения Java-кода всех сеансов и данных внутри Java-машины.
Разделяемый пул
Разделяемый пул используется загрузчиком классов (class loader) внутри виртуальной Java-машины (Java Virtual Machine - JVM). Загрузчик классов расходует примерно 8 Кб на каждый загружаемый класс. Разделяемый пул также применяется, когда компилируется исходный Java-код и когда вызываются методы java-классов. Кроме того, память в разделяемом пуле занимается при создании спецификаций вызова и когда система динамически отслеживает загружаемые Java-классы в ходе выполнения.
Java пул
Менеджер памяти виртуальной машины Oracle ( Oracle JVM memory manager) размещает все остальные Java-структуры в ходе выполнения в Java-пуле. в том числе совместно используемые, располагаемые в памяти представления Java-методов и определения классов, а также Java-объекгы, которые мигрирую!' в пространство сеанса в конце выполнения вызова.
Память Java-пула используется различными путями в зависимости от того, использует ли база данных Oracle разделяемые серверные процессы или нет.
Дополнительные сведения об использовании памяти Java-пула см. в документе Oracle Database Java Developer 's Guide.
Oracle Database 10g: Administration Workshop II 8-12
Журнальный буфер
Разделяемый пул
Журнальный Кэш
Библиотечный кэш
Кэш словаря данных
О1£АС1Ж
8-13	Copyright © 2006, Oracle. Alt rights reserved.
Журнальный буфер
Серверные процессы Oracle для каждой команды DML или DDL копируют журнальные записи из пользовательской памяти в журнальный буфер. Журнальные записи содержат информацию, необходимую для реконструкции или повторения на уровне блока данных изменений, произведенных в базе данных командами DML и DDL. Журнальные записи используются для восстановления файлов базы данных.
Журнальный буфер - циклический. Это означает, что серверные процессы могут копировать новые записи, перезаписывая старые, если они уже были записаны на диск. Обычно процесс LGWR выполняет запись достаточно быстро, чтобы в буфере было достаточно пространства для новых записей. Процесс LGWR записывает журнальный буфер на диск в текущий оперативный журнальный файл (или в элементы текущей группы). Он записывает все журнальные записи, которые были скопированы в буфер со времени предыдущей записи в журнальный файл.
Когда процесс LGWR выполняет запись в журнал?
•	При фиксации транзакции (команда commit) в журнал заносится запись об фиксации и все предыдущие записи, так как LGWR пишет в журнальные файлы записи в порядке их поступления в журнальный буфер
•	Каждые три секунды или когда журнальный буфер заполнен на треть.
•	Перед записью процессом DBWii модифицированных буферов на диск, если соответствующая информация повторного выполнения еше не была записана на диск.
Oracle Database 10g: Administration Workshop II 8-13
Обзор автоматического управления разделяемой памятью •	Автоматическая адаптация к изменениям в рабочей нагрузке •	Максимальное использование памяти •	Помогает устранить ошибки нехватки памяти				
Пример:	Кэш буферов Большой пул	1	* 1	Кэш буферов Большой пул	
	Разделяемый пул		Разделяемый пул	
	Java-пул		Java-пул	
	Stream-пул		Stream-пул	
Оперативные 	 пользователи		-——— Пакетные задания		
			i	•	MWACL.e
8-14	Copyright © 2006, Oracle. All rights reserved.				
Обзор автоматического управления разделяемой памятью
Автоматическое управление разделяемой памятью (Automatic Shared Memory Management) - это одно из ключевых расширений функциональных возможностей но обеспечению самоуправляемое™ базы данных Oracle. Эта функция автоматизирует управление большинством основных разделяемых структур памяти, используемых экземпляром базы данных, и освобождает от необходимости их конфигурирования вручную. Кроме более эффективного использования доступной памяти и связанного с этим снижения затрат на приобретение дополнительных аппаратных ресурсов, автоматическое управление разделяемой памятью значительно упрощает администрирование базы данных Oracle за счет введения более динамической, гибкой и адаптивной схемы управления памятью.
Например, в системе, в которой задачи оперативной обработки транзакций (online transactional processing - OLTP) выполняются в течение дня (необходим большой кэш буферов), а ночью - пакетные задания (например, требуется расширить большой пул), администратор вынужден своевременно конфигурировать эти структуры, чтобы они соответствовали задачам, выполняемым в часы пиковой загрузки.
При включении автоматического управления разделяемой памятью, когда выполняются задачи OLTP, под кэш буферов захватывается большая часть памяти, что позволяет достичь хорошей производительности операций ввода-вывода. Позднее, когда начнут запускать пакетные задания анализа данных и подготовки отчетов, память автоматически передается большому пулу для того, чтобы использовать его для параллельных запросов, не вызывая при этом ошибок переполнения.
Oracle Database 10g: Administration Workshop I! 8-14
Преимущества автоматического управления разделяемой памятью
1 8-15 Copyright © 2006, Oracle. АП rights reserved.j
Преимущества автоматического управления разделяемой памятью Автоматическое управление разделяемой памятью упрощает конфигурирование системной глобальной области (System Global Area ~~ SGA). В прошлом необходимо было вручную задавать размеры памяти, выделяемой для кэша буферов БД. разделяемого пула, Java-пула, большого пула и Stream-пула. Часто трудно задать такие размеры оптимально. Недостаточный размер вызывает плохую производительности и появление ошибок нехватки памяти (ORA-4031), напротив слишком большие размеры могут привести к ненужному расходованию памяти.
Новая возможность позволяет задать общий объем памяти, используемый всеми компонентами SGA. База данных Oracle периодически перераспределяет память между компонентами, параметры которых показаны на слайде так, чтобы они соответствовали требованиям рабочей загрузки.
В более ранних версиях администратор не мог точно контролировать общий объем SGA. Память для фиксированной части SGA (fixed SGA) и других внутренних метаданных выделялась с избытком, и поэтому превышался общий размер SGA, который подущался на основе значений параметров, заданных пользователем. Такое дополнительное пространство обычно составляло от 10 до 20 Мб.
Значение нового параметра инициализации SGA (SGA___TARGET) учитывает всю память SGA, включая компоненты с автоматически устанавливаемым размером, компоненты с размерами, задаваемыми вручную, а также внутренние структуры, пространство под которые выделяются при запуске.
Oracle Database 10g: Administration Workshop II 8-15
Как функционирует ASMM
•	ASMM основывается на рабочей нагрузке, статистики которой периодически собирает фоновый процесс ммаы.
•	mman использует консультантов по пространству памяти.
•	Пространство передается туда, где оно более всего необходимо.
•	Рекомендуется использовать spfile:
-	Размеры компонентов сохраняются после перезапуска
-	Сохраненные значения задают размеры первоначального распределения компонентов
-	Нет необходимости повторного поиска
_____оптимальных значений для разме ов компонентов
лсие
8-16 Copyright © 2006, Oracle. All rights reserved.
Как функционирует ASMM
Функциональная возможность автоматического управления разделяемой памяти использует фоновый процесс MMAN (Memory Manager, менеджер памяти). MMAN выступает в роли посредника, координирующего размеры компонентов в памяти. MMAN отслеживает размеры компонентов и наблюдает за незаконченными операциями изменения размеров компонентов SGA.
MMAN следи!' за системой и рабочей загрузкой, чтобы выявить идеальное распределение пространства памяти. Проверки выполняются через несколько минут, поэтому пространство всегда выделяется, когда это необходимо. Без автоматического управления разделяемой памятью необходимо предвидеть наихудшую ситуацию и соответствующим образом изменять размеры компонентов в памяти.
На основе информации о рабочей загрузке функция автоматического управления разделяемой памятью:
•	периодически собирает статистики в фоновом режиме;
•	использует различных консультантов по пространству памяти;
•	производит анализ возможных вариантов распределения памяти и выявляет лучший;
•	передает пространство туда, где это необходимо;
*	сохраняет размер компонентов после перезапуска, когда используется SPFILE (размер до момента последней остановки может быть воспроизведен при запуске).
Oracle Database 10g: Administration Workshop II 8-16
Конфигурирование ASMM с использованием Database Control
OySACL’g- i iifsrprh^ Bfermggr
<'z 'f i t ' t-’tiivt, Pusr.spr. Memory Parameters
Pae ЯШ £5Ы5 Ж -4ftrresn)
The Sysiw Global Area (SGA) is а §гечр cf shared memom stmcturt-s ths! tentains data and control »Л)гп:=исп far or» Oratte database system The SGA is aliocated in mt-mory when sn Qrac la database instat-ee >s started

Auwma-it Snared Memory -Managamanf Disa
Shamd Foal R) “““~ |ЙЕ*| -. AoKuej
Bute? Car he	Advice)
Large Ped f$
Ззед Pool p8	T'E 3
Otter tMS) 1 ’dalSGA(MB)W
SGA
Shared Pcci(49.6'<> §§ Puffer Cschefi-t.M^j Й Large PaotfSSi) ® -ava Fod£ i 84? |§ Otter#?. S’©
sfekmim SGA Size
The Maximum SGA Size specifies moch memory;$. зЧосаюс vrteri the database starts up !f you specify ite hfeymim SGA Size, yen сел :atgt cyoarmcally change SGA. component sees (provided the total SGA s=ze dees not exceed the Maximum SGA £:zej
Mayimum SGA. Size' -MB) |lE4
Copyright © 2006, Oracle. All rights reserved.
Конфигурирование ASMM с использованием Database Control
Чтобы сконфигурировать автоматическое управление разделяемой памятью с помощью Database Control, выполните следующие шаги:
L Щелкните на закладке Administration.
2.	Выберите ссылку Memory Parameters под заголовком Database Configuration
3.	Щелкните на закладке SGA.
4.	Щелкните на кнопке Enable справа от текста Automatic Shared Memory Management, а затем введите совокупный размер SGA (в Мб).
При использовании Database Control для включения ASMM автоматически выполняются команды, изменяющие значения автонастраиваемых параметров. Для всех таких параметров, за исключением DB__CACHE__SIZE, устанавливается нулевое значение, означающее отсутствие ограничения на минимальный размер. Параметр DB__CACHE_SIZE имеет значение, равное 4 Мб, определяющее минимум, достаточный для резидентного расположения в памяти блоков данных табличного пространства SYSTEM. Без таких автоматических изменений значения, установленные ранее, интерпретировались бы в качестве минимальных размеров структур памяти. В результате, скорее всего, для алгоритма автоматического управления задавались бы неоправданно высокие нижние границы областей памяти.
Примечание: после щелчка на кнопке Enable вводится значение параметра инициализации S GА__ТARGE Т.
Oracle Database 10g: Administration Workshop II 8~17
Ручное конфигурирование ASMM
Конфигурирование вручную автонастраниваемых компонентов памяти выполняется, что задать их минимальный размер.
•	По каким-либо причинам автоматически рассчитываемые размеры не соответствуют вашим целям
•	Короткие пики или впадины, требуемого размера памяти, не обнаруживаются с помощью ASMM
•	Для определенного компонента существует необходимость в установке гарантированного минимального размера
8-18
Copyright © 2006, Oracle. Ail rights reserved.
Oracle Database 10g: Administration Workshop II 8-18
Ручное конфигурирование ASMM
^Автонастройка
। Разделяемый i
Автонастройка
। Кэш буферов ।
! БД !
~ ~ ~ Т1
i Потоковый । пул ।
Журнальный буфер
I .	1
। Java-пул ।
Автонастройка
Фиксированная часть SGA
I Большом ।
! пул I
Автонастройка
Общий размер SGA ~ 8 Гб
Удерживающий кэш буферов
SGAJTARSET  8G
STATISTICSJ^EVEb Ж .^EPICAL
ORACLe
8-19 Copyright © 2006, Oracle. AH rights reserved.
Ручное конфигурирование ASMM
Автоматическое управление разделяемой памятью конфигурируется с помощью параметра инициализации SGA__TARGET. По умолчанию значение параметра SGA_TARGET установлено в 0, что означает отключение автоматического управления разделяемой памятью и необходимость конфигурирования памяти базы данных вручную.
Oracle Database 10g: Administration Workshop II 8-19
Ручное конфигурирование ASMM (продолжение)
Если для параметра SGAJTARGET задано ненулевое значение, тогда автоматически настраивается размер для следующих пяти пулов: кэша буферов БД (пул DEFAULT), разделяемого пула, большого пула, потокового пула и Java-пула.
Параметры, используемые для конфигурирования этих пулов оперативной памяти (например, SHARED POOLJSIZE), теперь называют авто настраиваемыми.
Компоненты, размер которых изменяется вручную, следующие:
•	журнальный буфер;
•	другие кэши буферов (KEEP/RECYCLE, кэши с нестандартным размером буфера);
•	фиксированная часть SGA {fixed SGА) и другие внутренне выделяемые структуры.
Примечание: функция автоматического управления разделяемой памятью требует установки значения TYPICAL или ALL для параметра STATISTICS_LEVEL.
Oracle Database 10g: Administration Workshop II 8-20
Использование автонастраиваемых параметров SGA
• Когда SGAJTARGET не установлен или равен нулю:
-	Автонастраиваемые параметры действуют как обычные параметры
-	Возможно потребуется увеличить значение SHARED_pool_size по сравнению с применяемым в _______ предыдущих версиями бД _________	 SELECT SUM (bytes)/1024/1021 sizejmb '	'	“
FROM v$sgastat WHERE pool  ’shared pool';
• Когда для SGAJTARGET установлено ненулевое значение:
-	По умолчанию значения автонатраиваемых параметров равны нулю
-	Установленное значение автонастраиваемого параметра _______определяет минимальный размер компонента
SELECT component, current size/1024/1024 size mb FROM	v$sgajiynaMc_coi!4ponents;

I 8-21 Copyright © 2006, Oracle. All rights reserved.
Использование автонастраиваемых параметров SGA
Когда параметр SGAJTARGET не установлен или его значение равно нулю, тогда автонастраиваемые параметры SGA используются так же, как и обычные параметры и задают фактический размер компонентов.
При включенном автоматическом управлении разделяемой памятью можно также задавать значения автонастраиваемых параметров SGA. Ненулевое значение такого параметра используется алгоритмом автонастройки в качестве нижней границы размера компонента. Например, если SGAJTARGET равно 8 Гб и SHARED__POOL__SIZE - 1 Гб, алгоритм автоматического управления разделяемой памятью не может сделать разделяемый пул меньше 1 Гб.
Для определения действующего размера автонастраиваемых компонентов SGA можно использовать второй запрос, приведенный на слайде.
Oracle Database 10g: Administration Workshop II 8-21
Использование параметров SGA, настраиваемых вручную
• Некоторые компоненты не настраиваются автоматически:
-	КЭШИ буферов KEEP И RECYCLE
-	Кэши с кратными размерами буфера
-	Журнальный буфер
•	Эти параметры требуется конфигурировать вручную с использованием параметров БД
•	Память, занимаемая этими компонентами, уменьшает объем автоматически настраиваемого пространства SGA

Copyright © 2006, Oracle. АН rights reserved.
Использование параметров SGA, настраиваемых вручную
Следующие параметра SGA настраиваются вручную:
•	DBJKEEP _CACHE__SIZE
•	DB__RECYCLE_CACHE__S IZE
•	DB_wK_CACHEjSIZE (/? - 2,4. 8, 16,32)
. LOG_BUFFER
Когда требуется использовать компоненты, которые автоматически не настраиваются, необходимо сконфигурировать соответствующие параметры. Значения этих параметров точно контролируют размеры компонентов памяти.
Если установлен параметр SGA—TARGET, тогда общая сумма всех параметров, задающих вручную размеры компонентов SGA, вычитается из величины SGA_TARGET, и разность используется для автоматической настройки компонентов SGA.
Например, если величина SGA__TARGET равна 8 Гб и DB_RECYCLE__CACHE__SIZE - 1 Гб, тогда общий объем автоматически настраиваемых компонентов (разделяемого пула!, Java-пула, кэша буферов DEFAULT, Stream-пула и большого пула) ограничивается 7 Гб. В эти 7 Гб также включается фиксированная часть SGA и журнальный буфер, и только после выделения пространства под эти компоненты остальная память делится между автоматически настраиваемыми компонентами. При этом размер пула RECYCLE равен 1 Гб, так как эта величина задана в соответствующем параметре.
Oracle Database 10$: Administration Workshop II 8-22
~~~I
Использование представления
V$PARAMETER
SGA TARGET = 8G
- - .... ^Se?......... v <. Л • • %	Л x- • •
,bBjCA£»jSXZE « 0
JAVAJPOOL_SIZE == 0
LARGE_POOL_SIZE = 0
SHARED_POOL_SIZE = 0
STREAMSJPOOL SIZE = 0
SELECT name, value.» isdefhulfc
FROM v$parameter
WHERE name LIKE ’%size';
Использование представления v$parameter
Когда для параметра SGA_TARGET задано ненулевое значение и параметры для автоматической настройки SGA не установлены, значения этих автонастраиваемых параметров в представлении V$PARAMETER равно нулю, а в столбце IS DEFAULT выводится TRUE.
Если значение для какого-либо параметров автоматической настройки SGA было задано, тогда оно выводится по запросу к представлению V$ PARAMETER.
Oracle Database 10g: Administration Workshop II 8-23
Изменение значения sgajtarget
* Параметр инициализации sgajtarget:
-	динамический
-	может быть увеличен до величины параметра SGAJMAXJSIZE
-	может быть уменьшен, пока все компоненты не достигнут своего минимального размера
• Изменение величины параметра SGAJTARGET влияет только на размер автоматически настраиваемых компонентов
8-24 Copyright © 2006, Oracle. All rights reserved.
Изменение значения SGAJTARGET
SGA TARGET - динамический параметр, значение которого можно изменить с помощью Database Control или но команде alter system.
Параметр SGA__MAX_ SIZE задает максимальный размер памяти, который может быть выделен SGA. Его нельзя изменить без перезапуска базы данных. Параметр SGAJTARGET может быть увеличен до величины параметра SGA__MAX__SIZE. Его можно снижать до тех пор, пока любой из автоматически настраиваемых параметров не достигнет своего минимального размера (заданного пользователем или внутренне определенного минимума).
•	При увеличении параметра SGAJTARGET дополнительная память распределяется между автонастраиваемыми компонентами в соответствии с политикой автоматической настройки.
•	При снижении параметра SGAJTARGET пространство отбирается от одного или нескольких автонастраиваемых компонентов в соответствии с политикой автоматической настройки.
Предположим для параметра SGAJ4AX__SIZE установлено значение 10 Гб и для SGAJTARGET - 8 Гб . Если величина DB_KEEP_CACHE__SIZE равна 1 Гб и параметр SGATARGET увеличивается до 9 Гб, тогда дополнительный 1 Гб распределяется между компонентами, управляемыми с помощью параметра SGAJTARGET. При этом не происходит никакого влияния на параметр DBJKEEP_CACHE_ SIZE. Подобным образом, когда SGAJTARGET снижается до 7 Гб. пространство в 1 Гб отбирается только у компонентов, управляемых с помощью параметра SGAJTARGET. Такое снижение не оказывает влияния на установки параметров, контролируемых вручную, например, на DBjKEEPCACHEjSIZE.
Oracle Database 10g: Administration Workshop II 8-24
Отключение автоматического управления разделяемой памятью
Можно динамически отключить автоматическую настройку разделяемой памяти, установив параметр SGA__TARGET в ноль. В этом случае значения всех автоматически настраиваемых параметров будут установлены равными текущим размерам соответствующих компонентов, даже если администратор раньше задавал другие, ненулевые значения для таких параметров.
В примере, приведенном на слайде величина параметра SGAJTARGET равна 8 Гб и SHARED__POOL__SIZE - 1 Гб. Если система внутренне настроила размер разделяемого пула и изменила его размер на 2 Гб, тогда после перевода параметра SGA__TARGET в ноль значение параметра SHARED_POOL__SiZE станет равным 2 Гб, что переопределит первоначально установленное значение.
Oracle Database 10g: Administration Workshop II 8-25
Ручное изменение динамических параметров, влияющих на размер SGA
• Ручное изменение автоматически настраиваемых параметров:
-	Приводит к немедленному изменению размера компонента, если новое значение больше текущего размера
-	Изменяет минимальный размер, если новое значение меньше текущего размера
• Изменение размера для параметров, настраиваемых вручную, влияет только на автоматически настраиваемую часть SGA.
Ручное изменение динамических параметров, влияющих на размер SGA
Если установлен параметр SGA__TARGET и изменяется значение какого-то автоматически настраиваемого параметра, тогда это немедленно сказывается на размере соответствующего компонента, если только новое значение больше, чем текущий размер. Например, если параметр SGA TARGET равен 8G и для параметра SHARED__POOL_SIZE устанавливается значение 2G, тогда таким образом гарантируется, что разделяемый пул будет не менее 2 Гб в любой момент времени. Последующее изменение параметра SHARED__POOL__SIZE на 1G не окажет никакого немедленного влияния на размер разделяемого пула. Такое изменение позволит алгоритму автоматической настройки памяти позднее уменьшить размер разделяемого пула до 1 Гб, если это будет необходимо. С другой стороны, если разделяемый пул имеет размер 1 Гб, тогда установка для параметра SHAREDPOOL SIZE значения, равного 2G, приведет к немедленному увеличению разделяемого пула до 2 Гб. Необходимое для такой операции пространство отбирается у одного из автоматически настраиваемых компонентов, и при этом никакого влияния на компоненты, настраиваемые вручную, не оказывается.
Параметры компонентов, размеры которых настраиваются вручную, могут быть динамически изменены. Однако в отличие от автонастраиваемых параметров новые величины задают точный размер компонентов и действуют немедленно. Поэтому, когда размер компонента, настраиваемого только вручную, увеличивается, пространство отбирается у компонентов, настраиваемых автоматически. При уменьшении компонентов, настраиваемых вручную, освобождаемое пространства передается компонентам с автоматической настройкой размера.
Oracle Database 10g: Administration Workshop II 8-26
Программная глобальная область (PGA)
PGA
Серверный процесс
Выделенные соединения
Приватные области SQL
Область курсоров и SQL
Память Рабочая сеанса область
Разделяемый сервер
Разделяемый
;	Соединения с
/ разделяемыми серверами
пул или PGA большой пул -----
Программная глобальная область -
Программная глобальная область (Program Global Area - PGA) - это область памяти, содержащая данные и управляющую информацию серверного процесса. Это приватное пространство, которое Oracle выделяет, когда запускается серверный процесс. Доступ к этому пространству предоставляется исключительно соответствующему серверному процессу. Общее пространство PGA, предоставленное всем серверным процессам, прикрепленным к экземпляру Oracle, также называют агрегированной памятью PGA (aggregatedPGA memory), выделенной экземпляром.
Часть данных, занимающих пространство в PGA в случае выделенного сервера, может располагаться в SGA при использовании разделяемых серверных процессов.
В памяти PGA обычно содержатся приводимые ниже компоненты.
Приватная область SQL
Приватная область SQL (private SQL area) содержит такие данные, как информация привязки (bind information ) и структуры памяти, используемые при выполнении (run-time memory structures) команд. Каждый сеанс, в котором выполняется команда SQL, имеет приватную область SQL. Отдельная собственная приватная область SQL создается для каждого пользователя, передающего на выполнение такую же команду SQL. При этом эта приватная область связывается с одной разделяемой областью SQL. В результате много
Oracle Database 10g: Administration Workshop II 8-27
Программная глобальная область (продолжение)
приватных областей SQL может быть связано с одной и той же разделяемой областью SQL. Расположение приватной области SQL зависит от типа соединения, установленного в сеансе. Если в сеансе используется выделенный серверный процесс, приватная область SQL располагается в PGA серверного процесса. Однако, если сеанс был установлен с помощью разделяемого серверного процесса, тогда часть, относящаяся к приватной области SQL, хранится в SGA.
Курсорные области и SQL-области
Разработчик приложения, использующий прекомпилятор Oracle или OCI для разработки программ, может явно открывать курсоры {cursors) или обрабатывать приватные области SQL, а затем использовать их в качестве поименованных ресурсов при выполнении программы. Рекурсивные курсоры {recursive cursors), открываемые Oracle неявно для команд SQL, также используют разделяемые области SQL {shared SQL areas).
Рабочая область
При выполнении сложных запросов (например, запросов поддержки решений) большая часть пространства PGA занимается рабочими областями {work areas), которые выделяются для операций, интенсивно использующих память. К ним, например, относятся:
*	операции, основанные на сортировках (например, ORDER BY, GROUP BY, ROLLUP и функции, подсчитываемые в рамках окон);
•	хэш-соединение (hash-join);
•	слияние с помощью битовых матриц (bitmap merge);
♦	создание битовых матриц (bitmap create);
•	использование буферов записи операциями массовой загрузки.
Операции сортировки используют рабочую область (область сортировки), чтобы выполнить в памяти сортировку набора строк. Подобным образом операция хэш-соединения использует рабочую область (хэш-область), чтобы построить отсутствующую на входе операции соединения хэш-таблицу.
Размером рабочей области можно управлять и его можно настраивать. Обычно чем больше рабочие области, тем значительнее рост производительности операции, обеспечиваемый за счет большего расходования памяти.
Память сеанса
Память сеанса {session memory) - это пространство, выделяемое для обработки переменных сеанса (информации регистрации подсоединяемого пользователя - logon information) и другой информации, связанной с сеансом. Для разделяемого серверного процесса память сеанса является совместно используемой, а не приватной.
Oracle Database 10g: Administration Workshop II 8-28
Автоматическое управление пространством PGA
•	Динамическая настройка размера памяти PGA, выделенной рабочим областям, на основе параметра pga_aggregate_target
•	Помогает максимизировать производительность всех операций SQL, интенсивно использующих память
-	Включено по умолчанию
8-29 Copyright © 2006. Grade. АВ rights reserved.
Автоматическое управление пространством PGA
В идеале размер рабочей области должен быть достаточно большим, чтобы вместить входные данные и вспомогательные структуры памяти, создаваемые при выполнении соответствующего оператора SQL. Такой размер называю! оптимальным размером (optimal size) рабочей области. Когда размер рабочей области меньше оптимального, время ответа увеличивается, поскольку производится дополнительный проход (extra pass) над частью входных данных.
Автоматическое управление памятью PGA упрощает и улучшает способ выделения пространства. По умолчанию управление памятью PGA включено. В таком режиме Oracle динамически настраивает размер части PGA, выделенной для рабочих областей, основываясь на величине, составляющей 20% от размера памяти SGA. Минимальная величина PGA_AGGREGATE_TARGET равна 10Мб.
В режиме автоматического управления памятью PGA размер всех рабочих областей устанавливается динамически и параметры *__AREA~SIZE (например, SORT_AREA__SIZE) игнорируются во всех сеансах, выполняемых в этом режиме. В любой момент времени совокупный объем PGA, доступный для активных рабочих областей в экземпляре, автоматически получается исходя из параметра инициализации PGA__AGGREGATE_TARGET. Из параметра PGA__AGGREGATE__TARGET вычитается размер памяти PGA, выделенной другим компонентам системы (например, область PGA, выделенная сеансам). Затем остальная память PGA предоставляется отдельным активным рабочим областям, исходя из их требований к памяти.
Oracle Database 10g: Administration Workshop П 8-29
Средства поддержки управления PGA
•	Статистики, помогающие задавать параметр инициализации pga_aggregate_target (например, PGA cache hit percentage)
•	Представления для мониторинга рабочей области PGA:
-	v$sqXjworkarea^hxstogram
-	v$pgastat
-	v$sql_workarea_activ@ v$sqljworkarea
-	v$tempseg_usage
® Представления, помогающие задавать размер рабочей области PGA:
-	v$pga_target_advxce
-	v$pga_target_advxce_hxstogram
8-30 Copyright © 2006, Oracle, All rights reserved.
Средства поддержки управления PGA
При конфигурировании нового экземпляра сложно точно установить подходящую величину параметра PGA_AGGREGATE_TARGET. Это можно сделать, выполнив следующие три шага:
1.	Провести первую оценку значения параметра PGA__AGGREGATE_TARGET, основываясь на эвристическом правиле. По умолчанию Oracle использует 20% от размера SGA. Однако такое первоначальное значение может быть слишком низким для систем поддержки принятия решений {Decision Support System ~~ DSS).
2.	Создать типовую рабочую нагрузку на экземпляр и провести мониторинг производительности, используя статистики PGA, собранные Oracle, чтобы выявить, является ли максимальная величина PGA слишком большой или недостаточной.
3.	Настроить значение параметра PGA__AGGREGATE_TARGET, используя рекомендации Oracle, основанные на статистиках PGA.
Для обратной совместимости возможность автоматического управления памятью PGA может быть отключена путем установления равным нулю значения параметра PGA_AGGREGATE _TARGET. Если эта возможность отключена, максимальный размер рабочей области может быть задан с помощью соответствующих параметров *___AREA_SIZE, например:
. SORT__AREAJSIZE
. HASH_AREAJS IZE
•	BITMAP_MERGE_AREA_SIZE
-	CREATE Дз I TMAP_AREA __S IZ E
Oracle Database 10$: Administration Workshop II 8-30
Использование консультанта памяти для задания размера SGA
Database inwfcet	> Memory Рж&тейгз
Memory Parameters
Page Refreshed September 13. W5
~ • Buffer Cache Size Advice
8-31
Java Pool
Other (MS) 14 Total SGA
I Д' »|
&&T§gT J	“
The System Gtobal Area (SGA) Is a group of sharers memory structures mol formation tar one Cm&te database- The SGA is ^located In w database instance is started
РГЗ
R"3
Change sn physical reads for various cache sizes
Cache Size (MB) 156
^TIP vou can chck on the curve in ?h« crap" т sev new v«iue.
Copyright © 2006, Oracle. Ail rights reserved.

Использование консультанта памяти для задания размера SGA
Консультант памяти {Memory Advisor) помогает настроить размер структур памяти. При включенной возможности автоматического управления разделяемой памятью (ASMM) можно использовать данный консультант для настройки общего размера SGA . Когда ASMM отключена этот консультант используется для настройки различных компонентов SGA.
Memory Advisor включает зри консультанта и предоставляет рекомендации по следующим структурам SGA:
•	разделяемому пулу;
•	кэшу буферов;
Консультации, касающиеся памяти, могут быть получены после следующих шагов:
1.	Щелкните на ссылке Advisor Central в секции Related Links на домашней странице БД.
2.	Щелкните на ссылке Memory Advisor на странице Advisor Central. На выводимой странице Memory Parameters показывается, как поделено пространство SGA.
3.	Щелкните на кнопке Advice справа от значения Shared Pool или Buffer Cache, чтобы вызвать соответствующего консультанта.
Oracle Database 10g: Administration Workshop II 8*31
Использование консультанта памяти для задания размера PGA
Memory
Parameters
The Program Global Area (PGA) is a memory buffer that for a server process. A PGA is created by Oracle when
Aggregate PGA Target	[мВ Ju
Current PGA Allocated (KB) S6942
Maximum PGA Allocated (KB) 75475
Cache Hit Percentage (%)
-4PGA Memory Usage Dera;}; J
78.48
а
serv
8-32
Copyright © 2006; Oracle. All rights reserved.
Использование консультанта памяти для задания размера PGA
Консультант памяти может быть использован для получения рекомендаций по размеру PGA. Для этого щелкните на закладке PGA, а затем на кнопке Advice. В примере графика, приведенного на слайде, показывается, что увеличение совокупного размера PGA с 80 Мб приблизительно до 140 Мб вызовет рост коэффициента удач с 60% и достигнет почти 100%.
Oracle Database 10g: Administration Workshop II 8»32
Указания по эффективному использованию памяти
* Старайтесь располагать SGA в физической памяти.
• Проведите настройку с целью достижения высокого коэффициента удач буферного кэша, однако при этом учитывайте следующее:
-	Даже обоснованное и необходимое полное сканирование снижает этот коэффициент.
-	Необязательные повторные чтения одних и тех же блоков, возможно, искусственно повышают данный коэффициент.
• Используйте консультанта памяти.
8-33
Copyright © 2006, Oracle. All rights reserved.
Указания по эффективному использованию памяти
SGA лучше всего, если это возможно, располагать в физической памяти для наиболее быстрого доступа. Операционная система может предоставить дополнительную виртуальную память. Однако сама природа виртуальной памяти может вызвать частую выгрузку данных на диск. Для закрепления SGA в физической памяти можно на некоторых платформах воспользоваться параметром инициализации LOCKSGA.
При выполнении команды SQL необходимо читать и/или писать блоки данных Oracle. Такие операции называются логическим вводом-выводом (logical I/O). Когда для обработки необходим какой-либо блок, Oracle сначала проверяет, не находится ли он уже в памяти. Если его там нет, производится чтение с диска, которое называется физическим вводом-выводом (physical I/O). Коэффициент удач кэша буферов (buffer cache hit ratio) -это отношение количества обнаруженных блока в памяти к общему числу операций логического ввода-вывода. Более высокое значение коэффициента обычно лучше, так как означает большее обнаружение блоков в памяти без дополнительного дискового ввода-вывода.
Нередко коэффициент удач кэша буферов превышает 99%. Однако это не всегда означает, что система хорошо настроена. Если запрос выполняется чаще, чем это необходимо, он снова и снова обращается к одним и тем же блокам, повышая коэффициент удач. Когда запрос неэффективен или нет необходимости в его выполнении, он искусственно повышает коэффициент удач..
Oracle Database 10g: Administration Workshop II 8-33
Указания по эффективному использованию памяти (продолжение)
Кроме того, следует учитывать, что длинные полные просмотры таблиц (полные чтения всей таблицы) могут снизить этот коэффициент. Даже наличие некоторых блоков в кэше буферов может не принести существенного преимущества. Поэтому, если в вашем приложении необходимо выполнять длинные полные просмотры (статистика table scans (long tables)), хорошо настроен пая база данных всегда будет иметь низкий коэффициент удач кэша буферов БД.
Используйте консультанты памяти, предоставляемые Enterprise Manager. Они могут помочь вам установить размер SGA на основе показателей функционирования базы данных.
Oracle Database 10g: Administration Workshop I! 8-34
Указания по настройке библиотечного кэша
•	Создайте для разработчиков правила форматирования кода SQL, способствующие нахождению соответствующих команд в кэше.
•	Используйте связанные реременные.
*	Устраняйте ненужный дублирующий код SQL.
•	Рассмотрите возможность использования параметра инициализации cursor_sharing.
•	Используйте PL/SQL, когда это возможно.
•	Используйте кэширование номеров последовательностей.
•	Закрепляйте объекты в библиотечном кэше.
8-35
Copyright © 2006, Oracle. All rights reserved.
Указания по настройке библиотечного кэша
Библиотечный кэш, часть разделяемого пула, - место, где база данных Oracle хранит весь исполняемый код SQL и PL/SQL, а также некоторую часть Java-кода. Такое централизованное расположение позволяет многим пользователям совместно использовать код. Выигрыш в том, что все пользователи могут воспользоваться результатами обработки кода SQL. Поэтому такие задачи, как синтаксический разбор команды и определение путей доступа к данным (т.е. создание плана выполнения) решаются один раз для команды, независимо от того, сколько раз она выполняется и сколькими пользователями. Если библиотечный кэш слишком мал и не хватает места для всех выполняемых команд, тогда нельзя воспользоваться преимуществами совместного использования некоторых команд. Если библиотечный кэш слишком большой, тогда возникает дополнительная системная нагрузка, связанная с управлением этого кэша.
Библиотечный кэш может переполнится командами, которые внешне отличаются друг от друга, а на самом деле являются копиями одной и той же команды. Общая причина -небольшие обличия в форматировании каждой команды. В результате нет точного совпадения строк фактически одинаковых команд. Другая причина - использование литералов вместо связанных переменных. Когда две команды отличаются только значениями литералов, в большинстве случаев каждое выполнение таких команд и система в целом выиграют, если заменить литералы связанными переменными.
Oracle Database 10g: Administration Workshop II 8-35
Указания по настройке памяти библиотечного кэша (продолжение)
Параметр инициализации CURS OR_SH ARI NG может быть установлен таким образом, чтобы система автоматически замещала литералы связанными переменными, когда в остальном команды совпадают друг с другом. Обычно следует использовать такую установку в качестве временной меры, пока в приложение, где это необходимо, не будут будут внесены связанные переменные. Как и другие указания, рекомендация по использованию связанных переменных может иметь обратные последствия, которые иеобходи мо исследовать.
Вместо того, чтобы вызывать один и тот же код SQL из различных мест приложения поместите такую команду или команды в хранимую процедуру, используя PL/SQL. Затем просто вызывайте эту процедуру. Это гарантирует совместное использование команд SQL, поскольку они располагаются только в одном месте. Кроме того, при таком подходе код SQL будет синтаксически разобран, а также создан план его выполнения в уже откомпилированной хранимой процедуре.
Номера последовательностей можно кэшировать. Поэтому, когда к некоторым последовательностям имеется большое обращение, задайте подходящие установки для количества кэшируемых значений.
Для закрепления объектов в библиотечном кэше воспользуйтесь пакетом DBMS___SHARED__POOL. С его помощью можно уменьшить количество перезагрузок и повторных компиляций объектов. Дополнительные сведения об использовании этого пакета см. в документе PL/SQL Packages and Types Reference.
Oracle Database 10g: Administration Workshop II 8-36
Итоги
•	Описание компонентов, размещаемых в SGA
*	Реализация автоматического управления разделяемой памяти
•	Ручное конфигурирование параметров SGA
•	Использование автоматического управления PGA
Oracle Database 10g: Administration Workshop II 8-37
Обзор практического занятия: использование ASMM для устранения проблем распределения памяти
•	Диагностирование проблем выделения памяти
•	Включение автоматического распределения разделяемой памяти
Oracle Database 10g: Administration Workshop II 8-38
Автоматическое управление производительностью
......... 11 11 1 <
ЧмхХ!
Copyright © 2006, Oracle. АО rights reserved.
J Настройка
£™n™SGA
’	“	AWR
Консультанты
Асинх. Commit
•	Диагностика проблем производительности базы данных
•	Конфигурирование репозитария автоматической загрузки
•	Доступ к консультантам базы данных
•	Использование консультанта доступа к данным из кода SQL для повышения производительности базы данных
•	Эффективное использование асинхронной операции commit
____ oRaclg
9-2 Copyright © 2006, Oracle. AH rights reserved.
Oracle Database 10g: Administration Workshop II 9-2
Проведение настройки
Три вида работ по настройке производительности:
•	Планирование производительности
•	Настройка экземпляра
*	Настройка кода SQL 1
9-3 Copyright © 2006, Oracle. АИ rights reserved.
Проведение настройки
Работы по настройке затрагивают три аспекта: планирование производительности, настройку экземпляра и настройку кода SQL.
•	Планирование производительности — это процесс определения среды, включающей аппаратное обеспечение, программное обеспечение, операционную систему, сетевую инфраструктуру и т.д.
•	Настройка экземпляра - текущая регулировка параметров базы данных и параметров операционной системы для достижения лучшей производительности базы данных Oracle.
•	Настройка кода SQL должна сделать эффективным код SQL. исполняемый в приложении. Для этого требуется рассмотреть как приложение в целом, так и его отдельные команды. С точки зрения всей системы необходимо быть уверенным в том, что различные части приложения используют преимущества функционирования друг друга и не конкурируют без надобности за ресурсы. В этом уроке вы познакомитесь с некоторыми общими возможными действиями по настройке определенных команд SQL.
Примечание: дополнительные сведения о настройке производительности см. в документе Oracle Database Performance Tuning Guide.
Oracle Database 10g: Administration Workshop II 9-3
Планирование производительности
•	Варианты инвестирования
•	Системная архитектура
•	Масштабируемость
•	Принципы проектирования приложения
•	Тестирование, моделирование и реализация рабочей нагрузки
•	Развертывание новых приложений
Copyright © 2006, Oracle. All rights reserved.
Планирование производительности
При планировании производительности учитывается много аспектов. Так аппаратно-программная инфраструктура должна соответствовать вашим требованиям. Поэтому рассматриваются различные варианты инвестирования в системную архитектуру. Например, на скорость доступа к данным влияет количество аппаратных драйверов и контроллеров. Расщепление и расположение данных на многих устройствах часто позволяет достичь целей производительности. При этом, конечно, необходим анализ важности каждого аспекта для вашей среды, приложения, а также для соответствия требования м производительности.
Также важна масштабируемость приложения. Она означает возможность обслуживания все большего числа пользователей, клиентов, сеансов или транзакций без существенного влияния на общую производительность системы. Очевидным препятствием для масштабирования является последовательное выполнение операций пользователей. Если все пользователи должны одновременно пройти по одной и той же ветви алгоритма обработки, тогда добавление новых пользователей, без сомнения, окажет неблагоприятное влияние на производительность. Плохо написанный код SQL также влияет на масштабируемость. Он приводит к тому, что многие пользователи вынуждены ждать завершения выполнения неэффективного кода; при этом каждый пользователь конкурирует с другим за большое количество ресурсов, которое им на самом деле не требуется.
Принципы проектирования приложений могут оказать значительное влияния на производительность. Простота проекта, использование представлений и индексов, а также моделирование данных ~ все это очень важно при планировании производительности.
Oracle Database 10g: Administration Workshop II 9-4
Планирование производительности (продолжение)
Любое приложение необходимо тестировать с учетом типовой производственной нагрузки. Для этого надо оценить размер базы данных и рабочую нагрузку, а также сгенерировать тестовые данные и смоделировать загрузку системы.
Анализ производительности должен проводиться при развертывании новых приложений (или их версий). Иногда для массового продвижения продукта принимаются проектные решения, обеспечивающие совместимость с предыдущими версиями системы. Новую базу данных следует конфигурировать специально для использующих ее приложений на основе параметров производственной среды.
я
Oracle Database 10g: Administration Workshop II 9*5
Настройка экземпляра
•	Наличие хорошо определенных целей
*	Выделение памяти под структуры базы данных
•	Рассмотрение требований ввода-вывода каждой части базы данных
•	Настройка операционной системы для оптимизации производительности базы данных.
(.h -
QRACUb
|	9-6 Copyright © 2006, Oracle. Ail rights reserved
Настройка экземпляра
Приступая к настройке, необходимо иметь определенные цели. Например, цель может быть поставлена следующим образом: обработка 500 транзакций о продажах в минуту. А может быть поставлена и так: сделай это так быстро, как это возможно, и в результате мы узнаем, что будет достаточно хорошо. Конечно, первая цель ясно и определенно формулирует поставленную задачу.
Для достижения оптимальной производительности вы должны выделить память базе данных в соответствие с потребностями вашего приложения. Память ограничена в своем размере. Если выделить определенным частям базы данных Oracle слишком малую память, это может повлечь за собой выполнение неэффективных фоновых операций, о которых вы даже можете не узнать, если не провести анализ.
Дисковый ввод-вывод часто является узким местом базы данных. Поэтому он требует большого внимания в самом начале реализации любой базы данных.
Конфигурация операционной системы может также повлиять на производительность базы данных Oracle. Дополнительные сведения см. в документе Oracle Database Installation Guide для конкретной платформы.
Oracle Database 10g: Administration Workshop II 9-6
Методология настройки производительности
Шаги настройки:
•	Настраивайте сверху вниз:
-	проект перед настройкой кода приложения
-	код перед настройкой экземпляра
• Настраивайте область с наибольшим потенциальным выигрышем.
-	Выявляйте наиболее длительные ожидания
-	Выявляйте службы с наибольшим временем использования.
• Останавливайте настройку, когда цель достигнута.
ORACLGT .
9-7 Copyright © 2006, Oracle. All rights reserved.
Методология настройки производительности
Oracle разработал методологию настройки, основываясь на многолетнем опыте. Основные шаги следующие:
*	Проверьте статистики ОС и общее состояние машины перед настройкой экземпляра, чтобы быть уверенным в том, что проблема в базе данных.
•	Проводите настройку сверху вниз. Начните с проекта, затем настраивайте приложение и потом экземпляр. Например, попытайтесь устранить полные просмотры таблиц, вызывающие конкуренцию ввода-вывода перед настройкой размещения табличных пространств на диске.
•	Настраивайте область с наибольшей потенциальной отдачей. Методология настройки, представленная в этом курсе, проста. Выявите наиболее узкое место и настраивайте его. Повторите этот шаг. Все различные инструменты настройки имеют возможности обнаружения команд SQL, ресурсной конкуренции, служб, выполняемых наибольшее время. База данных Oracle предоставляет временную модель и метрики для автоматизации процесса обнаружения узких мест.
•	Останавливайте настройку, когда цель достигнута. Этот шаг подразумевает, что цели настройки были вами определены.
Это общий подход к настройке экземпляра. При его использовании может потребовать несколько раз повторить указанные действия.
Oracle Database 10g: Administration Workshop II 9-7
Сбор статистик
•	Настройка производительности зависит от сбора аккуратных статистик.
•	Различные типы статистик:
-	Статистики оптимизатора
-	Системные статистики
• Различные методы сбора статистик:
-	Автоматический, производимый работой GATHER_STATSJOB
-	Ручной, выполняемый с помощью пакета DBMSJSTATS
-	Сбор статистик, задаваемый параметрами инициализации базы данных
-	Импорт статистик из другой базы данных
8-8 Copyright © 2006, Oracle. All rights reserved.	|
Сбор статистик
Статистики оптимизатора используются сервером для выбора наиболее эффективного плана выполнения каждой команды SQL. В этих статистиках отражаются детальные сведения о базе данных и хранимых в ней объектах.
Системные статистики отражают необходимые оптимизатору показатели работы аппаратуры, например, производительность ввода-вывода и использование ЦП. При выборе плана выполнения оптимизатор оценивает ресурсы ввода-вывода и ЦП, требуемые каждому запросу. Системные статистики позволяют оптимизатору запросов более точно оценить стоимость операций ввода-вывода и использования ЦП и в результате выбрать лучший план выполнения. Системные статистики собираются с помощью процедуры DBMS__STATS. GATHER_SYSTEM_STATS. Когда сервер Oracle осуществляет сбор таких статистик, он анализирует системную активность в заданном периоде времени. Системные статистики не собираются автоматически. Корпорация Oracle настоятельно рекомендует использовать для этого пакет DBMSES TATS.
Рекомендуется разрешить серверу Oracle автоматически собирать статистики оптимизатора. Задание GATHER__STATS_JOB автоматически создается вместе с базой данных. Управляет этим заданием планировщик (Scheduler). Задание собирает данные обо всех объектах базы данных, статистики которых либо утеряны, либо устарели.
Oracle Database 10g: Administration Workshop II 9-8
Сбор статистик (продолжение)
Если принято решение не использовать автоматический сбор статистик, тогда необходимо вручную собирать статистики для всех схем, включая системные схемы. Когда данные в БД изменяются регулярно, также регулярно необходимо собирать статистики, чтобы быть уверенным в том, что они точно отражают характеристики объектов базы данных. Для ручного сбора статистик используется пакет DBMS—STATS. Он также применяется для обновления, просмотра, экспорта, импорта и удаления статистик.
Кроме того, можно управлять сбором системных статистик и статистик оптимизатора с помощью параметров инициализации. Например:
•	Параметр OPTIMI ZER_DYNAMIC SAMPLING контролирует уровень динамической выборки статистик, собираемой оптимизатором. Динамическая выборка может использоваться для оценки статистик таблиц и соответствующих индексов, если статистики недоступны или слишком устарели, чтобы им можно было доверять. Динамическая выборка также оцениваез селективность предиката для единственной таблицы, когда собранные статистики не Лгут быть использованы или с большой вероятностью приводят к значительным ошибкам при оценке плана выполнения.
•	Параметр STATISTICS^ LEVEL управляет сбором всех основных статистик и влияет на работу консультантов базы данных. В нем задается уровень сбора статистик, производимого в базе данных. Значения этого параметра -- BASIC, TYPICAL или ALL.
•	Параметр TIMED—S TAS TICS приводит к тому, что сервер Oracle не только подсчитывает события ожиданий (что он выполняет всегда), ио и также собирает данные о времени ожиданий. Такие данные применяются для сравнения того, как меняется соотношение общего времени ожидания какого-либо события и общего времени обработки между моментами сбора статистик производительности.
*	Параметр ТI ME D__0 S __S T AT IS TIC S задает интервал времени (в секундах), в течение которого Oracle собирает статистики операционной системы, когда запрос на выполнение команды поступает от клиента или когда завершается его выполнение.
Временные системные статистики автоматически собираются базой данных, когда параметр инициализации STATISTICS_LEVEL установлен в TYPICAL или ALL. Если значение параметра STATISTICS—LEVEL равно BASIC, тогда необходимо установить TIMED_STATISTICS в TRUE, чтобы включить сбор временных статистик. Отметим, что установка STATISTICS—LEVEL в BASIC отключает многие автоматические возможности и поэтому не рекомендуется.
При явном задании параметра TIMED-STATISTICS или TIMED—OS—STATISTICS в файле параметров инициализации или с помощью команд ALTER SYSTEM и ALTER SESSION, переопределяется значение, получаемое на основе параметра STATISTICS—LEVEL.
Можно выполнить запрос к представлению V$STATISTICS JLEVEL, чтобы выяснить, на какие параметры оказывает воздействие значение, установленное в параметре STATISTICAL-LEVEL.
Oracle Database 10g: Administration Workshop II 9-9
События ожиданий в Oracle
Настройка
> Статистики Доступ к SGA AWR Консультанты Асинх. Commit
•	События ожиданий отражают информацию о сеансах и процессах, которые были вынуждены или должны были ждать по различным причинам.
•	Перечень таких событий содержит представление
V$EVENT_NAME.
Sessions: Waiting and Working
1.0
g 0.8
| o.e
I 04
V!
0.2
°?
Apr 28, 2004
11 Use? I/O i
O Schedule! Othл?
Network Cor^puration
............................1______________________________
Wait Evems for Top Sessions
Activity 1%) Piwaaa ,	:
' ©i ' dt 'R	?7.?88raclfe@EDRSRi2P1?
sequer.tiai	(muOD)
read
2U -•	22.22 oracle@EDRSR12P1
2L*=l.'?.fed	(mODO)
Ш Commit
Ц Application
SI Administrative
: I* CPU U&ed

9-10
Copyright © 2006, Oracle. All rights reserved.
События ожиданий в Oracle
С событиями ожиданий (wait events) связываются статистики, значения которых увеличиваются, когда какой-либо серверный процесс или поток (thread) вынужден ждать завершения события, чтобы продолжить обработку. Ожидания отражают различные симптомы проблем, которые могут влиять на производительность, например, они могут отражать конкуренцию за защелки, буферы, а также конкуренцию по вводу-выводу.
Следует помнить, что это только симптомы, но не реальные причины проблем.
События ожиданий сгруппированы в классы: Administrative, Application, Cluster, Commit, Concurrency, Configuration. Idle, Network, Other, Scheduler, System I/O и User I/O.
В базе данных Oracle более 800 событий ожидания. В их число, например, входят следующие: free buffer wait, latch free, buffer busy waits, db file sequential read и db file scattered read.
Чтобы просмотреть события ожиданий в ЕМ, перейдите на страницу Performance. События ожиданий отражаются на графике в разделе Sessions: Waiting and Working, как это показано на слайде. Щелкнув на ссылке событий определенного класса, а затем, используя интерфейс Top Sessions, можно перейти к просмотру конкретных событий, связанных с сеансами. В приводимом примере наибольшие ожидания были связаны с операциями чтения файлов.
Перечень наиболее общих событий ожиданий Oracle см. в документе Oracle Database Reference 10g.
Oracle Database 10g: Administration Workshop II 9~10
9-11
Статистики системы
V$SYSSTAT
* statistic#
•	name
•	class-»—-—
•	value
•	stat id
V$EVENT_NAME
* eventjnumber
•	event_id
*	name *————
•	parameterl
•	parameter^
•	parameters
*	wait class
V$SYSTEM_WAIT_CLASS wait_class_id waitjxlass# wait_class totaljwaits time_waited
V$SGASTAT • pool * name • bytes
V$SYSTEMJSVENT
*« event
•	total_waits
•	total_timeouts
*	timejwaited
•	average_wait
*	time waited micro
OR.WZLjE.-
Copyright © 2006, Oracle. AH rights reserved.

Статистики системы
Для эффективной диагностики проблем производительности необходимы статистики.
Oracle генерирует кумулятивные статистики многих типов, относящиеся к системе, сеансам и отдельным командам SQL. Oracle также собирает кумулятивные статистики по сегментам и сервисам. При анализе проблемы производительности обычно учитываются изменения соответствующих статистик (их дельта) в течение рассматриваемого периода времени.
Статистики событий ожиданий
Все возможные события ожиданий отражаются в представлении V$EVENTJNAblE. Кумулятивные статистики для всех сеансов хранятся в представлении V$SYSTEM__EVENT.
В нем отражаются итоговые данные об определенных ожиданиях, начиная с момента запуска экземпляра.
При поиске и устранении неисправности необходимо знать, ждал ли процесс какой-либо ресурс.
Основные системные статистики
Все основные системные статистики (systemwide statistics) отражаются в представлении V$STATNAME. В базе данных Oracle Database 10g их примерно 330.
Собранные сервером статистики можно просмотреть, используя представление
V$ SYS STAT. Оно содержит кумулятивные итоговые данные, подсчитанные с момента запуска экземпляра.
Oracle Database 10g: Administration Workshop II 9-11
Системные статистики (продолжение)
Вывод основных системных статистик
Пример:
SQL> SELECT name, class, value FROM v$sysstat;
NAME	CLASS VALUE
table	scans	(short t.ab 1 e s)	64	135116
table	scans	(long tables)	64	250
table	scans	(rowid ranges)	64	0
table	scans	(cache partitions)	64	3
table	scans	(direct read)	64	0
table	scan	rows gotten	64	14789836
table	scan	blocks gotten	64	558542
Основные системные статистики классифицируются иа основе областей настройки и целей отладки. Статистики объединяются в следующие классы: общие данные о работе экземпляра, общие данные о работе журнального буфера, блокировки, работа кэша буферов базы данных и т.д.
Все события ожидания определенного класса можно также просмотреть, запросив представление V$SYSTEM__WA1T CLASS. Пример (результат отформатирован):
SQL> SELECT * FROM V$SYSTEM__WAIT_ CLASS
2 WHERE wait_class LIKE ’%I/O%’;
CLASS_ID CLASS# WAIT CLASS TOTALJWAITS TIME__WAITED
1740759767
4108307767
Общие статистики SGA
8 User I/O
9 System I/O
1119152
296959
39038
27929
Сервер отражает все подсчитанные статистики использования оперативной памяти в представлении V$SGASTAT. Его можно использовать для просмотра кумулятивных итогов использования компонентов SG А с начала запуска экземпляра.
Пример:
SQL> SELECT * FROM v$sgastat;
POCL	NAME
BYTES
shared pool shared pool
f ixed__sga buf fer__cache log_buffer sessions
sql area
7780360
25165824
262144
1284644
22376876
В примере показана только часть выходных результатов.
Oracle Database 10$: Administration Workshop II 9-12
9-13
Copyright © 2006, Oracle. All rights reserved.
Вывод статистик, связанных с сеансом
Информация о текущих сеансах пользователей может быть получена с помощью представления V$SESSION. Например V$SESSION позволяет выяснить, это сеанс пользователя или же сеанс, созданный серверным процессом БД (BACKGROUND).
Для того, чтобы выявить ресурсы или события, которые ждет активный сеанс, можно запросить либо представление V$SESSION, либо V$SESSION_WAIT.
Сервер Oracle показывает статистики пользовательских сеансов в представлении V$SESSTAT. Сведения о событиях ожидания сеанса отражаются в представлении V$ SE S SI ON__EVENT.
Кумулятивные значения статистик в основном доступны через динамические представления производительности, например, V$SESSTAT и V$ SYS STAT. Следует отметить, что кумулятивные данные в динамических представлениях сбрасываются во время остановки экземпляра базы данных.
В представлении V$MYSTAT выводятся статистики текущего сеанса.
Дополнительно можно запросить через представление VSSESSMETRIC значения метрик производительности всех активных сеансов. В этом представлении отражается использование ЦП, количество физических чтений, число полных разборов (hardparses) и коэффициент логических чтений (logical read ratio).
Oracle Database 10g: Administration Workshop II 9-13
Вывод статистик, связанных с службой
Для л-уровневых сред статистики сеансов не так полезны. Статистики, связанные с службой, можно просмотреть в таких представлениях:
•	v$service_event; общее число и время ожиданий событий для каждой службы
•	V$SERVICE_WAIT_CLASS; общее число и время ожиданий по классам событий для каждой службы
		
9-14	Copyright © 2006, Oracle. Ail rights reserved.	
Вывод статистик, связанных с службой
В н-уровневой среде на сервере приложений используется пул соединений с базой данных. Поэтому просмотр данных о сеансах может не предоставить сведений, необходимых для анализа производительности. Использование имен служб (сервисов) позволяет вести мониторинг производительности более аккуратно. Два представления отражают информацию на уровне службы, похожую на ту, которая доступна на уровне сеанса в соответствующих представлениях вида V$SESSION~*.
Представление V$SERVICE_WAIT_CLASS показывает статистики для каждой службы и класса ожиданий.
Представление V$SERVICEJEVENT показывает такую же информацию, как и V$SERVICE_WAIT_CLASS, за исключением того, что данные детализированы по идентификатору события (event_ID).
Oracle Database 10g: Administration Workshop I! 9-14
Представления, используемые при поиске и устранении неисправностей, а также при настройке
Instance/Database V$DATABASE V$ INSTANCE V$PARAMETER V$SPPARAMETER V$SYSTEM_PARAMETER V$₽ROCESS V$BGPROCESS V$PX_₽ROCESS_SYSSTAT V$SYSTEM_EVENT		Disk V$DATAFILE V$FILESTAT V$LOG »V$LOG_HISTORY jV$DBFILE V$TEMPFILE V$TEMPSEG_USAGE V$SEGMENT_STATISTICS	
			
		Contention V$LOCK V$UNDOSTAT V$WAITSTAT V$LATCH	
			
Memory V$BUFFER_POOL_STATISTICS V$LIBRARYCACHE V$SGAINFO V$PGASTAT			
			
		j.	'		
Copyright © 2006 Grade. All rights reserved.
9-15
Представления, используемые при поиске и устранении неисправностей, а также при настройке
На слайде показаны некоторые представления, к которым можно обратиться, чтобы выявить причину проблем производительности, а также для того, чтобы проанализировать текущее состояние базы данных.
Полное описание этих представлений см. в документе Oracle Database Reference Manual.
Oracle Database 10g: Administration Workshop II 9-15
&	Представления словаря Следующие представления словаря отражают полезные статистики, получаемые в результате применения пакета dbms_stats: -	DBAJTABLES, DBA_TAB_COLUMNS -	DBA_CLUSTERS -	DBA_INDEXES, INDEXJSTATS -	INDEXJHISTOGRAM, DBA_TAB_HISTOGRAMS Статистическая информация не изменяется до тех пор, пока не будет повторно выполнены соответствующие процедуры пакета dbmsjstats.
9-16	Copyright © 2006, Oracle. All rights reserved.
Представления словаря
Для получения детальных сведений о хранении данных используйте пакет DBMSES TATS, который собирает статистики и заполняет столбцы в представлениях вида DBA__xxx.
DBMSESTATS заносит информацию в столбцы представлений, имеющую отношение к:
• хранению табличных данных в экстентах и блоках:
-	DBA__T ABLES
-	DBA_TAB__COLUMNS
•	хранению данных кластера в экстентах и блоках:
DBACLUSTERS
•	хранению индексных данных в экстентах и блоках, а также к степени пригодности индексов:
-	DBA_INDEXES
-	INDEX__STATS
• Распределению неиндексированных и индексированных данных внутри столбцов:
- DBA_TAB__HISTOGRAMS
Дополнительные сведения об использовании пакета DBMSESTATS см. в документе Oracle Database Performance Tuning Guide.
Представления INDEXESTATS и INDEX__HISTOGRAM, содержащие индексные статистики, заполняются после выполнения команды ANALYZE INDEX . . . VALIDATE STRUCTURE.
Oracle Database 10g: Administration Workshop II 9-16
Настройка Статистики
> Доступ к SGA AWR
Консультанты
Асинх. Commit
Диагностика подвисаний или крайне медленное функционирование БД
Используйте средства анализа проблемы, если база данных функционирует очень медленно или зависла:
• Прямой доступ к SGA для мониторинга производительности (в режиме доступа к памяти)
-	V$SESSION
-	V$SESSION_WAIT
-	V$SYSTEMJEVENT
-	V$SYSSTAT
• Анализ подвисаний (Hang Analysis) с помощью
Enterprise Manager
ORACLE
9-17 Copyright © 2006, Oracle. All rights reserved.
Диагностика подвисаний или крайне медленное функционирование БД
Если база данных работает очень плохо или на самом деле зависла, используйте для анализа проблемы доступные функциональные возможности.
Система поддерживает сбор статистик реального времени, получая их непосредственно из SGA, используя для этого оптимизированные и облегченные вызовы системного уровня, а не SQL. В Enterprise Manager такой режим получения статистик называется режимом доступа к памяти (Memory Access Mode). Для каждого экземпляра Oracle имеется один поток сбора (collector thread) данных из SGA, стартующий автоматически агентом ЕМ, когда запускается мониторинг экземпляра базы данных. На слайде приведены основные представления производительности V$, используемые для диагностики на высоком уровне. Их содержимое доступно через прямой доступ к SGA.
Если требуется более детальная информация (drill-down information), для ее получения необходим SQL.
Информация о хосте, например, количество ЦП и имя хоста, также собирается и предоставляется через интерфейс ЕМ.
Oracle Database 10g: Administration Workshop II 9-17
Использование режима доступа к памяти
Нойю i Performance;	' •'
Performance monitoring in Memory Access Mo
Click on an area о» a graph or legend to get more й
Most
Belated Links
Advisor Central
AN Metrics
Jobs
Metric Collection
Errors
SQL Histoiy
Alert History Blackouts Manage Metrics Monitoring (l) Ccnfiguratfon xlx User-Defined Metrics
со
1058ЯЛ
11:00am
11.18am	И Зш
___________'X1 К-.ПЛ
11.30am
11 40331
ktoftor m Memory Access Mode
Performance monitoring in Memory Access Mode is currently disabled for this database instance.
Click the Enable Memory Access Mode button to enable this feature now
ogI
3z< Enable Memory Access Mode) \ С0П||ГГПЗЯ0П
10:50am
Aiert Log Content iSOePlus
You are about to enable the performance monitoring in memory access mode, Are you sure you want to enable it for this target?
Copyright © 2006, Oracle. Ail rights reserved.
а
А
s
I



Использование режима доступа к памяти
На страницу с графиками, получаемыми в режиме доступа к памяти, можно перейти по ссылке Monitor in Memory Access Mode, расположенной на домашней странице БД в секции Related Links. Ссылка переносит вас на страницу Performance в режиме просмотра с прямым доступом к памяти ( “Memory Access”). Как показано на слайде, сначала необходимо воспользоваться кнопкой “Enable Memory Access Mode”. Позднее этот режим можно отключить.
Для возврата в режим просмотра на основе SQL просто щелкните на кнопке “Switch to SQL Access Mode”, расположенной на странице Performance.
Режим Memory Access исключает обработку, связанную с разбором и выполнением команд SQL. В результате повышается надежность сбора данных. Это происходит, потому что устраняется конкуренция за библиотечный кэш, при которой могут возникнуть ситуации, когда невозможно вести мониторинг, используя SQL. Вам следует переключиться в режим Memory Access, когда система медленно работает или “зависла”.
Страницы в режиме Memory Access содержат данные, собираемые с более высокой частотой, чем в режиме SQL. По этой причине выводимые графики могут незначительно отличаться от полученных в режиме SQL. В результате страницы в режиме Memory Access могут предоставлять лучшую информацию о том, как начинались и завершались события. Кроме того, вы можете обнаружить короткие события, которые иначе были бы пропущены. Примечание: режим доступа к памяти (memory access mode) также называют прямым методов доступа к SGA (direct SGA attach mode).
Oracle Database 10g: Administration Workshop II 948
Использование страницы анализа
= л* '.''	. Tj
9-19	______________________Copyright © 2006, Oracle. АН rights reserved.
Использование страницы анализа подвисаний
Для анализа подвисаний и медленной работы системы можно воспользоваться страницей Hang Analysis, на которую можно перейти в секции Additional Monitoring Links, расположенной в ЕМ на странице Performance. Можно также использовать страницу Blocking Sessions для вывода списка всех сеансов, блокирующих в текущий момент времени другие сеансы.
Страница Hang Analysis используется для:
•	выяснения того, какие сеансы являются причиной узких мест;
•	проверки итоговой информации о блокирующих и блокируемых сеансах.
На этой странице отображается графическая топология находящихся в ожидании сеансов системы. Блокируемые сеансы выводятся ниже блокирующих. Enterprise Manager представляет ситуацию, используя хронологию операций. Он обнаруживает, какие сеансы “висят” или, вероятнее всего, “подвисли”, а не находятся в состоянии ожидания с незаметной продолжительностью . Чтобы просмотреть итоговую информацию о сеансе, щелкните в выводимой топологии на идентификаторе сеанса. В результате на странице Session Summary отображаются общие сведения о выбранном сеансе. Находясь на этой странице, можно щелкнуть на ссылке View Session Details, чтобы получить дополнительную информацию о сеансе и решить, стоит ли аварийно завершать сеанс.
Oracle Database 10g: Administration Workshop II 9-19
Использование страницы анализа подвисаний (продолжение)
Выводимые сеансы выделяются зелеными, желтыми и красными цветами в зависимости от тяжести состояния сеанса, представленного в топологии.
С учетом размера топологии можно также выбрать подходящий масштабный коэффициент (Zoom Factor), задаваемый в процентах. В случае большого количества блокируемых сеансов можно использовать меньший коэффициент для отображения информации об ожиданиях в системе в целом. Затем можно увеличить масштаб для просмотра существенных частей топологии и получения дополнительных сведений (drill down).
Вы можете перемещать щелчком мыши микро-окно в прямоугольной области, расположенной ниже поля Zoom Factor. В результате происходит перемещение в нужную область топологии. Например, если щелкнуть в левой части прямоугольной области, топология сдвинется вправо, что позволит полностью увидеть левую сторону топологической схемы.
Oracle Database 10g: Administration Workshop II 9-20
Автоматический репозиторий рабочей загрузки
Настройка Статистики Доступ к SGA > AWR
Консультанты
Асинх. Commit
SGA
Статистики в памяти
ADDM обнаруживает наибольшие проблемы
9:30
моментальный снимок
моментальный снимок
моментальный снимок 3
моментальный снимок 4
9-21
Copyright © 2006, Oracle. All rights reserved.
SYSAUX
5
& •
6:00 ’ »
7:00
8:00
0:00

Автоматический репозиторий рабочей загрузки
Автоматический репозиторий рабочей загрузки (Automatic Workload Repository. AWR) предназначен для постоянного хранения статистик производительности системы, владельцем которых является пользователь SYS. AWR размещается в табличном пространстве SYSAUX.
Моментальный снимок (snapshot) - это набор статистик производительности, собранных в определенный момент времени и записанных в AWR. Моментальные снимки используются для подсчета темпа изменений статистики. Каждый моментальный снимок идентифицируется с помощью последовательного номера (snap__id), который уникален для AWR.
Пользователям, применявшим Stat spa с к, следуют в Oracle 10g переходить к использованию репозитория рабочей загрузки. Однако нет поддерживаемого способа мюрации данных, полученных с помощью утилиты Statspack, в репозитарий. Также нет обратной совместимости репозитария рабочей загрузки и схемы, используемой утилитой Statspack.
По умолчанию моментальные снимки фиксируются каждые 60 минут. Можно настроить частоту получения моментальных снимков с помощью параметра INTERVAL. Так как консультанты БД основывают свои рекомендации на этих снимках, необходимо так установить интервал между получением статистик, чтобы это не повлияло на точность диагностики. Например, когда интервал равен 4 часам, можно пропустить пиковые показатели, возникающие внутри 60-минутных интервалов.
Oracle Database 10g: Administration Workshop II 9~21
Автоматический репозиторий рабочей загрузки (продолжение)
Для изменения параметров, управляющих сбором моментальных снимков, используется хранимая процедура DBMS_WORKLOADJREPOSITORY. MODI FY__SNAPSHOT__SETT INGS или Database Control В Database Control щелкните на ссылке Automatic Workload Repository, расположенной в секции Statistics Management на странице с закладкой Administration. Затем щелкните на кнопке Edit чтобы выполнить изменения.
Хранимая процедура позволяет более гибко задавать значения параметра INTERVAL по сравнению с тем, как это можно сделать, используя Database Control.
Моментальные снимки можно получать вручную с помощью Database Control или хранимой процедуры DBMS JtfORK LOAD JRE POST TORY. CREATE_SNAPSHOT. Они дополняют автоматически получаемые снимки и фиксируют поведение системы в двух определенных точках, которые не совпадают с моментами запланированных сборов статистик, выполняемых автоматически.
Oracle Database 10g: Administration Workshop II 9-22
Базовые показатели, получаемые на основе моментальных снимков из AWR
•* Важный период в прошлом 4 ~
DBMSJ^ORKLOAD_REPOSITOat,CREATE_BASELINE ( -starVsnap_xd IN NUMBER f endUsnap^id IN NUMBER. f baseline^name IN VARCHAR2.)^
9~23 Copyright © 2006, Oracle. All rights reserved.
Базовые показатели, получаемые на основе моментальных снимков из AWR Механизм получения базовых показателей (baseline) позволяет пометить наборы моментальных снимков, полученные в существенные периоды времени. Базовые значения показателей определяются на основе пары моментальных снимков; эти снимки идентифицируются с помощью последовательных номеров (snap__icl). Каждый набор базовых значений соответствует одной и только одной паре моментальных снимков.
Для идентификации базовых показателей используются имена, назначаемые пользователем или генерируемые системой. Базовые показатели можно подсчитать, выполнив процедуру DBMS __WORKLOAD_REPOSI TORY. CREATE BASELINE, при вызове которой задается имя набора базовых показателей и пара идентификаторов моментальных снимков. Имя набора базовых показателей (baseline) должно быть уникальным для всего периода жизни базы данных.
Базовые показатели используются для удержания данных моментальных снимков. Моментальные снимки, принадлежащие наборам базовых показателей, удерживаются до тех нор, пока не будут удалены соответствующие базовые показатели.
Обычно базовые показатели за некоторый репрезентативный период времени в прошлом используются для сравнения с текущим функционированием системы. Кроме того, в Database Control можно настроить получение сигналов на основе пороговых значений (threshold-based alerts), полученных с использованием базовых показателей (baseline).
Получить номера snapid. можно прямо из представления DBA__HIST__SNAPSHOT или с помощью Database Control.
Примечание: дополнительную информацию о пакете DBMSJTORKLOAD REPOSITORY см. в документе Oracle Database PL/SQL Packages and Types Reference Guide.
Oracle Database 10g: Administration Workshop II 9-23
Copyright © 2006, Oracle. Ail rights reserved.
Обзор инфраструктуры консультантов
Консультанты (advisors) - это компоненты сервера, предоставляющие пользователю полезную информацию об использовании ресурсов и эффективности соответствующих компонентов сервера. Консультанты используют все ресурсы, которые были рассмотрены ранее в этой главе, а также некоторые дополнительные. Ниже приведен перечень доступных консультантов.
*	Автоматический диагностический монитор базы данных (Automatic Database Diagnostic Monitor - ADDM); производит анализ экземпляра “сверху-вниз”, выявляет проблемы и их потенциальные причины, а также выдает рекомендации по устранению проблем. ADDM может также вызывать другие консультанты.
•	Консультант настройки кода SQL (SQL Tuning Advisor); выдает рекомендации по настройке команд SQL.
•	Консультант доступа к данным из SQL (SQL Access Advisor); используется для решения проблем, возникающих внутри схем БД, выявляет' оптимальный путь доступа к данным (например, с помощью индексов и материализованных представлений).
♦	Консультант PGA (PGA Advisor); предоставляет подробные статистики, имеющие отношение к рабочим областям, и вырабатывает рекомендации по оптимальному использованию пространства в программной глобальной области (Program Global Area ~~ PGA) на основе характеристик рабочей загрузки.
Oracle Database 10g: Administration Workshop II 9-24
Обзор инфраструктуры консультантов (продолжение)
•	Консультант SGA (SGA Advisor); отвечает за настройку и выработку рекомендаций по размеру системной глобальной области (System Global Area - SGA) на основе модели доступа к различным компонентам внутри SGA.
•	Сегментный консультант (Segment Advisor); выдает рекомендации по решению проблем, связанных с пространством объектов, а также анализирует тенденции увеличения размера объектов.
•	Консультант управления информацией отмены (Endo Advisor); выдает рекомендации по заданию параметра времени удержания информации отмены, а также предоставляет сведения о размере дополнительного пространства, которое может потребоваться для операций отката назад к определенному моменту времени.
Основные преимущества инфраструктуры применяемых консультантов:
•	все консультанты используют унифицированный интерфейс;
•	все они могут быть вызваны и результаты их работу не противоречат друг другу.
Oracle Database 10g: Administration Workshop II 9«25
Использование консультантов с помощью Database Control
Copyright © 2006, Oracle, All rights reserved.
Использование консультантов с помощью Database Control
Advisor Central это главная страница для доступа ко всем консультантам. Перейти на нее можно, щелкнув на ссылке Advisor Central в секции Related Links на странице Database. Однако это не единственное место внутри Database Control Console, откуда можно вызвать консультантов.
На странице Advisor Central можно просмотреть все задачи консультантов, зарегистрированные в автоматическом репозитории рабочей загрузки (Automatic Workload Repository ~ AWR). Можно вывести сведения о задачах, соответствующих предопределенному типу и периоду времени.
Oracle Database 10о: Administration Workshop II 9-26
Q-27 Copyright © 2006, Oracle. All rights reserved.
Типичный сеанс настройки с использованием консультанта
1.	Создание задачи для консультанта.
Задача - это описание в области рабочих данных (executable data area) в репозитории, управляющее анализом при настройке.
2.	Настройка соответствующих параметров задачи.
Параметры задаются для главной задачи консультанта и управляют его работой.
3.	Выполнение анализа.
Выполнение задачи - это синхронная операция; управление не возвращается до тех пор, пока операция не будет завершена или же пока пользователь не прервет ее выполнение. В любой момент времени операцию можно остановить и просмотреть результаты до точки прерывания процесса анализа Если результаты не удовлетворяют пользователя, он может продолжить выполнение задачи и получить дальнейшие рекомендации. Можно также изменить параметры задачи и перезапустить ее выполнения.
4.	Просмотр результатов.
Результаты анализа просматриваются с помощью встроенных представлений или же с помощью Database Control. Можно принять, отвергнуть или проигнорировать рекомендации. Если рекомендация отвергается, пользователь может перезапустить выполнение анализа, используя отвергнутые рекомендации в качестве подсказки для следующей операции анализа.
Oracle Database 10g: Administration Workshop II 9-27
Ручной вызов ADDM
По умолчанию каждый моментальный снимок, полученный в базе данных Oracle и хранимый в AWR, обрабатывается задачей ADDM. Кроме того, можно создать собственную задачу для ADDM, чтобы выполнить анализ в представляющем интерес интервале времени, задав начальный и конечный моментальные снимки.
Чтобы создать задачу ADDM, выполните следующие шаги:
1.	Перейдите на домашнюю страницу базы данных. В секции Related Links щелкните на ссылке Advisor Central.
2.	Под заголовком Advisors выберите ссылку ADDM.
3.	Выберите опцию Period Start Time, а затем щелкните на моментальном снимке, который вы хотите использовать в качестве начала интервала времени. После этого выберите опцию End Time и щелкните на моментальном снимке, показывающем окончание интервала времени.
4.	На странице ADDM Task просмотрите результаты выбранной задачи ADDM.
Oracle Database 10g: Administration Workshop II 9-28
Обзор применения консультанта настройки кода SQL
•	Используйте консультант по настройке кода SQL для анализа команд SQL и получения рекомендаций по производительности.
•	Консультант по настройке кода SQL использует следующие источники дГ|я анализа:
-	Top SQL (анализ активного в настоящее время кода SQL, потребляющего наибольшие ресурсы) - SQL Tuning Sets (анализ списка команд SQL, предоставленного пользователем)
-	Snapshots (анализ моментального снимка)
-	Baselines (анализ результатов базового измерения)

1
Copyright © 2006, Oracle, АН rights reserved.
Обзор применения консультанта настройки кода SQL
Консультант по настройке кода SQL используется для анализа команд SQL и получения рекомендаций по производительности. Обычно этот консультант запускается автоматическим диагностическим монитором базы данных {Automatic Database Diagnostic Monitor - ADDM) при обнаружения проблем производительности (finding).
Дополнительно можно запустить консультант по проверке кода SQL, когда необходимо проанализировать команды SQL (top SQL). потребляющие наибольшее время ЦП, сильно нагружающие ввод-вывод и расходующие большое пространство в оперативной памяти. Консультант по настройке кода SQL подробно рассматривается в Oracle Database 10g: А дминистрирование I.
Oracle Database 10g: Administration Workshop II 9-29
Обзор применения консультанта доступа к данным из кода SQL
Спецификация рабочей нагрузки
-	Команда SQL
-	SQL Tuning Set
-	SQL, находящийся в кэше
-	Статистики
-	Имя схемы
Рекомендации
~ Индексы
~ Материализованные представления
-	Журналы материализованных представлений
Консультанта доступа к данным из кода SQL
Copyright © 2006, Oracle. АН rights reserved.
Обзор применения консультанта доступа к данным из кода SQL
Консультант доступа к данным из кода SQL (SQL Access Advisor) может для данной рабочей нагрузки выдать рекомендации по подходящему набору материализованных представлений, журналов материализованных представлений и индексов. Важно понимать значение подобных структур и их использовать. В результате в ходе оптимизации кода SQL можно существенно повысить производительность выборки данных..
Консультант доступа к данным из кода SQL выдает рекомендации по использованию различных индексов: битовых, основанных на функции и в виде В-дерева. Битовый индекс часто уменьшает время ответа для многих видов незапланированных запросов (ad hoc queries) и снижает требования к занимаемому пространству по сравнению с другими типами индексов. Индексы в виде В-дерева обычно используются в хранилищах данных для индексации уникальных и близких к уникальным ключам.
Данный консультант также выдает рекомендации по оптимизации материализованных представления. В результате они могут более быстро обновляться, а их применение позволит использовать преимущества перезаписи запросов (query rewrite).
Примечание: дополнительные сведения о материализованных представлениях и перезаписи запросов см. в документе Oracle Database Performance Tuning Guide.
Oracle Database 10g: Administration Workshop II 9-30
Типичный сеанс консультанта доступа к данным и кода SQL
£%!«.«• fe«?-<5ste
& Inherit Gptiena fcm э Task or Templets
AsyaSBS f =mt»a! » SG'l AfCSSS Advisor frill is! DrTsW?
SOL Access Advisor: Initial Options
Select a set e? ihrtial options f lift Default Dpht-ns
№e penermsncecif 6QL queues сж snen be improved by cieansy
*• adfiitssna! structures, like Indexes end Materialized Msw. that help in dsta retrial The SOL Access Adviser evaluates SQL statements m a
“ wotfcead. and can suggest indexes, materialized views and maieriahzed view legs that will improv pmfomrsnte cf ths wciktoad as
?IF < ?•=• ate se-m&g&e sorting ps:nr fat да «гда /У! cr’xers can cs cngpgsd »a-nw8:
iht- wszard
Tasks and Twnpistw
View [Tsrnpiates Only
Default Enterprise Manager task template
Genes al pusoase database template
OLTP database template
Data Warehouse database template
Latg feodtfiod
Feb 17.20)5 it* ID 55 AM Feb 17,2005 Ю10 51 AM Feb 17,Ж1£10 62 AM Fell 17, ЛЙ5Ю 10 53 AM
i View.Mtmorey^ ;yet;
Default Template
Template
Template template
5OL5CCESS_EMTASk
i' =8QLACCESSGENEP-AL
F= SQLACCESS.GLTP
;SQLACCESS WAREHOUSE
9-31
Copyright © 2006, Oracle. Al! rights reserved.
Типичный сеанс консультанта доступа к данным и кода SQL
Рекомендуется в самом начале сеанса консультанта доступа к данным из кода SQL выбрать вариант Use Default Options, при котором выполнение анализа производится с использованием предопределенного набора опций консультанта.
Можно воспользоваться также другим вариантом и запустить задачу анализа, выбрав “Inherit Options from a Task or Template”. В таком случае отмечается шаблон и/или задачи, опции которых наследуются и используются при выполнении анализа консультантом. В число таких шаблонов входит несколько общих шаблонов: General (универсальная среда), OLTP (оперативная обработка транзакций) и Warehouse (хранилище данных). Можно также сохранить настроенные шаблоны от предыдущих задач и использовать их повторно, когда это необходимо.
Щелкните на кнопке Continue для запуска мастера консультанта доступа к данным из кода SQL.
Примечание: в Database Control можно обратиться к консультанту доступа к данным из кода SQL на странице Advisor Central.
Oracle Database 10g: Administration Workshop II 9-31
Рабочая нагрузка
•—--о----о—о
SQL Access Advisor:: Worktesd Source DataBase EfiRSRUPf fw«l.twBctexwn
= Cancel
• tee«
Select the source 01 the wwMtsd that yay	ia use fot the analysis. The Best wcuklcad «s c-ne that felly represents all -he SOL staternenls that access the underlying
tables
Г* Cuirefti and fiecenl SOL Act’flt*
F ipiswfl Wa-klosd from SC-L Repository
SQL Tuning Sei pSYS MY_STS_vVORK.OAD
C =Jeer-Defined WciKioad. import SOL ftcm « Table at View vitetl 1 r-Vi 1WS4 Vli Jg<; УгЛЛВ»»»^ ..jm-p lae-e 5
C Ci-ззте a Hypothetical Workload worn the FoUwtng Schemas and Tabic?
./
Tables
3
T Alter Options
You can apply filial ? to reduce the scope of tha sfaten-ents found tn the wothfoad Using filters has tv® acv&etagas Fust, it directs the адагеог to atahe reconvnendJtrons based on a specific subset of statements from -he workload, which miy lead to better quality recommendations. Secund. remwng extraneous statements from tne voklc-ad mac qteatly reduce precessing fine 
«ft-	i -	..	“ ORACLE*
9-32
Copyright © 2006, Oracle. AH rights reserved.
Рабочая нагрузка
Используйте страницу Workload Source мастера SQL Access Advisor для задания определенной рабочей нагрузки, которая позволш получить рекомендации.
Предоставляются следующие варианты:
•	Current and Recent SQL Activity; в качестве рабочей нагрузки используется текущий код SQL из кэша.
•	Import Workload from SQL Repository; в качестве источника рабочей нагрузки используется ранее созданный объект БД SQL Tuning Set.
-	User-Defined Workload: Import SQL from a Table or View; позволяет получить рекомендации для рабочей нагрузки, которую сейчас нельзя воспроизвести на текущей базе данных. С помощью такой возможности можно получить и реализовать рекомендации доступа к данным до начала эксплуатации приложения.
•	Create a Hypothetical Workload from the Following Schemas and Tables; позволяет задать схему, в которой консультант может произвести поиск таблиц измерений {dimension tables) и сгенерировать рабочую нагрузку.
В дальнейшем границы рабочей нагрузки могут быть сужены. Это осуществляется путем задания фильтров в секции Filter Options. С помощью предоставляемых опций можно ограничить набор команд SQL, входящих в рабочую нагрузку. Фильтры применяются консультантом к рабочей нагрузке для того, чтобы сфокусировать усилия по настройке. Фильтры:
*	команды SQL с наибольшим потреблением ресурсов;
« пользователи, идентификаторы модулей и действия;
•	таблицы.
sft54->sxa:>le'--

Oracle Database 10g: Administration Workshop II 9-32
Опции получения рекомендаций
Hrlsi prise Ййгтдег 1:-}д
У£ ?«««;<
SQL Access Advisor: Recommendation Options
Os-abas* LDRSRUP1_orcl.orade.cojn
* j= £?L
Вйсспчтгг£Ш$«п Types
The odvi«ot may tecemmshd indexas •» matsiia==i«s views to rscuee the time 4 taker, -c Sad dais However you must fc^anca this кепей agsrosi the cost to maintain the additions- siruelutes Select the type of structures te be recommended fey the advisor
Г' Indexes
r Malepairzet! Views
« Both IntVses and Materialised Views
‘r Evaluation Only = iisaaee-.
Ж4 >;гглу:,-J..<S-a :.;sa:.r	-.fZn.-'t-:	V. Ъ'-.ZX xt'i :•< !*>•»-.-• ,:,-f-_:
Adviser Fslode
The advisor can run rr> one of two mooes. Limited or Ctanprerrenswe Lrutse Mace ts meant to return gusfely а-ter precessing the statements with the highest cost, pctentiaih’ ignoring statements with a cost be-cw a cettem threshold Cotnptehensivs Mode will perform ar- exhaustive analysis.
’** Limited Mode
- - - .. J	."..-;
r' CcmptshensTS Mode
• ж -.-.-. --.• s so c- <tsa«sS«
Ж Advanced Options
WerMcred Categorisation
Wo-Hoad Volatility
9~33	___________Copyright © 2006, Oracle. All rights reserved.
Опции получения рекомендаций
Используйте страницу Recommendations Options для указания того, ограничивать ли рекомендации консультанта только одним методом доступа. В секции Recommendation Types выберите Indexes или Materialized Views или же оба вида рекомендаций. Можно также выбрать Evaluation Only для проведения одной лишь оценки существующих структур доступа. В этом режиме консультант не генерирует новые рекомендации, а комментирует использование существующих структур. Это полезно для отслеживания эффективности использования во времени текущих индексов, материализованных представлений и журналов материализованных представлений.
Секция Advisor Mode используется для задания одного из двух режимов выполнения консультанта. Эти режимы влияют на качество рекомендаций, а также на время, требуемое для их получения. Когда задан Comprehensive Mode, консультант осуществляет поиск большой совокупности команд-кандидатов, в результате чего повышается качество рекомендаций. Если же выбран Limited Mode, консультант отрабатывает быстро, ограничиваясь рекомендациями для определенных команд-кандидатов.
В секции Advanced Options можно отразить или скрыть опции, которые позволяют задать ограничения на пространство (Space Restrictions), параметры настройки (Tuning Options) и месторасположение структур хранения по умолчанию (Default Storage Locations).
Используйте раздел Workload Categorization для задания опций учета в рабочей нагрузке операций изменения (Workload Volatility) и границ рабочей нагрузки (Workload Scope). Для процесса формирования рекомендаций можно выбрать первоочередное рассмотрение операций “только чтение' или же, наоборот, операций изменения связанных объектов.
Oracle Database 10g: Administration Workshop II 9-33
Опции получения рекомендаций
V Advsn 4d Options
cmgortmon
>Г/<ф:->аЙ Vc^tiMy
<« Л3о.« Ad-iscf к- sentee* the asiauMy sf referenced ejects '«ten tornwg reccmmen<ist4.-«s
- V.;--	* у .-.v> - <гл»» ,x *J- r; ••; "I»*-.'.' "
' -x> :ет us-e .>:te::li-j J Я  ;e ate recwamerrfatons
WcrM/и! Sc<te
<•' H’JKtlSi WarMerf
<" Cjaiteie WttMcac
S₽*«® RessrjctfcwtS
indexes ®«s «Miersfeaed we*s «-cre.<ee wuosmance a :r»s ccst cf V¥ter> -he SQL Access Adsrec-» ~ лг<<й e« vreh nc< s fctesten= ч елЗ make йе test pesjfite cerfemiance -eeommstea-r-cs When re^sz-wj task resists yCccandecwe which reccmrwrdj’E-es te 'n-pismera t-e у-зч wish the sum ctthe fvt&f»f>.sf>:iet:«n spate :sq«ir---;c-'ti- is M srdhi-“ •: fcmit.'
** si-e-'me s!i recommends-K-tiS
<''<-=. sp,f.e « iimr.eJ Space Limit :	j~:  ;J
Ttss-sKg C’sssns
®iientr.-c :..c:iwj я? SCI eta№rne«s £-y : С^5й=1« i est <
A?jw cunjider е№Л-.гг; u-sts wte-: fctii-tnt; recs.-rtrcendauv’is
default Stcrsge: Ь-г&йкгГй
t?» detsuft tee ь «з|: Ire placed w the s: terns a-terfrc-space of the table tte? erererree.r.-Jstw^!iiedce“?sw.s: te(ssfed:n:hs schema and tafcseipace c! the Sts! tails refeiK-ned ;я uie query and гла-епяагей лее- tc-ge “ч~ be p-aced m the сваи»» iabtespace si the schema -sttte tas=e t'-ey reference 'ibese felds s8c«v
ycu ta change these cehnlt Pcat:scs ______________
lnse>-T3h:--space	\
• Schema	\	f
tdaet®izedX':ewl3*Ses₽a--v	j
NatHtaa^te 'r^s№ ?cnama	j
Maenaiicsd v-e* Log Tayeseace f"
________________/________-	______________Of^AG.L±x________
Copyright © 2006, Oracle. All rights reserved.
Опции получения рекомендаций (продолжение)
В разделе Workload Scope можно выбрать вариант частичной рабочей нагрузки (Partial Workload), при котором не включаются рекомендации по удалению неиспользуемых структур доступа, или вариант полной загрузки (Complete Workload), включающий такие рекомендации.
Раздел Space Restrictions используется для задания строгого ограничения на пространство, которое вынуждает консультанта вырабатывать только такие рекомендации, при которых не превышается установленное ограничение на общий размер пространства. Раздел Tuning Options используется для задания опций учета специальных условий при выработке рекомендаций. С помошыо выпадающего списка в поле "Prioritize Tuning of SQL Statements by” задается значение, на основе которого упорядочиваются по убыванию команды SQL. Список содержит: Optimizer Cost (стоимостная оценка оптимизатора). Buffer Gets (чтения буферов), CPU Time (время ЦП), Disk Reads (дисковые чтения), Elapsed Time (общее время выполнения) и Execution Count (число выполнений).
Раздел Default Storage Locations позволяет переопределить установки по умолчанию для схем и табличных пространств. По умолчанию индексы размещаются в тех же схемах и табличных пространствах, что и соответствующими им таблицы. Материализованные представления размещаются в схеме и табличном пространстве пользователя, который выполнял один из запросов, на основе которого была получена рекомендация но созданию материализованного представления.
После определения выше описанных параметров можно запланировать выполнение и просмотреть сведения о созданной вами задаче настройки.
Oracle Database 10g: Administration Workshop II 9-34
Просмотр рекомендаций
На странице Advisor Central можно просмотреть список всех завершившихся задач консультанта доступа к данным из кода SQL. Выберите задачу, для которой вы хотите вывести рекомендации, а затем щелкните на кнопке View Result. Используйте страницу Results for Task Summary для вывода общих сведений о находках (findings) консультанта. На этой странице приводятся графики и статистики, предоставляющие сведения о том, как рекомендации изменят общую эффективность при данной рабочей нагрузке и потенциально улучшат время выполнения запросов. Здесь же показываются данные о числе проанализированных команд и количестве выданных рекомендаций.
Для просмотра информации, отражающей другие аспекты результатов, полученных после выполнения задачи консультанта, щелкните на одной из трех закладок этой страницы: Recommendations, SQL Statements или Details.
На странице Recommendations выводятся график и таблица, отражающие рекомендации, упорядоченные по проценту влияния на общую стоимость совокупной рабочей нагрузки. Верхние рекомендации имеют наибольшее влияние на улучшение обшей производительности. Щелкнув на кнопке Show SQL. можно просмотреть сгенерированный SQL-скрипт для выбранных рекомендаций. Вы можете щелкнуть на соответствующий идентификатор рекомендации в таблице, чтобы вывести перечень действий, которые необходимо произвести для того, чтобы реализовать рекомендацию. На странице Actions можно просмотреть все соответствующие команды SQL, которые на самом деле необходимо выполнить. Снимите отметки для рекомендаций, которые вы не хотите выполнять. Затем щелкните на кнопке Schedule Implementation, чтобы реализовать оставленные рекомендации. Этот шаг выполняется в виде запланированного задания.
Oracle Database 10g: Administration Workshop II 9-35
Асинхронная операция	Tuning Statistics SGA Attach
COMMIT	AWR Advisors
	> Async. Commit
•	По умолчанию операция commit ждет, пока данные повторного выполнения не будут сохранены в журнальных файлах.
•	Теперь можно изменить такое функционирование на “не ждать”.
•	Асинхронная операция commit полезна для обеспечения высокой пропускной способности транзакций.
•	Однако транзакции могут быть потеряны:
-	Отказы машины
-	Проблемы ввода-вывода в журнальные файлы
9-36
Copyright © 2006, Oracle. АЙ rights reserved.
Асинхронная операция COMMIT
Когда транзакция фиксируется, процесс записи в журнал (LGWR) пишет на диск данные повторного выполнения (redo) для операции commit вместе с накопленными журнальными записями (redo) о всех изменениях в соответствующей транзакции. По умолчанию база данных Oracle записывает данные повторного выполнения на диск и только после этого производит возврат управления клиенту. Такой режим работы вносит задержку в выполнение операции commit, так как приложение должно ждать завершения записи журнальных данных на диск.
Предположим, вы создаете приложение с высокими требованиями по пропускной способности транзакций. Если необходимо уменьшить задержку при выполнении фиксации, гогда можно изменить опции операции commit по умолчанию так, чтобы приложению не требовалось ждать, пока база данных Oracle запишет данные в оперативный журнал.
Таким образом, генерируемые для транзакции данные повторного выполнения могут быть не сохранены, когда сообщение о фиксации возвращается пользователю. В результате появляется небольшое окно уязвимости, когда для транзакции, которая казалось бы была зафиксирована, может быть произведен откат назад. Наиболее очевидная причина этого -отказ машины. В этом случае также теряются записи о фиксации в журнальном буфере, которые не были записаны на диск в оперативный журнал. Другой причиной могут быть проблемы файлового ввода-вывода в оперативный журнал, возникающие в тот момент, когда процесс LGWR на самом деле пытается сбросить данные из журнального буфера на диск. Когда журнальные файлы не мультиплексируются, обеспечивая достаточный уровень избыточности, тогда, возможна, потеря результатов операции commit.
Oracle Database 10g: Administration Workshop II 9-36
Использование асинхронной операции COMMIT
• Возможные комбинации:
-	immediate, wait (по умолчанию)
-	IMMEDIATE, NOWAIT
-	BATCH, WAIT
-	BATCH, NOWAIT
•	Примеры на уровне системы или сеанса:
| ALTER SYSTEM SET COMMIT WRITE = IMMEDIATE, WAIT
ALTER SESSION SET COMMITJWRITE = IMMEDIATE, NOWAIT
•	Примеры команды commit:
ORACLE
9-37 Copyright © 2006, Oracle. All rights reserved.
Использование асинхронной операции commit
Вы можете изменить режим выполнения операции commit, используя: параметр инициализации COMMIT__WRITE на уровне системы или сеанса;
• команду COMMIT,
Опция IMMEDIATE гарантирует, что журнальные данные операции commit немедленно пишутся процессом LGWR (то есть инициируется ввод-вывод). Опция BATCH означает, что данные повторного выполнения располагаются в журнальном буфере и операция ввода-вывода не инициируется. Но при этом процессу LGWR разрешено писать данные повторного выполнения на диск по своему собственному расписанию.
Опция WAIT гарантирует, что сообщение о фиксации не возвращается до тех пор, пока данные повторного выполнения для операции фиксации не будут сохранены в оперативном журнале. При использовании опции NOWAIT сообщение о фиксации возвращается без ожидания завершения записи данных повторного выполнения операции commit в оперативный журнал.
Когда отсутствуют какие-либо опции, по умолчанию действуют IMMEDIATE и WAIT, что согласуется с предыдущими версиями базы данных. Нельзя одновременно указать обе опции BATCH и IMMEDIATE, а также WAIT и NOWAIT.
После установки параметра инициализации СОММПГ__ WRITE команда COMMIT, не содержащая опций, согласуется с этим параметром.
Примечание: опции команды COMMIT переопределяют параметр инициализации COMM1T_WRITE.
Oracle Database 10g: Administration Workshop II 9-37
Итоги
•	Диагностика проблем производительности базы данных
•	Конфигурирование репозитария автоматической загрузки
•	Доступ к консультантам базы данных
•	Использование консультанта доступа к данным из кода SQL для повышения производительности базы данных
•	Эффективное использование асинхронной операции commit
Copyright © 2006, Oracle. Ail rights reserved.
Oracle Database 10g: Administration Workshop II 9-38
I
Обзор практического занятия: использование ADDM для диагностики проблем производительности
•	Просмотр и интерпретация находок ADDM при проведении диагностики проблемы производительности
•	Реализация рекомендаций ADDM
9-39 Copyright © 2006, Oracle. АН rights reserved.

Oracle Database 10g: Administration Workshop II 9-39
Управление объектами схем
улснле. мн ngnis reserveg.
Рассматриваемые вопросы	Типы таблиц Секционирование ЮТ Кластер Задачи АБД
•	Использование таблиц определенных типов в соответствие с вашими требованиями: обычных, секционированных, ЮТ и кластеризованных.
•	Выполнение задач АБД:
-	Оценка размера новых таблиц
-	Анализ тенденций роста
-	Сопровождение статистик оптимизатора
-	Оперативная реорганизация объектов схем
Oracle Database 10g: Administration Workshop II 10-2
Типы таблиц
Обычная
Кластеризованные
Секционированная L
Copyright © 2006, Oracle. All rights reserved.
Индекс-таблица (ЮТ)
Типы таблиц
Обычные (организованные в виде “груды”, “heap-organized”) таблицы были рассмотрены в курсе Oracle Database 10g: Администрирование L
Секции (partitions) - части таблицы или индекса, создаваемые для облегчения управления очень большими базами данных (very large database, VLDB), которые могут содержать несколько терабайтов данных.
Данные таблиц, организованных в виде 'Труды” (heap-organized table), хранятся как неупорядоченные коллекции (груды или кучи, heap), В отличие от них в индекс-таблице (index-organizedtable, ЮТ) данные хранятся в структуре индексного В-дерева. отсортированные по главному ключу..
Кластер (cluster) - это группа из одной или нескольких таблиц, совместно использующих одни и те же блоки данных, поскольку эти таблицы содержат общие столбцы и часто используются вместе друг с другом.
Oracle Database 10g: Administration Workshop II 10-3
Типы таблиц
> Секционирование ЮТ
Кластер
Задачи АБД
Что такое секция и для чего она используется?
Секция:
•	Часть “очень большой” таблицы или индекса
•	Хранится в своем собственном сегменте
•	Используется для повышения производительности и улучшения управляемости
W-4 Copyright © 2006, Oracle. All rights reserved.
Что такое секция и для чего она используется?
Секция - часть (piece) “очень большой” таблицы или индекса, хранящаяся в своем собственном сегменте. Поэтому такой секцией можно отдельно управлять. Примером ‘"очень большой” таблицы является таблица хранилища данных, содержащая несколько гигабайтов данных. Секции могут быть разбиты дополнительно на подсекции (subpartitions} для повышения уровня управляемости и улучшения производительности.
Секционирование может способствовать улучшению производительности, так как многие запросы получают возможность игнорировать секции, не соответствующие предложению WHERE и поэтому не содержащие запрашиваемые строки. В итоге уменьшается объем полностью просматриваемых данных при получении результирующего набора (result set). Операции над секционированными таблицами и индексами могут быть выполнены в параллель. В этом случае различным параллельно выполняемым серверным процессам выделяются для обработки различные секции таблицы или индекса.
Oracle Database 10g: Administration Workshop II 10-4
Секции
Характеристики секций:
•	Одни и те же логические атрибуты: одинаковые столбцы, ограничения и индексы
•	Различные физические атрибуты: хранение в разных табличных пространствах
•	Прозрачны для приложений
•	Несколько методов секционирования
Copyright © 2006, Oracle, Ail rights reserved.
Секции
Каждая секция хранится в своем собственном сегменте и ей можно управлять отдельно. Она может использоваться независимо от других секций. Секция - структура хранения, позволяющая произвести лучшую настройку для обеспечения доступност и и производительности.
В основе одной из возможностей параллельного выполнения лежит использование секций. Операции над секционированными таблицами и индексами могут быть выполнены в параллель. В этом случае различным параллельно выполняемым серверным процессам выделяются для обработки различные секции таблицы или индекса
Секции и подсекции таблицы или индекса совместно разделяют одни и те же логические атрибуты. Например, все секции (или подсекции) в таблице разделяют определения одних и тех же столбцов и ограничений, и все секции (или подсекции) индекса разделяют одни и те же опции индекса. Однако физические атрибуты (например, TABLESPACE) могут отличаться. Хранение секций в отдельных табличных пространствах полезно для независимого резервирования и восстановления, контроля установления соответствия данных с дисковыми драйверами (балансировка ввода-вывода), а также для снижения вероятности повреждения данных.
Секционирование прозрачно для существующих приложений и обычных команд DML, выполняемых для секционированных таблиц. Однако при программировании приложения можно также воспользоваться преимуществами от использования в командах DML имен таблиц или индексов с указанием секций (partition-extended table or index names}.
Дополнительные сведения о секционированных таблицах и индексах, включая методы секционирования, см. в документе Oracle Database Administrator 5 Guide.
Oracle Database 10g: Administration Workshop II 10-5
Создание секции
Copyright © 2006, Oracle. All rights reserved.
Создание секции
Database Control поддерживает различные типы секционирования таблиц и индексов и упрощает процесс их создания. Мастера (wizards) ведут вас по шагам процесса создания и предлагают возможные опции.
Выберите Administration > Tables. На странице Tables щелкните на кнопке Create, чтобы создать секционированную таблицу. Выводится страница “Create Table: Table Organization”, на которой можно выбрать создание неупорядоченной таблицы (heap-organized table) или индекс-таблицы (index-organized table). Щелкните на кнопке Continue для перехода на страницу Create Table. На этой странице указывается имя таблицы и другая информация. Щелкните на закладке Partitions, а затем на кнопке Create. Открывается страница Create Partitions: Partitioning Method, приведенная на слайде. Она содержит точки входы в мастера создания секционированных таблиц. Примите решение о типе секционирования, а затем щелкните на кнопке Continue. Мастер ведет вас по шагам процесса создания , в ходе которого задаются столбцы, определяющие секции и их спецификации.
Oracle Database 10g: Administration Workshop II 10-6
Методы секционирования
•	Range: соответствие строк секциям устанавливается на основе логических диапазонов значений столбцов (например, месяцев года)
•	Hash: строки распределяются по секциям на основе хэш-значения ключа секционирования
•	List: строки распределяется по секциям на основе задаваемых АБД списков дискретных значений
•	Range-hash: строки распределяются на основе метода диапазонов на секции, а внутри каждой такой секции на подсекции с использованием хэш-метода
•	Range-list: строки сначала распределяются на основе метода диапазонов, а затем с использованием дискретных значений

10-7 Copyright© 2006, Grade. All rights reserved.
Методы секционирования
*	Производительность при использовании секционирования по диапазонам (range partitioning) наилучшая, когда данные равномерно распределены по этим диапазонам.
•	Хэш-секционирование (hash partitioning) означает автоматическое равномерное распределение данных: АБД не может управлять тем, как конкретная строка попадает в секцию. Пример:
CREATE TABLE regions
(region_id NUMBERr region _name VARCHAR2 (25))
PARTITION BY HASH (regionjld)
PARTITIONS 4 STORE IN (tbsl, tbs2, tbs3, tbs4);
В этом примере показана хэш-секционированная таблица. Распределение по секциям производится на основе столбца region id. Создается четыре секции, им присваиваются имена, сгенерированные системой, сами секции располагаются в табличных пространствах tbsl, tbs2, tbs3, and tbs4.
*	Когда необходим полный контроль над распределением строк по секциям, задавайте в описании каждой секции списки (list) дискретных значений для столбца, на основе которого осуществляется секционирование. Например, это может быть код штата.
*	Смешанное секционирование на основе метода range-hash идеально подходит для хронологических (historical) и расщепляемых (striping) данных.
•	Секции, созданные на основе метода range-list, - это только логические структуры; их данные хранятся в сегментах подсекций.
Oracle Database 10g: Administration Workshop II 10-7
Сопровождение секций
Сопровождение секций
После того, как секционированный объект был создан, его сопровождение можно осуществлять с использованием Database Control.
Выберите Administration > Tables. Щелкните на требуемой таблице. В результате выводится страница Edit Table. После щелчка на закладке Partitions открывается страница, показанная на слайде. На ней можно отметить требуемую секцию и применить к ней операцию сопровождения, которая выбирается в выпадающем списке поля Actions.
Примечание: для изменения характеристик хранения выбранной секции используйте кнопку Advanced Options.
Oracle Database 10g: Administration Workshop II 10-8
Индекс-таблицы
Типы таблиц
Секционирование
> ЮТ
Кластер
Задачи АБД
Доступ к обычной таблице
Доступ к ЮТ
—Ключевой столбец
—Заголовок строки
10-9 Copyright €) 2006, Oracle. All rights reserved.
Индекс-таблицы
В отличие от обычной неупорядоченной {heap-organized) таблицы в мндекс-таблице (index-organized table, JOT) данные хранятся в индексной структуре в виде В-дерева, отсортированные по главному ключу. Кроме значений столбцов первичного ключа в В~дереве ЮТ также хранятся неключевые столбцы.
Индекс-таблицы поддерживают все возможности, предоставляемые таблицами, например, ограничения, триггеры, столбцы объектного типа и с типом LOB, секционирование, параллельные операции, реорганизацию в оперативном режиме и репликации. Для индекс-таблицы даже можно создавать индексы.
Индекс-таблицы идеально подходят для приложений OLTP, которые требуют наличие быстрого доступа к данным с использованием главного ключа и высокий уровень доступности. Запросы и операции DML над таблицей заказов, используемые при оперативной обработке заказов, основаны преимущественно на доступе по главному ключу. Использование интенсивных операций DML вызывает фрагментацию и, следовательно, необходимость частых реорганизаций. Поскольку индекс-таблица может быть реорганизована в оперативном режиме без перевода в недействительное состояние вторичных индексов, временное окно недоступности данных значительно сокращается.
Индекс-таблица - это альтернатива для:
•	таблицы с индексом по главному ключу, созданному по команде CREATE INDEX;
•	таблицы, хранимой в индексном кластере, который был создан по команде CREATE CLUSTER и в котором устанавливается соответствие главного ключа таблицы и ключа кластеризации.
Oracle Database 10g: Administration Workshop II 10-9
	Индекс-таблицы и обычные неупорядоченные таблицы
4»	По сравнению с обычной таблицей ЮТ: - Обеспечивает более быстрый доступ к табличным данным, который основан на использовании ключа - Не содержит в двух структурах хранения значение главного ключа -	Требует меньше пространства для хранения -	Использует вторичные индексы и логические rowid - Предоставляет более высокий уровень доступности, так как реорганизация таблицы не переводит вторичные индексы в недействительное состояние
	ЮТ имеют следующие ограничения : - Должны иметь главный ключ, проверка которого не может быть отложенной (deferrable) -	Не могут входить в кластер -	Нельзя использовать смешанное секционирование -	Нельзя создавать столбцы с типом rowid или long
	
10-10	Copyright © 2006, Oracle. All rights reserved.
Индекс-таблицы и обычные неупорядоченные таблицы
Инде кс-таблицы не имеют обычных (физических) ROW ID. Вместо них используются логические ROW ID (logical rowids). Такие ROW ID предоставляют более быстрый доступ к данных в индекс-таблице с использованием двух методов:
•	использование оценки физического расположения (physical guess); при этом время доступа эквивалентно времени доступа по физическим ROWID;
•	доступ без оценки (или после неправильной оценки); такие действия выполняются подобно доступу по главному ключу индекс-таблицы.
Оценка (guess) основывается на знании о файле и блоке, в котором находится запись. Такая информация верна, когда индекс создается, но изменяется, если листовой блок расщепляется. Если оценка неправильна и строка больше не размещается в указанном блоке, тогда для доступа к строке используется оставшаяся часть логического ROW ID, содержащая главный ключ.
Oracle создает вторичные индексы (secondary indexes) для индекс-таблицы, используя логические ROW ID, основанные на главном ключе таблицы. Так как строки индекс-таблицы не имеют постоянного физического адреса, оценки физического расположения могут устареть после перемещения строк в новые блоки.
Для обновления оценок необходимо перестроить вторичный индекс. Следует отметить, что перестройка вторичного индекса требует чтения базовой таблицы в отличие от перестройки индекса обычной таблицы.
Oracle Database 10g: Administration Workshop II 10-10
Индекс-таблицы и обычные неупорядоченные таблицы (продолжение)
Более быстрый и простой способ исправления оценок (guesses) - использование команды ALTER INDEX . . . UPDATE BLOCK REFERENCES. Она выполняется в оперативном режиме и операции DML разрешены над соответствующей индекс-таблицей.
После перестройки вторичного индекса или любых других изменениях ссылок на блоки в оценках, необходимо снова собрать индексные статистики.
Тип данных UROWID позволяет использовать в приложениях логические ROW ID таким же образом, как используются физические ROW ID, например, как часть курсора или для выборки ROWID с целью последующего внесения изменений в данные. UROWID может также использоваться для хранения ROWID других баз данных, доступных через шлюзы. Наконец, тип UROWID может также использоваться для ссылки на физические ROWID.
Oracle Database 10g: Administration Workshop II 10-11
Создание индекс-таблиц
SQL> CREATE TABLE country
2	( country_id cfB(2)
I	CONSTRAINT qpuntry_id_nn ЖЯ ®LL,
4	country_name	VARCHAR2(40) ,
5	риггепсу_пд«ре	VARCHAR2(25) ,
6	currency_symbol	VARCHAR2(3),
9	map	fiLQB,
8	flag	BLOB,
9	CONSTRAINT cotmtry_c_xdjpk
10	PRIMARY KEY (country_id))
11	ORGANISATION INDEX
12	TABLESPACE indx
13	««THRESHOLD 20
14	OVERFLOW TABLESPACE
10-12 Copyright © 2006, Grade. Ail rights reserved.!
Создание индекс-таблиц
Как правило, индексные записи обычного индекса в виде В-дерева имеют малый размер. В них содержится значение главного ключа и ROW ID для каждой строки. В листовом блоке может храниться большое количество таких индексных записей. В случае индекс-таблиц такая ситуация не всегда повторяется, поскольку в них строки хранятся целиком.
Хранение больших по размеру записей в индексных листовых блоках замедляет поиск и полный просмотр индекса. Поэтому может быть задано пороговое значение, представляющее собой процент от размера блока, при превышении которого строка перемещается в область переполнения.
Конечно, столбец главного ключа должен всегда храниться в индексном блоке ЮТ, чтобы выполнялся поиск. Но неключевые значения могут располагаться в отдельной области, называемой областью переполнения {overflow area), так чтобы само по себе В-дерево оставалось плотно кластеризованным (densely clustered).
Индекс-таблицы отличаются от обычных таблиц только физической организацией.
Логически операции с этими таблицами выполняются также, как и с обычными, индекс-таблица может указываться в командах INSERT, SELECT, DELETE и UPDATE также, как и обычная таблица.
Все опции команды ALTER, доступные при использовании обычных таблиц, могут быть применены и к индекс-таблицам. В их число входят: ADD, MODIFY и DROP для COLUMNS, а также ADD и DROP для CONSTRAINTS. Однако ограничение главного ключа для индекс-таблицы не может быть удалено, отложено (deferred) или отключено (disable).
Oracle Database 10g: Administration Workshop II 10-12
Кластеры
Типы таблиц Секционирование ЮТ
> Кластер Задачи АБД
ORD NO
PROD
QTY
101
102
102
102
101
101
M102
R2091
G7830
N9587
A5675
W0824
20
11
20
28
19
10
ORD DT
COST CD
ORD NO
101
102
05-JAN-97 07-JAN-97
R01
N45
Cluster Key
(ORDJNO)
101 ORD DT CUST CD
05~JAN-97 PROD A4102 A5675 W0824
102 ORD DT
07~JAN~97	N45
PROD QTY
11
20
26
R01
20
19
10
COST CD
A2091
G7830
N9587


w «Ж®
Некластеризованные таблицы orders и order item
Кластеризованные таблицы orders и order item
10-13

Copyright © 2006, Oracle. Ail rights reserved.
Определение кластеров
Кластер (cluster) — это группа из одной или нескольких таблиц, совместно использующих одни и те же блоки данных, поскольку эти таблицы содержат общие столбцы и часто используются в запросах с соединениями. Хранение таблиц в кластерах дает возможность АБД денормализовать данные, вид которых очевиден для конечного пользователя и программиста. Применение кластеров не требует изменения кода приложения, обращающегося к таблицам. Кластеры прозрачны для конечного пользователя и программиста.
Преимущества кластеров
•	Уменьшается дисковый ввод-вывод и время соединения кластеризованных таблиц.
•	Значение каждого кластерного ключа хранится только один раз для всех строк с одинаковым значением ключа, поэтому для хранения используется меньше пространства.
Производительность
Полные просмотры для кластеризованных таблиц выполняются обычно медленнее, чем для некластеризованных.
Oracle Database 10g: Administration Workshop II 10-13
Типы кластеров
Индексный кластер
Ддя сопровождения данных, содержащихся в индексном кластере (index cluster), используется кластерный индекс (cluster index). Он должен быть доступен для хранения, извлечения и сопровождения данных в индексном кластере.
Кластерный индекс указывает на блок данных, содержащий строки с заданным значением ключа. Структура кластерного ключа похожа на структуру обычного индекса.
В отличие от обычного индекса кластерные индексы хранят неопределенные значения. При этом для каждого значения ключа кластерного индекса создается только один элемент индекса. Поэтому при одном и том же наборе ключевых значений кластерные индексы могут быть меньше, чем обычные.
Хэш-кластер
Для определения местоположения строки в хэш-кчастере (hash cluster) при выборке и выполнении операций DML используется хэш-алгоритм (определяемый пользователем или сгенерированный системой).
Когда производится поиск с использованием кластерного ключа по условию равенства, хэш-кластер может обеспечить больший выигрыш производительности по сравнению с индексным кластером, т.к. просматривается только один сегмент (не нужен доступ к индексу).
Oracle Database 10g: Administration Workshop II 10-14
Типы кластеров (продолжение)
Отсортированный хэш-кластер
Внутри отсортированного хэш-кяастера (sorted hash cluster} строки находятся в списках отсортированных строк. Каждый список соответствует определенному хэш-значению ключевых столбцов, определяемому в соответствующем хэш-кластере. Внутри каждого списка строки хранятся упорядоченно на основе значений столбцов ключа сортировки, которые определяются в соответствующем отсортированном хэш-кластере. По умолчанию строки выбираются в таком же порядке, когда выполняется запрос из кластеризованной таблицы и в предикате используются столбцы хэш-ключа.
Преимущества отсортированных хэш-кластеров в том, что при их использовании не затрачивается время ЦП и приватная память для сортировки данных при выполнении запросов, в которых необходимо гарантировать определенный порядок возвращаемых строк.	«
Oracle Database 10g: Administration Workshop II 10-15
Ситуации, в которых полезны кластеры
	Критерий	Индекс	Хэш	Отсорт. хэш	
	Равномерное распределение значений ключа	X	X	X	
	Случайное распределение значений ключа		X	X	
	Редко обновляемые ключи	X	X	X	
	Часто соединяемые таблицы “общее-детали”	X			
	Предсказуемое количество значений ключа		X	X	
	Запросы, использующие в предикате равенство по ключу		X	X	
	Данные выбираются в том же порядке, в котором они были вставлены			X	
					
10-16 Copyright © 2006 Oracle. Ail rights reserved.
Ситуации, в которых полезны кластеры
Когда не рекомендуется использовать кластеры
•	Запросы, в которых соединяются таблицы, в приложении выполняются редко, а изменения значений общих столбцов - часто. Изменение в строке значения кластерного ключа происходит дольше, чем в некластеризованной таблице, так как Oracle должен при этом перенести измененную строку в другой блок для сопровождении кластера.
•	По одной из кластеризованных таблиц часто выполняется полный просмотр.
Для хранения этой таблицы используется больше блоков по сравнению с отдельной таблицей, не входящей в кластер .
•	Данные из всех таблиц с одинаковым значением кластерного ключа превышают один или два блока Oracle. Для доступа к одной строке в кластеризованной таблице сервер Oracle читает все блоки, содержащие строки с таким же значением.
Когда не рекомендуется использовать хэш-кластеры
•	Если таблица постоянно растет или если приложение часто изменяет значения столбцов кластерного ключа.
•	Если в приложении часто выполняются полные просмотры таблиц и нужно выделять достаточно большое пространство для хэш-кластера с учетом предполагаемого роста. Использование хэш-кластеров и индексных кластеры необходимо предварительно тщательно спланировать. При их применении могут возникнуть дополнительные накладные расходы, отрицательно влияющие на производительность, когда выполняются такие крупные операции, как массовая (прямая) вставка и перестройка объектов.
Oracle Database 10g: Administration Workshop II 10-16
Отсортированный хэш-кластер: обзор
* Новая структура, используемая для хранения данных, отсортированных по столбцам, не входящим в первичный ключ:
-	Для кластерного ключа подсчитывается хэш-значение.
-	Строки, соответствующие конкретному значению кластерного ключа, сортируются на основе ключа сортировки.
• Используется для гарантированной выборки строк в определенном порядке без выполнения сортировки данных:
-	Строки возвращаются в возрастающем или убывающем порядке для конкретного значения
кластерного ключа.
-	Необязательно указывать предложение ORDER BY для выборки строк в возрастающем порядке.
I	—	f	
I	10-17	Copyright © 2006, Oracle. All rights reserved.	
Отсортированный хэш-кластер: обзор
При хранении в БД Oracle данных обычной неупорядоченной таблицы строки не сортируются в определенном порядке, контролируемом пользователем. Более того, решение, где разместить строку, зависит от эвристических правил хранения. База данных Oracle не гарантирует возврат строк в определенном порядке, если только запрос не включает предложение ORDER BY.
Внутри отсортированного хэш-кластера создаются списки отсортированных строк. Каждый список соответствует конкретному хэш-значению столбцов ключа. Вместе с таким ключом определяется ключ сортировки хэш-кластера. Список задает порядок возврата строк по запросу к таблице, в котором в предикате используются столбцы хэш-ключа.
Отсортированные хэш-кластеры уменьшают использование времени ЦП и понижают потребность в частной памяти, возникающей при сортировке данных во время выполнения запросов, требующих гарантированного порядка возврата строк в различных командах SQL. При запросе данных из хэш-кластеризованной таблицы по ключу кластеризации с предложением ORDER BY, содержащем только столбцы ключа сортировки или префиксные столбцы этого ключа, оптимизатор исключает накладные расходы сортировки, так как строки возвращаются отсортированными в соответствие с столбцами ключа. Однако дополнительная сортировка требуется для запросов, в которых в предложении ORDER BY указываются столбцы суффикса ключа сортировки или столбцы, не входящие в ключ сортировки. Такая дополнительная сортировка необходима, если отсутствуют подходящие индексы таблицы. По этой причине, создавая отсортированный хэш-кластер, тщательно подбирайте столбцы ключа, определяющего порядок хранения и выборки строк.
Oracle Database 10g: Administration Workshop II 10-17
Отсортированный хэш кластер: пример
Copyright © 2006, Oracle. All rights reserved.
CREATE CLUSTER aalls_cluster'
( originjnumber NUMBER ?--------——• Ключ кластера
, call_timestamp NUMBER SORT I_______Ключ
,	NUMBER SORT) j	сортировки
10000
SINGLE TAI HASH f® origin_ni®fcfef
SIZE 5(4
CREATE TABLE calls'
( origin__number NUMBER
, call timestamp NUMBER
, call__dur®tion NUMBER
, other_info VARCHAR2{30))
CLUSTER calls_clustex(
origin_nwnber, call_timestairf>, call_duration
); . |......... 1
10-18
Отсортированный хэш кластер: пример
Метод определения отсортированного хэт-кластера (sorted hash clustery очень похож на метод создания хэги~кластера (hash cluster).
Сначала создается отсортированный хэш-кластер. Основное отличие от традиционных хэш-кластеров состоит в том, что дополнительно к столбцам ключа кластера определяются столбцы ключа сортировки (sort key). В приведенном на слайде примере ORIGINJSTOMBER - ключ кластера, a CALL__TIMESTAMP и CALL_DURATION ключи сортировки. Другое отличие в том, что в отсортированном хэш-кластере параметр SIZE определяет, сколько записей с метаданными хранится для конкретного значения хэш-ключа. Размер записи с метаданными (metadata entry) зависит в основном от размера столбцов кластерного ключа.
На втором шаге создается сама таблица, связываемая с отсортированным хэш-кластером с помощью фразы CLUSTER. Столбцы ключа кластера должны быть указаны в правильном порядке, за которыми должны следовать столбцы ключа сортировки.
В примере на слайде отражается следующий сценарий. Телекоммуникационной компании необходимо хранить записи исходящих звонков, соответствующие фиксированному набору телефонных номеров, проходящих через определенный коммутатор. С каждого телефонного номера может быть произведено неограниченное количество исходящих телефонных звонков. Данные о звонках хранятся в том порядке, как они были сделаны. Позже они обрабатываются в порядке “первым зафиксирован, первым выбран’* для подготовки счета по каждому телефонному номеру. Каждый звонок определяется числовой временной меткой.
Примечание: в примере используется одна таблица, однако в кластере можно хранить и несколько таблиц.
Oracle Database 10g: Administration Workshop II 10-18
Отсортированный хэш кластер: общая
структура
Copyright © 2006, Oracle. All rights reserved.
10-19
с ге/мд
Отсортированный хэш кластер: общая структура
В примере на предыдущем слайде в отсортированном хэш-кластере хранится голько одна таблица. Хэш-функция очень простая и никаких противоречий не предвидится, так как сама функция определена на основе ключа кластеризации, а каждое значения кластерного ключа уникально. Параметр HASHKEYS фактически отражает количество различных исходящих телефонных номеров, а параметр SIZE - количество байтов, используемых для хранения метаданных каждого кластерного ключа.
Как вы можете видеть, первая часть сегмента отсортированного хэш-кластера зарезервирована для хранения точек входа с метаданными (metadata entry}. Каждая такая точка входа содержит только ссылку на список соответствующих строк. Каждый список строится из ряда связанных друг с другом блоков Oracle. Сортировка каждого списка выполняется в соответствие с столбцами ключа сортировки.
Всякий раз, когда вы хотите выбрать строки для соответствующего значения кластерного ключа, находится хэш-значение, указывающее на расположение точки входа в метаданные, которые предоставляют доступ к отсортированному списку выбираемых строк.
Oracle Database 10g: Administration Workshop II 10-19
Задачи сопровождения схем	Типы таблиц Секционирование ЮТ Кластер > Задачи АБД
В круг задач АБД входят:
*	Оценка размера новых таблиц
•	Анализ тенденций роста
•	Сопровождение статистик оптимизатора
•	Оперативная реорганизация объектов схем

10-20
Copyright © 2006, Oracle. АН rights reserved.
Oracle Database 10g: Administration Workshop II 10-20
Оценка ресурсов, необходимых сегменту
V f ! ’	z е 1 1 г иг '	' L ' - Create Table
Create Table
Logged In As SYS
General '	' ’ X ,
 Name pEST^E(^N~———^
Schema (HP
Tablespace [EXAMPLE	.^^EfflniZeJgfoteSize^
Organization Standard, Heap Organized <	___________
'dMx<hrrf c„<c?'C'/r .	Crrctejrr.-c ' Estimate Table Size logger in ад SvS
CoIooih Estimate fable Size
or}
To get an accurate estimate for the size cf the table, all table columns and storage parameters must be defined. The estimate of the table size is based on: column datatypes, column sizes, Free Space
•:	(PCTFREE). Extent information is used to calculate the space allocation impact cn the tablespace.
Projected Row Count [	44000 /Estimate Table Size}
$
Estimated Result of Creating the Tabfe io Tahte^pac® EXAMPLE
------------ Table Size (MB) 1.00
Allocation Required in this Tablespace (MB) LOO
STIF Does not include space for LO8.IOT Ovurfcw, Nested Table or
Partition segments.
ORACLE
10-21
Copyright © 2006. Oracle. All rights reserved.
Оценка ресурсов, необходимых сегменту
Возможность оценки позволяет приблизительно подсчитать объем ресурсов, требуемых при создании нового сегмента. Исходя из структуры таблицы или индекса и оценки количества строк в таблице, Oracle приблизительно подсчитывает размер дискового пространства, который вероятно потребуется объекту.
Например, оценка размера таблицы основывается на следующей информации: типы данных столбцов, размер столбцов и значение параметра PCTFREE. При подсчете требуемой памяти в выбранном табличном пространстве также учитывается информация об экстентах.
Чтобы воспользоваться этой возможностью, выберите на странице Administration ссылку Tables в секции Storage, а затем щелкните на кнопке Create для создания новой таблицы. Создать новую таблицу можно также, используя операцию “Create Like”. На странице Create Table в секции Columns задайте типы данных столбцов. Также укажите, в каком табличном пространстве создается новая таблица, а затем щелкните на кнопке Estimate Table Size. Откроется страница Estimate Table Size, на которой можно задать предполагаемое число строк (Projected Row Count). Затем щелкните на кнопке Estimate Table Size, чтобы получить оценку размера таблицы и соответствующего места, выделяемого в табличном пространстве.
Oracle Database 10g: Administration Workshop II 10-21
Анализ тенденций роста
* Используется сегментным консультантом
• Собираемые статистики использования пространства хранятся в AWR
Space Usage Trend For Table JFV.TEST
From |lZ26«4	“ gj To	ц ^ Refr~s^
January* 2 004	February
П KB Allocated Г1 KB Used
Анализ тенденций роста
Информация о росте сегментов содержит важные сведения для консультантов и инструментальных средств подготовки отчетов. Например, эти данные используются сегментным консультантом, а также при подготовке графика тенденций роста сегмента.
Некоторые характеристики возможности получения отчетов о тенденциях роста:
•	Анализ данных репозитария рабочей загрузки. Устойчивые статистики использования пространства собираются в репозитарии рабочей загрузки. Они сохраняются в определяемой системой схеме. Эти статистики получаются во время создания моментальных снимков, а также когда проверяется состояние сигналов.
•	Отражение тенденций роста в прошлом и моделирование их роста в будущем.
•	Поддерживаются только табличные пространства с локальным управлением.
Отчет о тенденциях роста отражает динамику изменения размера сегмента в прошлом и предсказание его роста в будущем. Графически показываются прошлые данные об использовании пространства и линейный прогноз их роста.
В Database Control для получения отчета о тенденциях роста щелкните на ссылке Tables в секции Schema, расположенной на странице Administration. Затем выберите таблицу и щелкните на кнопке Edit. На странице редактирования таблицы перейдите на закладку Segments. В результате будет выведен отчет о тенденциях роста, пример которого показан на слайде. Пользователь может задать анализируемый период и получить для него график.
В приводимом примере видна рассчитанная точка во времени, когда сегменту возможно потребуется больше пространства.
Oracle Database 10g: Administration Workshop II 10-22
Сопровождение статистик оптимизатора
Create Like
Create Index
Create Synonym
Create Trigger
Generate DDL
Object Privileges
M stAtka
10-23
Reorganize
Run Segment Advisor Shrink Segment Show Dependencies View Data
“"-Л,....4zr"T.............л .>. Flashback Table
1 abieHame	Tabfespace;Partition	Analyzed
	HR	COUNTRIES	EXAMPLE
r	HR	DEPARTMENTS	EXAMPLE
r	HR	EMPLOYEES	EXAMPLE
r	HR	JOES	EXAMPLE
r	HR	JOB HISTORY	EXAMPLE
r	HR	LOCATIONS	EXAMPLE
r	'HR	REGIONS	EXAMPLE
c	HR	TEST REGIONS	EXAMPLE
NO	25.Jul 7, £005 2:00:01 AM PDT
NO	27; ju| 7> 2005 2:00:03 AM PDT
NO	1 oTJul 7, 2005 2:00:04 AM PDT
NO	19iJul 7., 2005 2:00:03 AM PDT
NO	10 Jul 7, 2005 2:00:05 AM PDT
NO	23 Jul 7, 2005 2:00:02 AM PDT
NO	4 Jul 7, 2005 2:00:01 AM POT
NO		
He подсчитаньг^~~	
Copyright © 2006, Oracle. AH rights reserved.
Сопровождение статистик оптимизатора
Настоятельно рекомендуется собирать статистики после больших операций DML, например, после вставки 9000 строк.
Пример, приведенный на слайде, показывает (1), что для таблицы TESTJREGIONS еще не были проанализированы ее статистики.
В Enterprise Manager перейдите следующим образом: Administration > Tables. Выберите “Manage Optimizer Statistics” в выпадающем списке поля Actions (2), а затем с помощью мастера создайте задание сбора статистик оптимизатора.
Oracle Database 10g: Administration Workshop II 10-23
Оперативная реорганизация объектов схем
•	Модификация логической и физической структур объекта схемы, например, таблицы или индекса
•	Прозрачна для пользователей
•	Требуется пространство
•—-О——О——О—О
Ohims Options Impact Rspsn £et&dute -e-.tev
Reorganize Objects: Objects
Database orcl.orade.cam	Schema Objects 1	Cancel ) Back 1 Si-a ' ihextl
Logged In As SYS	~ ~
This table contains the schema objects io be reorganized. Click Add to add schema objects to the table
Add'} (Set Attributes By Type^
ASet Attributes J (Remove J
. isu	Sum ®Яи»'
I S НЯ.ТЕШ EMP iuX Index USERS	USERS 2848[
Оперативная реорганизация объектов схем
Иногда может возникнуть необходимость изменения логической или физической структуры таблицы, вызванная проблемами управления пространства, необходимостью повышения производительности или учета требований новых приложений. Для решения этой задачи при условии, что таблица остается доступной как для запросов, так и команд DML, используется мастер Reorganize Objects, предоставляемый Enterprise Manager, или пакет DBMS REDEFINITION.
Реорганизация таблиц обеспечивает существенное увеличение доступности по сравнению с традиционными методами переопределения таблиц. Таблица блокируется в монопольном режиме только в течение очень небольшого временного окна, независимого от размера таблицы и сложности процесса переопределения. Вся операция полностью прозрачна для пользователей.
Процессу реорганизации необходимо пространство, приблизительно равное размеру занимаемого пространства переопределяемой таблицы. Когда добавляются новые столбцы, может потребоваться дополнительное пространство.
Оперативная реорганизация может использоваться для:
•	перестроения фрагментированных индексов;
•	перестроения фрагментированных таблиц;
*	перемещения объектов в другое табличное пространство;
•	пересоздания объектов с лучшими атрибутами хранения.
Oracle Database 10g: Administration Workshop II 10-24
Оперативная реорганизация объектов схем (продолжение) Опции операции реорганизации:
impact непоп Schedule Mom

Reorganize Objects: Options
Database orcl.oracle.com
Logged In As SYS
Schema . Objects
Method
Some object types can be reorganized online With an online reorganization the objects have higher availability but the reorganization is slower Do you -want the reorganization to favor speed or availability?
(9 Speed (offline) - object availability is not a concern
О Availability (online) - object availability is important
О Use ROWID method - adds a hidden column to tables
Scratch Table space
Reorganizations are performed inside the database and require sufficient free space. The scratch tablespace is used for intermediate storage of objects during reorganization.
© Use current tablespace
О Use scratch tablespace
Tablespace \	.5^
VHide Advanced Options
Object Parameters
□ Use parallel execution when possible
Parallel Degree ©Default ©Valued	;
□ Rebuild indexes without logging for faster reorganization
В Update any existing cost-based optimizer statistics
©Compute statistics based on all the rows of the selected objects
©Estimate statistics based on some of the rows of the selected objects This method is faster but the statistic is less accurate.
Estimate Percentage 0 Default - Oracle determines the best sample size for good statistics О Percentage
□ Specify number of rows inserted between commits when reorganizing tables with LONG columns
Number of Rows WO \
Session Parameters
Sort Area Size (KB) ]64	\
4 size has «	impact or- the pe?1сг?гйпсе of inde rresttor-.)
Oracle Database 10g: Administration Workshop II 10-25
Реорганизация объектов: отчет о воздействии этой операции

Reorganize Objects: Impact Report
Database crcLofacle.cow	Schema Objects 1
Lagged tn As SYS
JLanceQ 4gackJ Step * at 51 Next)
Script Generation Summary
Mast Serinas Message Severity INFORMATION
Generation Started Aug 21,2005 5:48:58 PM
Generation Completed Aug 21,2005 5:49:01 PM
Script Generation information
The following table provides information about the objects and resources examined during script generation and lists details of any warnings or errors detected.
ifet.	4Ш>. .....................................
USERS TABLESPACE INFORMATION Plan Sufficient free space in Tablespace USERS Starting Freespace with automatic extension: 33544176KB. Ending Freespace 33546160KB Lowest Freespace: 33544112KB.
HR USER INFORMATION Plan Sufficient tablespace quota for User HR
Printable Page
Реорганизация объектов: отчет о воздействии этой операции
Перед выполнением каких-либо команд предоставляется отчет, содержащий ошибки и предупреждения, а также обзор запланированных действий, например, действия по перестройке индекса.
Oracle Database 10g: Administration Workshop II 10-26
Реорганизация объектов: обзор
Reorganize Objects: Review
Database orcl.erade.com Logged In As SYS
Schema Objects 1
4 Lance!J	& fAi:; =4submit jab J
Jab Name REORGANIZE 0RCL.0RACLE»C0M_21 Job Schedule Run Immediately	f
Script
The script summary is a list of the database commands that will be used to reorganize the selected objects The save Full Script} full script is a PL/SQL script that includes functions, procedures. and other commands needed during the reorganization. The full script will be created when you submit the job and 'will be executed by the job to perform the reorganization.
View Э Script Summary О Full Script
-	Target database: orci oracle com	;
-	Script generated at: 21-AUG-2005 17:48	I
ALTEP INDEX "HR* "TEST_EMPJDX:‘ REBUILD	=
BEGIN DBMSJSTATS.GATHERJNDEXJSTATSC’HR’", "‘TEST.EMPJDX*’, estimate„percent->NULLi: END:	\
10-27
Copyright © 2006, Oracle. All rights reserved.
Реорганизация объектов: обзор
Для получения полных сведений о командах, которые будут выполнены, выберите Full Script, а затем просмотрите команды запланированной операции. Чтобы получить только обзор операции, выберите Script Summary.
Oracle Database 10g: Administration Workshop II 10-27
Основные шаги оперативной реорганизации, выполняемой вручную
1.	Убедитесь в том, что таблица является подходящим кандидатом для оперативной реорганизации.
2.	Создайте промежуточную таблицу.
3.	Запустите процесс переопределения.
4.	Скопируйте зависимые объекты (в результате для промежуточной таблицы автоматически создаются триггеры, индексы, права доступа и ограничения).
5.	Выполните запрос к dba_redefinition_errors для проверки наличия ошибок.
6.	Дополнительно выполните синхронизацию для промежуточной таблицы.
7.	Завершите переопределение.
8.	Удалите промежуточную таблицу.
10-28
Copyright© 2006, Oracle. АН rights reserved.
Основные шаги оперативной реорганизации, выполняемой вручную
Используемые команды и процедуры:
I.	DBMSJREDEFINITION.CAN_REDEF_TABLE
2.	CREATE TABLE . . .
3.	DBMS_REDEFINITION.STAPTREDEF_TABLE
4.	DBMSJREDEFINITION.COPY__TABLEJDE PENDENTS и DBMSJREDEFINITION.CGNSORIGPARAMS
5.	SELECT objectname, base__table__name, ddl_txt FROM DBA_REDEFINITION_ERRORS;
6.	DBMS J3EDEFINITION. SYNC_JNTERIM_TABLE
7.	DBMS_REDEFINITION.FINISH_REDEF_TABLE
8.	DROP TABLE ... PURGE
Oracle Database 10g: Administration Workshop II 10-28
Итоги
•	Использование таблиц определенных типов в соответствие с вашими требованиями: обычных, секционированных, ЮТ и кластеризованных.
•	Выполнение задач АБД:,
-	Оценка размера новых таблиц
-	Анализ тенденций роста
-	Сопровождение статистик оптимизатора
-	Оперативная реорганизация объектов схем
I
ЛИИ
10-29
Copynght © 2006, Oracle. Ail rights reserved.
Oracle Database 10g: Administration Workshop II 10-29
Обзор практического занятия: управление объектами схем
•	Мониторинг использования пространства таблицами и индексами
•	Сопровождение статистик оптимизатора
•	Реорганизация таблицы и индекса
I
Oracle Database 10g: Administration Workshop II 10-30
Управление хранением
Copyright © 2006, Oracle, All rights reserved.
Рассматриваемые вопросы
•	Управление пространством
•	Профилактический мониторинг
в Сегм. консультант & сжатие сегмента
•	Возобновление после выделения пространства
-	Переносимые табл, простр. и БД
•	Описание автоматического управления пространством базой данных Oracle
•	Профилактический мониторинг и управление использованием памяти в табличных пространствах
•	Использование сегментного консультанта
•	Возврат неиспользуемого пространства таблиц и индексов путем сжатия сегментов
•	Управление выделением пространства для возобновления операции
*	Описание концепций переносимых табличных пространств и баз данных
Copyright © 2006, Oracle. All rights reserved.
Oracle Database 10g: Administration Workshop II 11-2
Обзор управления пространством
База данных Oracle автоматически управляет пространством. Она генерирует сигналы о потенциальных проблемах и рекомендует возможные решения. Функциональные возможности управления пространством включают:
•	Файлы, сопровождаемые Oracle (OMF)
•	Управление свободным пространством с помощью битовых карт (“локальное управление”) и автоматическое расширение файлов данных
•	Профилактическое управление пространством (пороговые значения по умолчанию и сигналы, генерируемые сервером)
*	Возврат пространства (сжатие сегментов, оперативное переопределение таблицы)
*	Планирование объемом (отчеты о тенденциях роста)
।11-3	 Copyright© 2006, Oracle. Ай rights reserved.

Обзор управления пространством
С помощью файлов, сопровождаемых Oracle (Oracle Managed Files, OMF) можно задавать операции в терминах объектов базы данных, а не с использованием имен файлов. Дополнительные сведения см. в уроке “Введение”.
База данных Oracle управляет свободным пространством внутри таблицы с помощью битовых карт. Такое управление реализуется в табличных пространствах, называемых “локально управляемыми” (табличные пространства, управляемые с помощью словаря данных, поддерживаются только для обратной совместимости). Использование битовых карт устраняет потребность в большом пространстве при настройке таблиц, обеспечивая повышение производительности во время пиковой нагрузки. Кроме того, БД Oracle предоставляет возможность автоматического расширения файлов данных. В результате файлы данных могут расти автоматически в соответствие с объемом данных. При создании базы данных по умолчанию включается профилактический мониторит пространства (это не оказывает влияния на производительность). База данных Oracle выполняет мониторинг использования пространства в ходе обычных операций выделения и освобождения пространства и выдает сигналы, если размер свободного пространства опускается ниже предопределенных пороговых значений (их можно переопределить). Освободить пространство помогают консультанты и мастера. Для осуществления планирования БД Oracle предоставляет возможность оценки пространства на основе структуры таблицы и количества строк, а также подготавливает отчет о тенденциях роста с использованием хронологических данных об использовании пространства, хранимых в автоматическом репозитории рабочей загрузки (AWR).
Курс Oracle Database 10g: Администрирование I знакомит с концепциями использования пространства и структурами хранения, соответствующими утилитами и задачами АБД. Этот курс или другие источники должные помочь вам познакомиться с базовыми концепциями и функциональными возможностями хранения.
Oracle Database 10g: Administration Workshop II 11-3
Управление свободным пространством
Сегмент
•	Автоматическое
•	Предоставляется при использовании локально управляемых табличных пространств
•	Отслеживание
использования
пространства в сегментах с помощью битовых карт
Преимущества:
•	Более гибкое использование пространства
•	Динамическая регулировка
•	Многие процессы могут производить поиск по битовым картам (ВМВ)
Copyright © 2006, Orade. АН rights reserved.
Управление свободным пространством
Свободным пространством внутри сегментов базы данных можно управлять автоматически. Наличие свободного и используемого пространства отслеживается с помощью битовых карт (bitmaps). Автоматическое управление пространством сегментов (Automatic Segment Space Management, ASSM) задается при создании локально управляемого табличного пространства. Такое управление применяется для всех сегментов, создаваемых впоследствии в этом табличном пространстве.
Множество битовых блоков (bitmap blocks, BMBs) механизма ASSM описывает использование пространства в блоках данных сегмента. Битовые блоки образуют иерархическую древовидную структуру. Корень иерархии, содержащий ссылки на все промежуточные ВМВ, находится в заголовке сегмента. Листовые блоки иерархии предоставляют информацию о пространстве для последовательных блоков данных, принадлежащих сегменту. Максимальное число уровней внутри иерархии - 3.
Для табличных пространств, управляемых с помощью словаря данных, возможен только один вид ручного управления, при котором используются списки свободных блоков. Преимущества автоматического управления пространством сегментов:
•	лучшее использование пространства, особенно для объектов, строки которых сильно отличаются по размеру;
*	лучшая динамическая регулировка в случае различных вариантов одновременного доступа;
♦	для нескольких экземпляров БД обеспечивается более высокая производительность и лучшее использование пространства.
В результате снижаются трудозатраты администратора базы данных.
Oracle Database 10g: Administration Workshop II 11-4
Типы сегментов
Сегмент - совокупность экстентов, выделенных определенной логической структуре.
Различные типы сегментов:
•	Сегмент данных	в
•	Индексный сегмент	,
•	Временный сегмент
База данных размещает сегменты динамически.

11-5 Copyright © 2006, Oracle. Atl rights reserved.
Типы сегментов
Сегменты данных; каждая таблица, отличная от кластеризованной и индекс-таблицы, имеет сегмент данных. Все табличные данные хранятся в экстентах своего сегмента данных. В секционированной таблице у каждой секции свой сегмент данных. У каждого кластера также имеется свой сегмент данных. Данные всех таблиц кластера располагаются в кластерном сегменте данных.
Индексные сегменты; у каждого индекса имеется индексный сегмент, в котором находятся все его данные. В секционированном индексе каждая секция имеет свой индексный сегмент.
Временные сегменты; создаются Oracle, когда командам SQL требуется рабочая область для завершения выполнения. После окончания выполнения экстенты временного сегмента возвращаются системе для последующего такого же использования.
База данных Oracle выделяет пространство динамически. Дополнительные экстенты выделяются, когда заполнены все экстенты сегмента. Так как выделение экстентов производится, когда это необходимо, на диске экстенты одного и того же сегмента могут быть смежными и несмежными.
Oracle Database 10g: Administration Workshop II 11-5
Размещение экстентов
•	Поиск в битовой карте файла данных требуемого количества смежных свободных блоков
•	Размер экстентов определяется
предложениями:
-	UNIFORM
-	AUTOALLOCATE
Просмотр карты экстентов
Получение совета по освобождению пространства
FExfent Мар
Clicking the Highlight Extents butt Map. Clicking on a used extent in
Header Used Free Selected Unmapped
11-6 Copyright © 2006, Oracle. Ail rights reserved.
Размещение экстентов
Чтобы выделить свободное пространство для нового экстента в локально управляемом табличном пространстве, база данных Oracle сначала определяет файл-кандидат табличного пространства, а затем производит поиск требуемого количества смежных свободных блоков по битовой карте файла данных. Если файл данных не имеет достаточного количества смежных свободных блоков, Oracle выбирает другой файл данных этого табличного пространства.
На размер экстентов влияют два предложения:
•	UNIFORM; все экстенты для всех объектов, создаваемых в табличном пространстве, имеют одинаковый размер (размер по умолчанию);
•	AUTO ALLOC АТЕ; политика установки размера экстентов в табличном пространстве определяется базой данных.
Для просмотра карты экстентов в Enterprise Manager выберите Administration > Tablespaces > View Tablespace > Show Tablespace Contents.
Сегментный консультант базы данных Oracle помогает' найти объект с высоким уровнем фрагментированного пространства, чтобы затем его освободить.
Oracle Database 10g: Administration Workshop II 11-6
Управление пространством блока
Полный блок	Полный блок
Copyright © 2006, Oracle. AH rights reserved.
Управление пространством блока
Управление свободным пространством производится на уровне блока. При использовании ASSM блоки разбиваются на четыре группы в зависимости от свободного пространства в блоке: FS1 (от 0 до 25%), FS2 (от 25% до 50%), FS3 (от 50% до 75%) и FS4 (от 75% до 100%).
В зависимости от уровня свободного пространства в блоке автоматически изменяется его статус. Это позволяет на основе длины вставляемой строки точно сказать, подходит ли конкретный блок для операции вставки. Обратите внимание на то, что статус “полный” (“full”) означает, что в блок нельзя вставлять строки.
В примере на слайде блок, расположенный слева попадает в диапазон FS3 (free space 3), поскольку имеет от 50% до 75% свободного пространства. После нескольких команд вставки и изменения было нарушено ограничение, задаваемое параметром PCTFREE (пунктирная линия) и дальнейшие вставки в этот блок стали невозможны. Теперь блок рассматривается как “полный” или блок со статусом FS1. Как только свободное пространство блока перейдет в следующий диапазон (FS2: > 25%), блок снова станет рассматриваться в качест ве кандидата для операций вставки.
Примечание. Большие объекты с типами данных BLOB, CLOB, NCLOB и BFILE не используют параметр хранения PCTFREE. Дополнительные сведения см. в документе Oracle Database Application Developer's Guide - Large Objects 10g Release 2 (10.2).
Oracle Database 10g: Administration Workshop II 11-7
Миграция и сцепление строк
Пример:
•	Операция update: длина строки увеличилась, и в результате не хватило свободного места в блоке.
•	Данные необходимо сохранить в новом блоке.
•	Первоначальный физический идентификатор (rowid) сохраняется.
•	БД Oracle потребуется прочитать два блока при выборке данных.
•	Сегментный консультант найдет
сегменты с мигрировавшими строками.
11-8 Copyright © 2006, Oracle. All rights reserved.
Миграция и сцепление строк
В двух случаях строка с данными может быть слишком длинной, чтобы поместиться в единственном блоке данных. В нервом случае строка имеет слишком большой размер в момент первой вставки в блок данных. В такой ситуации база данных Oracle сохраняет данные строки в цепочке блоков данных (одном или нескольких), выделенных сегменту. Наиболее часто сцепленные строки появляются, когда в них содержатся столбцы с типом данных LONG или LONG RAW. Избежать сцепления слишком больших строк невозможно.
Во втором случае изменяется строка, которая первоначально помещалась в блоке данных. Однако в результате изменения общая длина строки возрастает так, что свободного места в блоке недостаточно для размещения этой строки. Поэтому база данных Oracle переносит данные всей строки в новый блок данных. При этом подразумевается, что вся строка может быть размешена в новом блоке. База данных сохраняет первоначальный участок строки в старом блоке для указателя на новый блок, содержащий мигрировавшую строку. В результате для мигрировавшей строки не изменяется ее ROWID.
Производительность ввода-вывода после сцепления или миграции строк снижается, так как база данных Oracle должна просмотреть более одного блока для выбора информации строки.
Сегментный консультант находит сегменты, содержащие строки, мигрировавшие в результате операции UPDATE.
Oracle Database 10g: Administration Workshop II 11-8
Профилактический мониторинг табличных пространств
Edit Tablespace. EXAMPLE
Acl:3r?s : Add Daiafite
G«»s«rat Stetas-
Warr® ЁЙМР1Е
Brcfiie -able space 8t>
• eueta Storage Th?
Extent Allocation
Управление пространством Профилактический мониторинг
Сегм. консультант & сжатие сегмента Возобновление после выделения пространства Переносимые табл, простр. и БД
Allocation Type Automatic
Extent	Type
Management
О Set as default permanent tafciespaxe
Status
® Read write G Read Or<h О СЯЬпе
OSiine Mode
Segment Space Management
Type Automatic
Enable logging
Datofifes
Space Uses! (%)
A warning or critical alert will be generated if the percentage of space used exceeds the corresponding threshold.
C?MJse Database Default Thresholds 4 fffffljy)
Warning (%) 85
Critical (%) 97
О Specify Thresholds
Warning (%) =
Critical (%)
О Disable Thresholds
SNo
s»e
v-ot svfe
Bieck information
Block Size (B) 8192
97=
JPewrtJ „XpprQ



11-9 Copyright© 2006, Oracle. All rights reserved.
Профилактический мониторинг табличных пространств
База данных управляет использованием дисковой памяти табличных пространств следующим образом:
•	Когда табличному пространству мало доступной дисковой памяти, а также, когда сегменту не хватает места, об этом сообщается с помощью сигналов БД. После получения такого сигнала табличному пространству можно предоставить дополнительное место на диске, чтобы устранить ситуации, в которых возникает нехватка пространства.
•	Собираемая информация сохраняется в автоматическом репозитории рабочей загрузки (AWR). Она используется для анализа тенденций роста и планирования объема базы данных.
Чтобы просмотреть и изменить информацию о табличном пространстве в Enterprise Manager перейдите следующим образом: Administration > Tablespaces. Выберите необходимое табличное пространство и щелкните на кнопке Edit.
Oracle Database 10g: Administration Workshop II 11-9
Пороговые значения и разрешение
проблем, связанных с пространством
97% заполнено или
1____► осталось 5 Мб
критический сигнал —* 85% заполнено ““ или осталось 100 Мб предупреждение
4 АБД
Локально управляемое табличное пространство
Разрешает проблему пространства
Для разрешения проблемы:
*	Добавьте файл или измените размер файла данных
•	Задайте опцию autoextend on
•	Сожмите объекты
•	Уменьшите значение параметра undo_retention
•	Исправьте длительно выполняемые запросы, занимающие место во временных табличных пространствах
11-10
Copyright © 2006, Oracle. All rights reserved.
Пороговые значения и разрешение проблем, связанных с пространством
Пороговые значения отражают, насколько заполнено табличное пространство либо сколько в нем осталось доступного места. К табличным пространствам применяются два вида пороговых значений: для критических сигналов и предупреждений. Пакет DBMS__SERVER__ALERT содержит процедуры для задания и получения пороговых значений. При достижении ограничений для табличных пространств вырабатывается соответствующий сигнал. Пороговое значение задается как процент от размера табличного пространства или как количество оставшихся свободных байтов. Оно подсчитывается в памяти. Можно определить пороговое значение одновременно и в процентах и, указав количество свободных байтов. Нарушение одного или обоих видов пороговых значений вызывает генерацию сигнала.
Идеальная установка предупреждающего порогового значения должна гарантировать, что для разрешения проблемы останется достаточно времени и она не перейдет в критическое состояние. При этом предупреждение должно появиться достаточно поздно, чтобы не вызывать беспокойства до реального возникновения проблемы свободного пространства. Сигнал отображает проблему, которая может быть разрешена путем выполнения одного или нескольких следующих действий:
•	Увеличение размера табличного пространства либо за счет добавления файла, либо изменения размера существующих файлов, либо включения опции авторасширения для существующих файлов:
*	Освобождение пространства на дисках, содержащих авторасширяемые файлы:
•	Сжатие (s h г i п к) фрагментированных объектов в табличном пространстве.
Oracle Database 10g: Administration Workshop II 11-10
Мониторинг использования табличных пространств
Проверка каждые 10 мин»
Сигнал
97% критическое сообщение
85% предупреждение
Сброшен
Сброшен
MMONJ
*	Табличные пространства, доступные только для чтения или в автономном состоянии, не вызывают сигналов.
•	Временное табличное пространство; пороговые значения учитывают пространство, используемое сеансами в текущий момент времени.
•	Табличное пространство отмены; пороговые значения учитывают пространство, занятое экстентами с активными и неустаревшими данными.
•	Табличные пространства, которые могут автоматически расширяться; пороговые значения основываются на максимальном размере файла.
I 11-11
Copyright © 2006, Oracle. All rights reserved.
Мониторинг использования табличных пространств
База данных отслеживает использование пространства при выполнении регулярных операции по сопровождению пространства. Сведения собираются каждые 10 минут. Сигналы возбуждаются, когда достигается пороговое значение для табличного пространства, а также когда ситуация устраняется (сбрасывается).
•	Сигналы не генерируются для табличных пространств в режиме ‘только чтение’ и в автономном режиме, так как с ними ничего не происходит.
•	Для временных табличных пространств пороговое значение должно задаваться как ограничение на используемое пространство в этом табличном пространстве.
•	В табличных пространствах типа undo экстент может быть повторно использован, когда в нем не содержатся активные или неустаревшие данные отмены. При подсчете порогового значения учитывается пространство, занятое экстентами с активными и неустаревшими данными отмены.
•	Для табличных пространств с авторасширяемыми файлами пороговые значения подсчитываются с учетом установленного максимального размера или же максимально возможного размера файла в ОС, когда ограничение на размер файла не установлено.
Oracle Database 10g: Administration Workshop I! 11-11
Сжатие объектов
HWM
Управление пространством Профилактический мониторинг
> Сегм> консультант & сжатие сегмента Возобновление после выделения пространства Переносимые табл, простр. и БД
ALTER TABLE ei^loyees SHRINK SMCE ССЖРАСТ;
HWM
Операции DML и запросы могут выполняться на стадии уплотнения,
HWM	I
Операции DML блокируются, когда переносится HWM.
	
11-12
Copyright © 2006, Oracle. All rights reserved.
Сжатие объектов
Диаграмма на слайде описывает две фазы операции сжатия таблицы. На первой фазе производится уплотнение. В ходе этой фазы строки перемещаются как можно дальше в левую часть сегмента. Внутренне строки перемещаются группами, чтобы избежать проблем блокирования. После переноса строк начинается вторая фаза. В течение этой фазы уточняется положение отметки максимального заполнения (high-water mark, HWM) и освобождается неиспользуемое пространство.
Фраза COMPACT полезна, когда необходимо выполнять длительные запросы, которые могут пересекаться по времени с операцией сжатия и пытаются читать данные из блоков, возвращенных табличному пространству. Если задастся фраза SHRINK SPACE COMPACT, ход выполнения операции сжатия отслеживается в битовых блоках соответствующего сегмента. Это означает, что, когда в следующий раз выполняется операция сжатия того же сегмента, Oracle помнит, что было уже сделано. Пользователь может повторно задать фразу SHRINK SPACE без параметра COMPACT, чтобы завершить вторую фазу в часы минимальной загрузки.
Oracle Database 10g: Administration Workshop I! 11-12
Результаты операции сжатия
•	Улучшение производительности и использования пространства
•	Индексы сопровождаются
•	Триггеры не выполняются
•	Может быть уменьшено количество мигрировавших строк ?
•	Рекомендуется перестроить вторичные
11-13	Copyright © 2006, Oracle. All rights reserved.
Результаты операции сжатия
Сжатие фрагментарно заполненного сегмента повышает производительность при выполнении полного просмотра и операций DML над этим сегментом. Причина в том, что после сжатия сегмента обрабатывается меньше блоков. Это особенно справедливо для:
•	полных просмотров таблицы (меньшее количество более плотно заполненных блоков):
•	доступа с использованием индекса (меньше операций ввода-вывода при просмотре по диапазону ROWID, так как дерево более компактное).
Кроме того, сжатие фрагментарно заполненных сегментов, улучшает эффективность использования пространства внутри базы данных, так как становится доступно больше места для объектов, когда это необходимо.
В процессе операции сжатия учитываются зависимые индексы. Они остаются в пригодном состоянии после сжатия соответствующей таблицы. Поэтому дальнейшее сопровождение не требуется.
Фактически операция сжатия внутренне выполняется с помощью операций INSERT и DELETE. Однако триггеры DML не срабатывают, так как данные не изменяются.
В результате операции сжатия может быть уменьшено количество мигрировавших строк. Однако не следует всегда полагаться на то, что это обязательно произойдет, так как операция сжатия может не затронуть все блоки сегмента. Поэтому не гарантируется обработка всех мигрировавших строк.
Примечание: для иидекс-таблиц (ЮТ) после операции сжатия рекомендуется перестроить вторич ные индексы.
Oracle Database 10g: Administration Workshop II 11-13
Возврат пространства при использовании ASSM
•	Оперативная операция, использующая старое место расположения сегмента.
*	Применяется только для сегментов, размещенных в табличных пространствах, для которых установлен механизм ASSM.
*	Типы сегментов-кандидатов:
-	Таблицы, организованные в виде “кучи” и индексно-организованные таблицы
-	Индексы
-	Секции и подсекции
-	Материализованные представления и журналы материализованных представлений
		
11-14			Copyright © 2006, Oracle. AH rights reserved.		।
Возврат пространства при использовании ASSM
Сжатие - оперативно выполняемая операция, использующая существующее место, в котором расположен объект. Для его выполнения не требуется дополнительного пространства в базе данных
• Операция не выполняется для сегментов, использующих списки свободных блоков. Только сегменты табличных пространств с автоматическим управлением пространством {Automatic Segment Space Management - ASSM) могут быть сжаты. Но следующие объекты. хранимые в таких табличных пространствах, не сжимаются: таблицы в кластерах;
-	таблицы, имеющие столбцы с типом данных LONG;
-	таблицы, над которыми созданы материализованные представления, обновляемые при фиксации (on-commit materialized views);
таблицы, над которыми созданы материализованные представления, основанные на ROW ID;
-	таблицы отображения ЮТ (индекс-таблиц);
т	аблицы, над которыми созданы индексы, основанные на функциях;
•	Для сегментов, организованных в виде “кучи”, должен, быть включен атрибут ROW MOVEMENT.
Примечание: ASSM - устанавливаемый по умолчанию тип управления пространством сегментов для всех, постоянных, локально управляемых табличных пространств в базе данных Oracle 10g версии 2.
Oracle Database 10g: Administration Workshop II 11-14
Обзор сегментного консультанта
ЗСеде ’JbiC'CK	Р.е-.т?’;
'В AWOfflaticSr-y. X Advisor h form; tic n
i r,I^^«йНо Adv^nrjob '.№&* епг^'чкгз./ ^ajrht ssuesth^Ww®	'►^tseted ran й
£ ^ment AtMw Rfec^mendati^:-
Segment Advisor: Scope
Database orcl.oracle.corn	Logged In As SYS	(Cancel) >tep 1 of 4 . Next)
(Xrw;
The segment adviser determines whether objects have unused space that can be released, taking estimated future space requirements into consideration. The estimated future space calculation is based on historical trends
You can get advice on shrinking segments for individual schema objects or entire tablespaces
Tablespaces
C Schema Objects
Обзор сегментного консультанта
Сегментный консультант выявляет; является ли объект хорошим кандидатом для операции сжатия. Консультант также находит сегменты, содержащие мигрированные строки, появляющиеся в результате операций UPDATE. (Начиная с Oracle Database 10.2, автоматически выполняется задание сегментного консультанта.) Консультант вырабатывает рекомендации на основе размера неиспользуемого пространства, которое можно освободить. При этом принимается во внимание оценка будущей потребности в пространстве, делаемая на основе собранной информации о тенденциях роста сегмента.
После получения рекомендаций их можно применить. Консультант, помогающий найти объект-кандидат для сжатия, может быть вызван на уровне сегмента или табличного пространства.
ЕМ Database Control Console предоставляет интерфейс к сегментному консультанту. Вызвать сегментный консультант в ЕМ можно со следующих страниц:
•	Advisor Central;
*	Tablespaces;
*	страница объектов схемы.
Database Control Console предоставляет возможность выбора различных входных объектов. Кроме того, можно запланировать задание, вызывающее сегментный консультант для получения рекомендаций. Мастер Segment Advisor может быть вызван без контекста, в контексте табличного пространства или контексте объекта схемы.
Сегментный консультант вырабатывает рекомендации на основе выборочного анализа, хронологической информации, а также тенденций будущего роста.
Oracle Database 10g: Administration Workshop II 11-15
Сегментный консультант

Segment Advisor: Review
Database ord.orade.com Logged In As SYS
LCwei) (Show SQL J LSacK I Step 4 of 4 ^Submit)
Task Name Task Description Time Limit for Analysis (mins) Advisory Results Retention (days)
SEG&1ENTADV 3712320
Get shrink advice based on object growth trend Unlimited
30
Selected Objects
EXAMPLE
Tyne
PERMANENT
Copyright © 2006, Oracle. All rights reserved.
Сегментный консультант
Находясь на странице Administration щелкните на ссылке Tablespaces в секции Storage. На странице Tablespaces выберите табличное пространство, для которого будет производиться анализ необходимости операции сжатия, а затем выберите Run Segment Adviser в выпадающем списке поля Actions. Щелкните на кнопке Go, чтобы открыть начальную страницу сегментного консультанта. На ней необходимо выбрать режим анализа: полный (Comprehensive) или ограниченный (Limited). Полный режим отрабатывает дольше, так как консультант производит выборку данных из сегментов, чтобы найти объекты, для которых необходимо выполнить операцию сжатия.
Пройдите по оставшимся страницам мастера и задайте необходимые значения параметров. На странице Segment Advisor: Review просмотрите детальные сведения о предстоящем анализе. Сегментный консультант выполняется как запланированное задание и за ходом его выполнения можно следить на странице Advisor Central. После завершения задания просмотрите рекомендации консультанта.
Примечание. В секции Options сегментного консультанта можно задать продолжительность анализа и ограничить время, которое может потратить консультант для выработки рекомендаций. В общем случае более длительный период анализа позволяет получить более полные результаты. Они хранятся в AWR и могут быть позднее просмотрены. Используйте поле Advisory Results Retention (days) для задания длительности хранения результатов до их удаления из AWR.
Oracle Database 10g: Administration Workshop II 11-16
Сегментный консультант (продолжение)
h ор?/ С-¥ - te	Review
у Execute task script
Review: Show SQL
ч EeturnJ
Create task and objects script
DECLARE
$
taskname ¥ardiar2 (100) ;
taskdesc varoh«r2(128);
t a sk__id гйжЬег ;
ohj ect_id mirter;
himк L irni t тагchar2(25);
numDaysToRetain varchax2 (25) ;
ohj ectNaae v»x'cha:c2 (1П0) ;
ohj ectType varchar2(100);
BEG I. К
ta skname : - ’ SEGMEMTADV 3 712 320* ;
taskdesc :=’Get shrink advice based on object growth trend”;
nurnD a у sT oRe t a in :" ’ 3 0 ’ ;
dbmsjadviscr«create^task (* Segment Advisor * , ?, taskname, taskdesc, WIX);
dbms_advisor.create_object(taskname, ’TABLESPACE’, ’EXAMPLE’, ’ *f ’ IWIX, obj ectjLd) ;
dhras__advisor. set^ta sk__pa rameter (tasknarne, * RECOMMEKD_ALL ’ , 4 TRUE ’ ) ;
dhms^advisor. set._task_jparameter (taskname, ’DAYS^TO EXPIRE’ , numDaysToRetain) ;
EKD;
Execute task script	Return to Top
DECLARE
taskname varchar2(100);
ВЕС IM
ta skname := ’SEGMENTADV_3 712320’;
dbms__advisоr. reseti._task (taskname) ;
dbms__advisor. execute_task (taskname) ;
ESD;
Oracle Database 10g: Administration Workshop II 11-17
Реализация рекомендаций
[•¥^SS'	- ---"его-:; - dv-so- Се-к л. > Segment Advisor Task' SEGMENTADV2730O8
Segment Advisor task: SE”gMENTADV._2730408
The following table contains the minimum reclaimable space summary for the evaluated segments in that tablespace. Based an growth trends, the advisor takes into consideration estimated future space requirements. Oracle recommends shrinking or reorganizing these segments to release wasted space. Select the Recommendation Details button to view and implement the recommendations.
Task Name SEGMENTADV 2730408	Started Aug 25,2005 10:04:55 AM
Status COMPLETED	Ended Aug 25,2005 10:05:08 AM
Running Time (seconds) 14	Time Limit (mins) UNLIMITED
Pecommendafom Details
Recommendation Details for Tablespace: TBSALERT
The following table contains the reclaimable space Information for the evaluated segments in the selected tablespace. Eased on growth trends., the advisor rales into ccnsideration estimated future space requirements. Oracle recommends shrinking or reorganizing these segments to release wasted space. Select the segment to implement the recommendation.
Task Name SEGMENTADV2730408	Started Aug 25,2005 10:04:55 AM
Status COMPLETED	Ended Aug 25.2005 10:05:09 AM
RunningTimetsecc-ndsi 14	Lime Limit (mins) UNLIMITED
Schema __________ Segment________________ Partition _________ Minimum Recl^mable Space (MB) .
I	|	Г	 SearthJ
P	SYS	EMPLOYEES!	.^Shrink;
P	SYS	EMPLOYEES?.	Jhnr.k;
F	SYS	EMPLOYEES^	Jiimk)
alter table "SYS”."EMPLOYEESI" shrink space alt-ex? table "SYS"<"EMPL0YEES2" shrink space alter table "SYS“. "EMPLOYEES3B shrink space
Copyright © 2006, Oracle. Alt rights reserved.
Реализация рекомендаций
После того, как сегментный консультант завершит свою работу, можно просмотреть подробно рекомендации и сразу же из выполнить.
Примечание
Перед сжатием обычной таблицы (таблицы, организованной в виде “кучи ", heap-organized table} необходимо включить возможность перемещения строк (enable row movement) для этой таблицы. Это можно сделать, перейдя по закладке Options, находящейся на странице Edit Table.
Oracle Database 10g: Administration Workshop II 11-18
Database Control и сжатие сегмента
coyNirags

EXAMPLE
C HR DEPARTMENTS.EXAMPLE
I HR	EXAMF bE I
D	0	NO
0	0	NG
XSHnrhVX^^
Shdw^bj \CSftteiJ
8е?2те HRfWPL0YEES
Object Type Table
The shrink operation compacts fragmented space and. optionally, frees the space. The shrink operation will rake some time and will be scheduled as a job	|
Shrink Options
<* Compact Segments and Heiesse Space
’hl-'  >:.£ }.{ --< f S •:-'	«Г1Й Px-r- iC-a?2>'<h 1: -5	i $r<4f t-S ?hs-: <Ь»К p X ?-. IX.KiAt -П?	<?'X- 1 «;<•«:?? p-: :<?	-'«>!>
:::.a: :з: fs-fe: m; г--;. Cjs c-s<msffi n-sy и ihv.5fe-.<!ea яи s ? en -ne r ccsxs-;, cfejfei fee уя :-^зй
r Compact Segments
.'tsf::	X;fs • wt ;' ASW-i4 -hit < 'W’IMjt SSsi'h 55VS S	SIS-.':?-. AfiS-S < <£$}% S- й J :?-f : Й?:. -X-i : X'. ’i X: •’ XV. !ХЙ(. X. -.&!! fe«-
’S-s-Ss-i-G S' -ijTsS^ < ??^Ж  > S «fi-:{ <;.-=«
Segment Selection
Shrink HR. EMPLOYEES Only
P Shrink HR. EMPLOYEES and Ail Dependent Segments
Dependent Segments
HR	EMPLOYEES	UUll L'AMhF
Copyright © 2006, Oracle. All rights reserved.
Database Control и сжатие сегмента
Отдельные сегменты можно непосредственно сжать, даже не получая для этого рекомендации сегментного консультанта. Например, в Database Control произведите приведенную ниже последовательность действий.
Щелкните на домашней странице БД на ссылке Tables, расположенной в секции Storage. На странице Tables выберите таблицу, а затем Shrink Segment в выпадающем списке ноля Actions. После этого по кнопке Go перейдите на страницу Shrink Segment, на которой предоставляется возможность выбрать зависимые сегменты для их сжатия.
Можно задать только уплотнение (compact) или уплотнение и освобождение пространства. Кроме того, можно выбрать оппию CASCADE.
После задания опций сжатия щелкните на кнопке Continue, а затем по кнопке Submit передайте работу на выполнение в запланированное время.
Oracle Database 10g: Administration Workshop II 11-19
Сжатие сегментов с использованием SQL

ALTER w SHRINK SPACE [CASCADE]
TABLE [OVERFLOW] INDEX
| MODIFY ЯиВ^Ш^ХТХШ | MODIFY LOB |
<Qi^ACLe
Copyright © 2006; Oracle. Alt rights reserved.
|	11-20
Сжатие сегментов с использованием SQL
Поскольку операция сжатия может вызвать изменение ROW ID строк неупорядоченно хранимых сегментов (heap-organized segments), необходимо включить возможность перемещения строк перед операцией shrink. По умолчанию возможность перемещения строк отключена. Чтобы ее включить, необходимо воспользоваться фразой ENABLE ROW MOVEMENT в команде CREATE TABLE или ALTER TABLE. Первый пример на слайде показывает применение этой фразы.
Команда ALTER используется для выполнения сжатия сегмента. Сжимаемый сегмент может быть одним из следующих объектов: таблица (обычная или индексноорганизованная), секция, подсекция, LOB (сегмент с данными и индексом), индекс, материализованное представление или журнал материализованного представления. Фраза SHRINK SPACE используется для сжатия пространства сегмента. Когда задана опция CASCADE, выполняется каскадное сжатие всех зависимых объектов, для которых поддерживается операция shrink, за исключением материализованных представлений, LOB-индексов и таблиц отображения ЮТ. Фраза SHRINK SPACE с опцией CASCADE приведена во втором примере.
Для индексного сегмента операция shrink выполняет объединение свободного пространства (coalesce) перед уплотнением данных.
Пример 3 демонстрирует команду, сжимающую LOB-сегмент (столбец RESUME с типом данных CLOB).
Пример 4 показывает команду, сжимающую область переполнения индекс-таблицы EMPLOYEES.
Примечание: дополнительные сведения см. в документе Oracle Database SQL Reference.
Oracle Database 10g: Administration Workshop II 11-20
Управление выделением пространства для возобновления операции
Возобновляемая команда:
Управление пространством Профилактический мониторинг
Сегм. консультант & сжатие сегмента > Возобновление
после выделения пространства Переносимые табл.
простр. и БД
•	Позволяет приостановить большие операции, а не получить сообщение рб ошибке
•	Предоставляет возможность устранить проблему во время приостановки операции, а не перезапускать ее еще раз
•	Приостанавливается в следующих ситуациях:
-	нехватка пространства
-	достигнуто максимальное количество экстентов
-	превышена квота на пространство
11-21 Copyright © 2006, Oracle. All rights reserved.
Управление выделением пространства для возобновления операции
Oracle предоставляет средство для приостановки и последующего возобновления большой операции в БД в случае возникновения ошибок выделения пространства. В результате можно выполнить корректирующие действия и избежать выдачи сообщения об ошибке пользователю. После устранения причин ошибки операция автоматически возобновляется. Такая возможность называется возобновлением операции после выделения пространства {resumable space allocation) и команды, затрагиваемые такими операциями, называются возобновляемыми командами (resumable statements).
Команда выполняется в возобновляемом режиме только, когда возможность возобновления команд была установлена для системе в целом или в сеансе.
Приостановка команды автоматически приводит к приостановке транзакции. Поэтому все ресурсы, используемые транзакцией, удерживаются в течение периода времени приостановки и возобновления команды SQL. При исчезновении причин ошибки (например, после вмешательства пользователя или возможного освобождения памяти, занятого другими запросами под операции сортировки), автоматически возобновляется выполнение приостановленной команды.
С возобновляемыми командами связывается максимальное время приостановки выполнения. Возобновляемая команда, находящаяся в приостановленном состоянии такое максимальное время (по умолчанию 7200 секунд или 2 часа), просыпается и возвращает исключение пользователю. Возобновляемая команда может приостанавливаться и продолжать выполнение несколько раз в ходе своей работы.
Oracle Database 10g: Administration Workshop II 11 *21
Использование возможности выделения пространства для возобновления приостановленной команды
•	Запросы, операции DML и определенные операции DDL могут быть возобновлены при обнаружении ошибки нехватки пространства.
•	Для ввода возобновляемой команды можно использовать SQL, PL/SQL, SQL* *Loader или Oracle Call Interface (OCI).
•	Чтобы выполнить возобновляемую команду, необходимо сначала включить в сеансе возможность возобновления команд.
ALTER SESSION ENABLE RESUMABLE;
INSERT INTO sales_new SELECT * FROM ф,.sales;
ALTER SESSION DISABLE RESUMABLE;
11-22 Copyright © 2006, Oracle. Al! rights reserved.
Использование возможности выделения пространства для возобновления приостановленной команды
Выделить пространство, чтобы продолжить выполнение команды, можно только, когда в сеансе был включен режим возобновления операций. Существует два способа включения/отключения возможности выделения пространства для продолжения приостановленной команды:
• Команда ALTER SESSION ENABLE RESUMABLE.
• Задание отличного от нуля значения для параметра инициализации
RESUMABLE__TIMEOUT С ПОМОЩЬЮ команды ALTER SESSION или ALTER SYSTEM. При включении режима возобновления в сеансе БД можно указать максимальный период времени для приостановки команды, по истечении которого приостановленная команда завершается с ошибкой, если не было вмешательства, устранившего нехватку пространства. В параметре RESUMABLE__TIMEOUT устанавливается время тайм-аута в секундах. Время тайм-аута можно также задать с помощью команды:
ALTER SESSION ENABLE RESUMABLE TIMEOUT 3600;
Значение параметра TIMEOUT действует до следующего его изменения в другой команде alter session enable resumable, следующего изменения с помощью иного средства и до конца сеанса. При использовании фразы enable RESUMABLE timeout для включения возобновляемого режима значение тайм-аута по умолчанию -7200 секунд (2 часа).
Oracle Database 10g: Administration Workshop II 11-22
Использование возможности выделения пространства для возобновления приостановленной команды (продолжение)
Дополнительно можно задать имя для возобновляемых команд. Например: ALTER SESSION ENABLE RESUMABLE TIMEOUT 3600 NAME 'multitab insert';
Имя команды используется для идентификации возобновляемой команды в представлении DBAJRESUMABLE или USER__RE SUM ABLE.
Пример:
SELECT name, sql_text FROM user_resumable;
NAME	SQLJTEXT
-------------.--------_----------------------------------------- multitab insert INSERT INTO olds^les SELECT * FROM sh.sales;
Чтобы автоматически сконфигурировать установки для возобновляемых команд, необходимо создать на уровне базы данных триггер типа LOGON, изменяющий параметры пользовательского сеанса. В триггере выполняются команды включения возможности возобновления операции, задается период тайм-аута и соответствующее имя для возобновляемых команд, которые будут использоваться в сеансе.
Так как возобновляемые команды удерживают некоторые системные ресурсы, пользователям должна быть предоставлена системная привилегия RESUMABLE перед тем, как они смогут включить возможность выделения пространства для продолжения операции и начнут выполнять возобновляемые команды.
Oracle Database 10g: Administration Workshop II 11 «23
Возобновление приостановленных команд
Пример:
1.	Команда INSERT наталкивается на ошибку, связанную с тем, что таблица полностью заполнена.
2.	Команда INSERT приостанавливается, и никакая ошибка не передается клиенту.
3.	Дополнительно может сработать триггер AFTER SUS PEND.
4.	Дополнительно с помощью процедуры DBMS__RESUMABLE . ABORT может быть возбуждено исключение SERVERERROR для аварийного завершения команды.
5.	Если команда не завершилась аварийно и успешно добавлено свободное пространство таблице, команда INSERT возобновляет выполнение.
Обнаружение приостановленной команды
Когда включена возможность возобновления и команда приостанавливается, ошибка (возникающее исключение) не передается клиенту. Для корректирующих действий база данных Oracle предоставляет альтернативные методы уведомления пользователей об ошибке и предоставления легальной информации о произошедшем.
Oracle Database 10g: Administration Workshop II 11-24
Возобновление приостановленных команд (продолжение)
Возможные действия в приостановленном состоянии
Когда команда попадает в ошибочную ситуацию, которую необходимо исправить, система внутренне возбуждает системное событие AFTER SUSPEND. Пользователи могут зарегистрировать триггеры для обработки этого события как на уровне базы данных, так и на уровне схемы. Если пользователь зарегистрировал такой триггер, он отрабатывает после приостановки команды SQL. Все команды, выполняемые внутри триггера с типом AFTER SUSPEND, всегда невозобновляемые и автономные. Транзакции, начинающиеся внутри триггера, используют сегмент отката SYSTEM. Режим выполнения обуславливается необходимостью устранения возможности взаимоблокировок и снижения вероятности попадания триггера в такую же ошибочную ситуацию, в которой находится команда.
Внутри кода триггера можно использовать представление USER_ RESUMABLE или DBAJRESUMABLE, а также функцию DBMS __RE STABLE . SPACE__ERROR_INFO для получения информации о возобновляемых командах.
Когда приостанавливается возобновляемая команда,
•	сеанс, в котором была введена команда переходит в состояние ожидания; в представление V$SESSION__WAIT вставляется строка, содержащая в столбце EVENT следующее: “statement suspended, wait error to be cleared”;
•	появляется сигнальное сообщение о необходимости дополнительных ресурсов для завершения приостановленной операции над объектом.
Завершение приостановленной команды
После разрешения ошибочной ситуации (например, в результате вмешательства администратора или освобождения пространства сортировки другими запросами) приостановленная команда автоматически возобновляет выполнение и сигнал “resumable session suspended” удаляется.
Для приостановленной команды можно принудительно возбудить исключение SERVERERROR с помощью процедуры DBMS JRESUMABLE . ABORT (). Эта процедура может быть выполнена пользователем с ролью DBA или же тем. кто производит приостановлен ную операцию.
Когда заканчивается временной интервал приостановки, команда автоматически аварийно завершается и пользователю возвращается сообщение об ошибке.
Oracle Database 10g: Administration Workshop II 11-25
Переносимые табличные пространства
Возобновление после выделения пространства
> Переносимые табл» простр» и БД
Концепция межплатформенных табличных пространств:
•	Упрощение передачи данных между хранилищем и витринами данных
•	Возможность миграции с одной платформы на другую
•	Поддерживаемые платформы:
Solaris[tm] OE (32-bit)	HP-UX (64-bit)	Microsoft Windows IA (64-bit)
Solarisftm] OE (64-bit)	HP Tru64 UNIX	IBM zSeries Based Linux
Microsoft Windows IA (32-bit)	HP-UX IA (64-bit)	Linux 64-bit for AMD
Linux IA (32-bit)	Linux IA (64-bit)	Apple Mac OS
AIX-Based Systems (64-bit)	HP Open VMS	Microsoft Windows 64-bit for AMD
		Solaris Operating System (x86)
11-26
Copyright © 2006, Oracle. АН rights reserved.
Переносимые табличные пространства
Данная функциональная возможность может использоваться для переноса данных табличных пространств без учета границ платформ. Это упрощает передачу (distribution) данных из хранилища в витрины данных, часто располагаемые на менее мощных платформах . Данная функциональная возможность также позволяет мигрировать базу данных с одной платформы на другую. Для этого перестраивается словарь и переносятся пользовательские табличные пространства.
Перед переносом файлов данных с одной платформы на другую необходимо убедиться в том, что исходная и целевая системы функционируют на поддерживаемых платформах (см. слайд).
Примечание: функциональная возможность межплатформенных табличных пространств {cross-platform transportable tablespace feature) требует, чтобы обе плаз формы использовали одну и ту же кодировку символов.
Oracle Database 10g: Administration Workshop II 11-26
Концепция минимального уровня совместимости
•	Параметр инициализации compatible для исходной и целевой баз данных должен иметь значение 10.0.0 или выше.
•	В заголовках файлов данных присутствует информация о платформе.
•	Перед переносом убедитесь в том, что все файлы, находящиеся в режиме ‘только чтение’ или в автономном состоянии, содержат информацию о платформе.
ЮМРАТ <BLE=9.20 j___________ •'ОМРА'гТЗЬГ=10.0.0
CR-V.TL6
11-27 Copyright © 2006, Oracle. All rights reserved.
Концепция минимального уровня совместимости
Параметр инициализации COMPATIBLE для исходной и целевой баз данных должен иметь значение 10.0.0 или выше перед использованием функциональной возможности межплатформенных табличных пространств.
Когда файлы данных в первый раз открываются базой данных Oracle 10g с параметром инициализации COMPATIBLE, в котором установлено значение 10.0.0 (или выше), информация о платформе запоминается в файлах (platform-aware files). На диаграмме это отображается отметкой (“галочкой”). Каждый файл идентифицируется платформой, которой он принадлежит. Такие файлы (platform-aware files) имеют на диске одинаковые форматы блоков заголовков файлов, которые используются для идентификации и верификации. Файлы, находящиеся в режиме "только чтение’ или в автономном состоянии, начинают использовать преимущество переносимости после перевода в режиме чтение/запись или оперативное состояние. Вследствие этого табличные пространства, находившиеся в состоянии ‘только чтение' в базах данных Oracle до версии 10g, должны быть хотя бы раз переведены в режим чтения/записи перед тем. как они начнут использовать возможность межплатформенной переносимости.
Oracle Database 1Од: Administration Workshop li 11-27
Процедура переноса табличных
Источник
пространств
Перевод табличных пространств в состояние Только чтение*.
'"ПиГслользование Data Ритрдля ....
11-28
Copyright © 2006, Oracle. АН rights reserved.
Процедура переноса табличных пространств
При переносе с одной платформы на другую (из источника в целевую систему) файлы данных, принадлежащие набору переносимых табличных пространств должны быть преобразованы в формат, распознаваемый целевой базой данных. Несмотря на то, что дисковые структуры базы данных Oracle 10g соответствуют общему формату, возможны отличия на плаз форме-источнике и целевой платформе в используемых форматах, определяющих порядок байтов в оанных {endian formats). Если такие форматы отличаются, воспользуйтесь командой CONVERT утилиты RMAN для преобразования порядка байтов. Эта операция может быть произведена либо на платформе-источнике, либо на целевой платформе. Для платформ с совпадающим порядковым форматом (endian format) преобразование не требуется.
На слайде графически отображаются возможные шаги переноса табличных пространств с платформы-источника на целевую платформу. Однако преобразование порядка байтов можно производить и после переноса файлов на целевую платформу. Последние два шага должны выполняться на целевой платформе.
В основном процедура похожа на ту. которая использовалась в предыдущих версиях базы данных Oracle, за исключением случая, когда на обоих платформах используются различные порядковые форматы хранения данных. Предполагается, что обе платформы совместимы с функциональной возможностью межплатформенной переносимости.
Примечание. Порядок байтов может повлиять на результат при чтении или записи данных. Например, 2-х байтное целое число 1 записывается как 0x0001 в системах с обычным порядком байтов (big-endian system). Пример такой системы - Sun SPARC Solaris. Такое же число в системе с обратным порядком (little-endian system) хранится в виде 0x0100 . Пример таких систем - Intel-совместимые PC.
Oracle Database 10g: Administration Workshop II 11-28
11 >29 Copyright © 2006, Oracle. All rights reserved.|
Выяснение порядкового формата платформы
Для проверки того, одинаков ли порядковый формат на обоих платформах, выполните запрос к представлению V$ TRANS PORT ABLE_PLATFORM. Представление V$DATABASE содержит два столбца, используемые для нахождения наименования и идентификатора вашей платформы.
Выполните запрос, приведенный на слайде, на обоих платформах и сравните результаты.
В системе Sun SPARC команда SELECT вернет следующее :
ENDIAN__FORMAT
Big
На платформе Microsoft Windows на основе процессоров Intel команда SELECT возвращает следующее:
ENDIAN__FORMAT
Little
Oracle Database 10g: Administration Workshop II 11-29
Переносимые базы данных
Возобновление после выделения пространства Переносимые табл, простр.
> Переносимые БД
•	Обобщение функциональной возможности переносимых табличных пространств.
•	Данные могут быть просто переданы из среды хранилища в витрины данных, обычно располагаемые на более меньших платформах.
•	База данных может быть очень быстро мигрирована с одной платформы на другую. Платформах и °Динитотже ПлатформаY~ “порядок формата”
Существующая БД
Передача файлов БД
Copyright © 2006, Oracle. All rights reserved
Переносимые базы данных
При использовании функциональной возможности переносимых табличных пространств перемещение данных становится значительно быстрее. Однако метаданные все еще необходимо выгружать, так как табличное пространство system не может быть перенесено. ЕТазначение функциональной возможности переносимых баз данных - предоставить быстрый и простой способ переноса базы данных между различными платформами, имеющими одинаковый порядковый формат (endian format). Однако исходная и целевая платформы могут иметь различное выравнивание на диске (disk alignment). Например, HP-UX и Solaris -обе платформы с порядковым форматом big, но дисковое выравнивание для HP-UX - 8, для Solaris - 4.
Для переноса баз данных с одной платформы на другую необходимо убедиться в том, что исходная и целевая системы функционируют на платформах, присутствующих в представлении V$TRANSPORTABLE__PLATFORM, а также имеют одинаковый порядковый формат. Например, можно перенести базу данных, функционирующую в Linux IA (32-bit), на одну из платформ Windows.
Если одна или обе базы данных используют автоматическое управление хранением (ASM), для передачи файлов необходимо использовать пакет DBMS__FILE__TRANSFER.
В отличие от переносимого табличного пространства, данные которого вставляются в целевую БД, эта возможность создает новую базу данных на целевой платформе. Вновь создаваемая БД содержит такие же данные, как и исходная БД. Новая БД имеет такие же установки, как и старая, за исключением имени БД, имени экземпляра и мест расположения файлов.
Примечание: перенос БД более быстро перемещает данные, чем Data Pump.
Oracle Database 10g: Administration Workshop II 11-30
Процедура переноса базы данных: преобразование в исходной системе
Откройте БД в режиме READ only с параметром инициализации COMPATIBLES.0.0
|11-31 Copyright © 2006, Oracle. АН rights reserved.
Процедура переноса базы данных: преобразование в исходной системе
Перед переносом базы данных ее следует открыть в режиме READ ONLY. Затем с помощью RMAN необходимо преобразовать требуемые файлы данных.
Когда преобразование выполняется на исходной платформе, применяется новая команда RMAN CONVERT DATABASE. Она генерирует скрипт, содержащий корректную команду CREATE CONTROLFILE RESETLOGS, используемую в целевой системе для создания новой базы данных. Кроме того, команда CONVERT DATABASE преобразует все идентифицируемые файлы данных (platform-aware files) таким образом, чтобы их можно было использовать в целевой системе. После выполнения команды CONVERT DATABASE вы передаете файлы данных и сгенерированный скрипт на целевую платформу. В результате выполнения переданного скрипта на целевой платформе создается новая копия вашей базы данных.
Примечание. Исходная база данных должна функционировать с параметром инициализации COMPATIBLE, имеющем значение 10.0.0 или выше. Все идентифицируемые табличные пространства должны хотя бы однажды находиться в состоянии READ WRITE после того момента, когда для параметра COMPATIBLE было установлено значение 10.0.0 или выше.
Oracle Database 10g: Administration Workshop II 11-31
Процедура переноса базы данных: преобразование в целевой системе
Откройте БД в режиме READ ONLY с параметром инициализации COMPATIBLES ОАО
передача файлов
Readonly
Исходная система
Целевая
система

11-32 Copyright © 2006. Oracle. All rights reserved.
Процедура переноса базы данных: преобразование в целевой системе Перед переносом базы данных ее следует открыть в режиме READ ONLY. Затем с помощью RMAN необходимо преобразовать требуемые файлы данных.
Чтобы выполнить преобразования на целевой платформе, сначала в исходной системе выполните команду CONVERT DATABASE, генерирующую два скрипта. Эти скрипты используются в целевой системе для преобразования файлов данных и для пересоздания управляющих файлов новой базы данных. После выполнения в исходной системе команды CONVERT DATABASE передайте на целевую платформу идентифицируемые файлы данных и оба скрипта. Затем выполняете эти два скрипта в правильном порядке. В первом скрипте для преобразования файлов данных применяется команда RMAN CONVERT DATAFILE. Во втором скрипте для создания новой базы данных используется команда SQL CREATE CONTROLFILE RESETLOGS, в которой указаны преобразованные файлы данных.
Примечание. Исходная база данных должна функционировать с параметром инициализации COMPATIBLE, имеющем значение 10.0.0 или выше. Все идентифицируемые табличные пространства должны хотя бы однажды находиться в состоянии READ WRITE после того момента, когда для параметра COMPATIBLE было установлено значение 10.0.0 или выше.
Oracle Database 10g: Administration Workshop II 11-32
Переносимые базы данных: указания
•	Создайте на целевой платформе парольный файл.
•	Перенесите bfile, используемые в исходной базе данных.
•	В сгенерированном pf ilp и скрипте переноса указываются OMF.
•	Для изменения dbid примените утилиту DBNEWID.
Переносимые базы данных: указания
Журнальные файлы, управляющие файлы и временные файлы (tempfiles) не переносимы. Они пересоздаются для новой базы данных на целевой платформе. Поэтому новая база данных должна открываться с опцией RESETLOGS.
Если парольный файл используется, он не переносится. Его необходимо создать на целевой платформе. Причина в том, что в зависимости от операционной системы должны применяться различные виды имен парольного файла. Следует отметить, что в выходных результатах команды CONVERT DATABASE перечисляются имена всех пользователей и их системные привилегии, а также содержатся рекомендации по пересозданию парольного файла и добавлению в него записей о пользователях на целевой платформе.
В выходных результатах команды CONVERT DATABASE приводятся все объекты directory, а также объекты, использующие тип данных В FILE и внешние таблицы в исходной БД. Возможно вам придется изменить в этих объектах имена каталогов и файлов. Кроме того, вы должны передать на целевую платформу существующие BFILE.
В сгенерированном pf ile и скрипте переноса в качестве файлов данных указываются файлы, сопровождаемые Oracle (Oracle Managed Files - OMF). Если вы не хотите использовать OMF, измените pf ile и скрипт переноса.
Перенесенная БД имеет такой же идентификатор (DBID), как и исходная база данных. Вы можете воспользоваться утилитой DBNEWID для изменения DBID. Как в скрипте переноса, так и в выходных результатах команды CONVERT DATABASE приводится подсказка по использованию утилиты DBNEWID.
Oracle Database 10g: Administration Workshop II 11-33
Итоги
*	Описание автоматического управления пространством базой данных Oracle
•	Профилактический мониторинг и управление использованием памяти в табличных пространствах
•	Использование сегментного консультанта
•	Возврат неиспользуемого пространства таблиц и индексов путем сжатия сегментов
•	Управление выделением пространства для возобновления операции
•	Описание концепций переносимых табличных пространств и баз данных

11-34
Copyright © 2006, Oracle, All rights reserved.
Oracle Database 10^: Administration Workshop II 11-34
Обзор практического занятия : управление хранением
•	Использование пороговых значений сигналов для профилактического управления табличных пространств
•	Использование сегментного консультанта для сжатия пространства
•	Просмотр сигналов и хронологических сведений о сигналах в SQL*Plus и Enterprise Manager
•BR-aCT.*?
.11-35 Copyright © 2006, Oracle. All rights reserved.
Oracle Database 10g: Administration Workshop II 11-35
Автоматическое управление пространством хранения данных
Рассматриваемые вопросы
•	Описание возможностей автоматического управления пространством хранения данных (Automatic Storage Management - ASM)
•	Задание параметров инициализации для экземпляров ASM и баз данных
•	Выполнение команд SQL, в которых указаны имена ASM-файлов
•	Запуск и остановка экземпляров ASM
•	Администрирование дисковых групп ASM
•	Использование RMAN для миграции базы данных в структуры хранения ASM
> 'Ж i	w ,	= Ж  ^ORACLE*
 < ...........
I 12-2 Copyright © 2006, Oracle. Ail rights reserved.
Oracle Database 10g: Administration Workshop II 12-2
Обзор автоматического управления пространством хранения данных
*	* Переносимая и высокопроизводительная кластерная файловая система
*	Файлы, сопровождаемые базой данных Oracle ,
•	Данные, распределенные по дискам для сбалансированной загрузки
•	Встроенное
зеркалирование данных на разных дисках
•	Решение многих проблем
управления структурами хранения

12-3
Copyright © 2006, Oracle. All rights reserved.
Обзор автоматического управления пространством хранения данных Автоматическое управление пространством хранения данных {Automatic Storage Management - ASM) осуществляет вертикальную интеграцию файловой системы и включает менеджер томом, который специально создан для файлов базы данных Oracle. Возможность ASM может быть сконфигурирована для одной машины с архитектурой SMP или на нескольких узлах кластера при использовании Oracle Real Application Clusters (RAC).
ASM распределяет загрузку ввода-вывода между всеми доступными ресурсами в целям достижения оптимальной производительности, устраняя необходимость ручной настройки ввода-вывода. ASM помогает администраторам сопровождать динамическую среду баз данных, позволяя увеличивать размер базы данных без ее обязательной остановки для регулировки распределения пространства хранения.
ASM позволяет сопровождать избыточные копии данных для достижения отказоустойчивости, а также может работать с механизмами отказоустойчивости, предоставляемых производителями оборудования. Управление данными осуществляется путем выбора характеристик надежности и производительности для соответствующих классов информации, а не на путем ручной настройки работы с файлами.
Возможности ASM экономят время администраторов БД, автоматизируя ручные операции со структурами хранения. В результате появляется возможность управления базами данных большего размера с более высокой эффективностью.
Oracle Database 10$: Administration Workshop II 12-3
Обзор автоматического управления пространством хранения данных (продолжение)
В соответствие с ASM файлы делятся на единичные секции (allocation units-AU), которые для каждого файла равномерно распределяются по всем дискам. ASM использует индексный механизм для отслеживания расположения каждой единичной секции. При изменении возможностей устройств хранения ASM не производит повторное растепление всех данных. Производится перемещение данных такого объема, который пропорционален объему добавленной или удаленной дисковой памяти так, чтобы равномерно перераспределить файлы и обеспечить сбалансированную загрузку дисков. Эти действия производятся при активной базе данных.
Вы можете повысить скорость операции перебалансировки или же снизить ее, чтобы уменьшить влияние этой операции на подсистему ввода-вывода. ASM обеспечивает защиту на основе зеркалирования данных. При этом не требуется покупать Менеджер логических томов (Logical Volume Manager) сторонней фирмы. Одно из уникальных преимуществ ASM состоит в том, что зеркалирование применяется на файловой основе, а не на основе томов. Поэтому одна и та же группа дисков может хранить совокупность файлов, защищаемых путем зеркалирования вместе с файлами, не защищаемыми совсем. ASM поддерживает файлы данных, журнальные файлы, управляющие файлы, архивные журналы, резервные наборы, полученные с помощью RMAN, и другие типы файлов базы данных Oracle. ASM поддерживает Real Application Clusters и устраняет необходимость использования менеджера логических томов кластера (Cluster Logical Volume Manager) или кластерной файловой системы (Cluster File System).
Oracle database 10g: Administration Workshop II 12-4
Общая архитектура ASM
Copyright © 2006, Oracle. АЯ rights reserved.
Общая архитектура ASM
Для использования ASM необходимо запустить специальный экземпляр, называемый экземпляром ASM (ASM instance) до запуска экземпляра базы данных. Экземпляр ASM не монтирует базы данных. Вместо этого он управляет метаданными, которые необходимы для обеспечения доступности файлов ASM со стороны обычных экземпляров БД. Как экземпляры ASM, так и экземпляры БД имеют доступ к некоторым общим наборам дисков, называемым дисковыми группами (disk groups). Экземпляры БД имеют прямой доступ к содержимому ASM-файлов, взаимодействуя с экземпляром ASM только, чтобы получить информацию о расположении этих файлов.
Экземпляр ASM содержит два новых фоновых процесса. Один из них координирует работу по перебалансировке дисковых групп. Его имя - RBAL. В торой - выполняет фактическое перемещение единичных секций (AU) в ходе перебалансировки данных. Таких процессов может быть много в каждый момент времени и они называются ARB0, ARB1 и т.д. Экземпляр ASM также содержит большинство таких же процессов, как и экземпляр базы данных (SMON, PHON, LGWR, DBWR и СКРТ).
Oracle Database 10$: Administration Workshop II 12*5
Общая архитектура ASM (продолжение)
Каждый экземпляр базы данных, использующий ASM, имеет два новых фоновых процесса, называемые ASMB и RBAL. RBAL выполняет глобальное открытие дисков дисковых групп. При старее экземпляра базы данных ASMB соединяется как фоновый процесс с экземпляром ASM. Взаимодействие между базой данных и экземпляром ASM осуществляется через мост {bridge). Он позволяет производить физические операции с файлами, например, создавать или удалять файлы данных. Через такое соединение осуществляется периодический обмен сообщениями для обновления статистик и для проверки того, что оба экземпляра функционируют.
Oracle Database 10g: Administration Workshop II 12-6
Задачи, связанные с экземпляром ASM
Задачи администратора по использованию экземпляра ASM:
•	Создание экземпляра ASM
•	Установка параметров инициализации
•	Запуск экземпляра ASM <
•	Управление экземпляром ASM
•	Остановка экземпляра ASM
12-7
Copyright © 2006, Oracle. АН rights reserved.
Oracle Database 10$: Administration Workshop II 12-7
Создание экземпляра ASM
12-8_______________________________Copyright © 2006, Oracle. All rights reserved.
Создание экземпляра ASM
Экземпляр ASM создается с помощью утилиты Database Configuration Assistant (DBCA).
На первом экране этой утилита выбирается опция Configure Automatic Storage Management, затем выполняются последующие шаги по созданию и запуску экземпляра ASM. Вслед за этим определяются дисковые группы, доступные с помощью экземпляра ASM.
В ходе процесса создания экземпляра ASM утилита DBCA автоматически создает вход (запись) в файле oratab. Эта запись используется для обнаружения экземпляра ASM. На платформах Windows, где используется механизм сервисов, DBCA автоматически создает сервис Oracle и соответствующий вход в реестре, используемый при обнаружении экземпляров ASM.
После завершения конфигурирования экземпляра ASM утилита DBCA создает файл параметров и парольный файл для экземпляра ASM.
При создании базы данных, использующей возможность ASM, утилита Database Configuration Assistant (DBCA) определяет, существует ли уже экземпляр ASM на вашем хосте. Если процедура обнаружения экземпляра ASM возвращает пустой список, DBCA создает новый экземпляр ASM.
Oracle Database 10g: Administration Workshop II 12-8
Параметры инициализации экземпляра ASM
INSTANCE__TY₽E « ASM
DB_UNIQUE_NAME -= +ASM_
ASM__₽OWER_LIMIT = 1
ASM_DISKSTRING 4= ’7dev/rdsk/*s2•, •/dev/rdsk/cl*’
ASMJDISKGROURS =s dgroupA, dgroupB
LARGE POOL SIZE = «MB alihlll»rl,il^,irnil^rlll>' 	:	.............Л..-. ... .   ~	.
12-9  Copyright © 2006, Oracle. AH rights reserved.j
Параметры инициализации экземпляра ASM
•	INSTANCE__TYPE должен быть установлен в ASM для экземпляров ASM.
•	DB__UNIQUE_NAME задает имя предоставляемого сервиса, через которое доступен этот экземпляр ASM, управляющий дисковыми группами, управляющий дисковыми группами.Обычно следует использовать значение по умолчанию +ASM. Другое значение задается только, когда на одном узле выполняется несколько экземпляров ASM.
•	ASM_POWER_LIMIT управляет скоростью операции перебалансировки ( rebalance operation). Задаваемое значение может быть в диапазоне от 1 до 11, причем 11 определяет максимальную скорость. Если этот параметр опущен, значение по умолчанию - 1. Количество подчиненных процессов зависит от уровня параллелизма, задаваемого в ручной команде перебалансировки (фраза POWER), или же определяется параметром ASMJPOWERJLIMIT.
•	ASM DISKSTRING содержит зависимое от ОС значение, используемое ASM для ограничения перечня дисков, которые могут быть обнаружены.
•	ASMJDISK__GROUPS содержит список имен дисковых групп, монтируемых экземпляром ASM при старте или по команде ALTER DISKGROUP ALL MOUNT.
INSTANCE__TYPE - это единственный параметр, который должен быть задан. Все остальные параметры ASM имеют значения по умолчанию, которые подходят для большинства сред.
Примечание: если среда ASM была создана с использованием командной строки, а не ЕМ, тогда дисковые группы должны быть созданы перед тем, как они могут быть смойгированы.
Oracle Database 10g: Administration Workshop II 12-9
Изменения в параметрах экземпляра базы данных
...........' ........................,,
‘ INSTONCEJHfBE = RDBMS
LOG_KRCHIVE_FORMAT
DBJBWCK_SIZE
DB CREATE ONLIBB WG BIST -n
**>*	W»*'
DB_CREATE_FtM_i_BES,T
DB_RECOVERX_FII<E_DEST
CONTROL_FILES	j
LOG__ARCHIVE_DEST_n	|
LOG_ARCHIVE_DEST
STANDBY_ARCHIVE_DEST
LARGE_KX>Ii_SIZE - 8MB	i
ММННМЖбШМЯНР^’ЛН
12-10 Copyright © 2006, Oracle. Ail rights reserved.j
Изменения в параметрах экземпляра базы данных
По умолчанию параметр INSTANCE_JTYPE имеет значение RDBMS, что указывает на то, что это экземпляр системы управления реляционной базой данных (СУРБД, Relational Database Management System, RDBMS).
Когда для параметра LOG__ARCHIVE__DEST задано неполное имя ASM-файла (например. +dGroupA), параметр LOG_ARCHIVE_FORMAT игнорируется. Когда значение параметра LOG_ARCHIVEJDEST - директория ASM (например, +dGroupA/myarchlogdir/), тогда параметр LOG__ARCHIVE FORMAT используется и архивные файлы не являются файлами, сопровождаемыми Oracle {Oracle Managed File -ОMF). База данных Oracle автоматически генерирует уникальные имена для архивных журналов.
В следующих параметрах можно использовать шаблоны имен для ASM-файлов:
•	DB__C RE ATEJDNLINE _LOG__DE S T jn
.	DB___CREATE _FI LE__DEST
•	DB__RECOVERY _FILE__DEST
. CONTROLJFILES
•	LOG__ARCHIVE__DEST_n
•	LOG__ARCHIVE_DEST
•	S TANDBY_ARCHIVE__DE ST
Примечание: поскольку место для карт единичных секций (allocation unit maps) ASM-файлов выделяется в большом пуле, необходимо задать параметр инициализации LARGE_POOL_SIZE, равный хотя бы 8 Мб или же больше (что предпочтительнее).
Oracle Database 10g: Administration Workshop II 12*10
Запуск экземпляра ASM
$ export	JSW= ' +ASM'
$ j^lplus /nolog
SQL> CONNECT / A§ sysdba
Connected to an idle instance.
SQI> STARTUP;	*
ASM instance started
|^tal tem Global Area 147936196 bytes
Fitted Sire	324548	bytes
Variable Size	96468992	by|es
Database Buffers	50331648	bytes
Redo Buffers	8ЦЦ	fertes
asm disWrdt®s-.wtmted --------—......;.......-----„,...,-- , „
Запуск экземпляра ASM
Экземпляр ASM запускается подобно экземпляру базы данных. Отличие в том, что в файле параметров инициализации содержится запись INSTANCE__TYPE~ASM. Такое значение параметра означает для исполняемого модуля Oracle, что запускается экземпляр ASM, а не экземпляр БД. Кроме того, в переменной среды ORACLE__SI D должно быть указано имя экземпляра ASM. При старте экземпляра ASM на стадии монтирования делается попытка смонтировать дисковые группы, указанные в параметре инициализации ASM__DISKGROUPS. Никакая база данных в этом случае не монтируется.
Другие фразы команды STARTUP, которые используются при старте экземпляра БД, соответствующим образом интерпретируются применительно к экземпляру ASM. Опция OPEN не применима для экземпляра ASM. NOMOUNT вызывает запуск экземпляра ASM без монтирования какой-либо дисковой группы.
Oracle Database 10g: Administration Workshop II 12-11
Copyright © 2006, Oracle. АП rights reserved. 
Доступ к экземпляру ASM
Экземпляр ASM не имеет словаря, поэтому единственный способ соединения с ним -использование аутентификации на уровне ОС. Соединение может быть установлено с привилегией SYSDBA или SYSOPER. Для удаленного соединения должен использоваться парольный файл. Обычно привилегия SYSDBA предоставляется члену группы в операционной системе. В Unix это, как правило, группа dba. По умолчанию члены группы dba имеют привилегию SYSDBA, действующую при подсоединении к любому экземпляру на узле, включая экземпляр ASM. Пользователям, подсоединяющимся к экземпляру ASM с привилегией SYSDBA, предоставляется доступ, позволяющий выполнять административные операции во всех дисковых группах системы. Привилегия SYSOPER позволяет поддерживать работоспособность экземпляра ASM и разрешав применять ограниченный набор команд SQL для выполнения базовых операций уже сконфигурированной системы.
Oracle Database 10g: Administration Workshop II 12-12
Доступ к экземпляру ASM (продолжение)
Следующие команды доступны пользователям с привилегией SYSOPER:
•	S TARTU Р/S И UTDOWN
•	ALTER DISKGROUP MOUNT/DISMOUNT
•	ALTER DISKGROUP ONLINE/OFFLINE DISK
•	ALTER DISKGROUP REBALANCE
•	ALTER DISKGROUP CHECK
•	Доступ ко всем представлениям вида V$ASM~*
Все остальные команды, например CREATE DISKGROUP, ALTER DISKGROUP
ADD/DROP/RESI ZE DISK и т.д. требуют наличия привилегии SYSDBA и не разрешены при соединении с привилегией SYSOPER.
Oracle Database iOgr Administration Workshop II 12-13
Домашняя страница ASM
12-14	 Copyright© 2006, Oracle. АН rights reserved.

Домашняя страница ASM
Enterprise Manager предоставляет дружественный графический интерфейс пользователя для управления базой данных Oracle, решения административных задач и осуществления мониторинга. Функциональные возможности, появившиеся в Oracle 10g, осуществляют незаметную для пользователя поддержку задач управления, администрирования и мониторинга баз данных Oracle, использующих структуры хранения ASM. Дополнительно поддерживается решение новых задач управления, возникающих при администрировании экземпляра ASM и дисковых групп ASM.
На странице, приводимой на слайде, выведен статут экземпляра ASM, а также метрики и сигналы, сгенерированные механизмом сбора данных. На этом экране также доступна возможность запуска и остановки экземпляра ASM. Щелкнув на ссылке в секции Alert пользователь попадает на страницу с подробными данными. Г рафик DiskGroup Usage отражает использование пространства всеми клиентскими базами данных, а также свободное пространство.
Oracle Database 10g: Administration Workshop II 12-14
Страница производительности ASM
Ccpynght © 2006, Oracle. Ail rights reserved.
Страница производительности ASM
На закладке Performance страницы Automatic Storage Management показываются данные о времени ответа и пропускной способности ввода-вывода для каждой дисковой группы. Пользователь может также получить более детальные сведения (drill down) о значениях метрик производительности на уровне дисков.
Oracle Database 10$: Administration Workshop II 12«15
Страница конфигурации ASM
На закладке Configuration страницы Automatic Storage Management можно просмотреть и изменить параметры инициализации экземпляра ASM.
Oracle Database 10g: Administration Workshop II 1246
Остановка экземпляра ASM
Экземпляр А базы данных
Экземпляр В базы данных
12-17 Copyright © 2006. Oracle, Ail rights reserved.	I
Остановка экземпляра ASM
Экземпляр ASM успешно останавливается в режиме NORMAL, IMMEDIATE или
TRANSACTIONAL, если к нему не подсоединен ни один экземпляр БД. При наличии хотя бы одного подсоединенного экземпляра БД возвращается следующая ошибка :
ORA-15097: cannot SHUTDOWN ASM instance with connected RDBMS instance
По команде SHUTDOWN ABORT экземпляр ASM будет остановлен и при последующем старте потребуется время для восстановления. Все подсоединенные экземпляры БД также останавливаются, возвращая следующую ошибку:
ORA-15064: communication failure with ASM instance
Если в конфигурации с единственным экземпляром ASM происходит его аварийный отказ и при этом дисковые группы открыты для изменений, тогда в ходе инициализации экземпляр ASM читает журнал дисковых групп и восстанавливает все динамические изменения.
Если несколько экземпляров ASM разделяют дисковую группу и один из них завершается аварийно, другой экземпляр ASM автоматически восстанавливает динамические изменения метаданных ASM, потерянные из-за с аварийного завершения экземпляра..
Аварийное завершение экземпляра БД никак не влияет на экземпляры ASM.
Экземпляр ASM следует автоматически запускать при перезагрузке хоста. Для этого используется механизм автоматического запуска базовой ОС.
Следует отметить, что аварийный отказ файловой системы обычно вызывает аварийный отказ узла.
Oracle Database 10g: Administration Workshop IS 12-17
Утилита DBCA и опции хранения
Copyright © 2006, Oracle. АН rights reserved.
Утилита DBCA и опции хранения
При создании базы данных с помощью утилиты Database Configuration Assistant (DBCA) выдается приведенная на слайде страница.. На ней можно выбрать в качестве места хранения файловую систему, ASM или “чистые”устройства {гawdevices).
Oracle Database 10g: Administration Workshop II 12-18
Основные понятия, связанные с ASM
Ы-19 Copyright © 2006, Grade. АН rights reserved.
Основные понятия, связанные с ASM
ASM не исключает использования прежде существовавших возможностей базы данных. Существующие БД могут продолжать работать по-прежнему. Новые файлы можно создавать в виде ASM-файлов. В то же время администрирование существующих файлов может осуществляться старыми методами, но возможна миграция этих файлов в среду ASM. На диаграмме описываются связи, существующие между различными компонентами хранения информации внутри базы данных Oracle. В левой части и средней части диаграммы показаны связи, которые существовали в предыдущих версиях Oracle. В правой части отражаются новые понятия, введенные вместе с ASM.
Файлы базы данных теперь могут храниться в виде ASM-файлов. На вершине новой иерархии находятся дисковые группы ASM (ASM disk groups). Любой ASM-файл находится только в одной дисковой группе. Однако дисковая группа может содержать файлы, которые принадлежат нескольким базам данных, и одна база данных может использовать пространство нескольких дисковых трупп. Как можно заметить, одна дисковая группа состоит из ASM-дисков и каждый ASM-диск принадлежит только к одной дисковой группе. ASM-файлы всегда распределяются по всем ASM-дискам в дисковой группе. ASM-диски разбиваются на части (partition), состоящие из единичных секций (allocation units - AU), размером в 1 мегабайт. Единичные секции - наименьшие непрерывные участки дискового пространства, которые выделяет ASM. ASM запрещает расщепление блоков между несколькими единичными секциями.
Примечание. На диаграмме отражен только один тип ASM-файла: файл данных. Однако ASM может использоваться для хранения других типов файлов базы данных.
Oracle Database 10g: Administration Workshop II 12-19
Дисковые группы ASM
•	Пул дисков сопровождается как логическое устройство
•	Весь диск разбивается на секции одинакового размера
•	Каждый файл равномерно распределяется по всем дискам
•	Использование грубого или тонкого расщепления данных в зависимости от типа файла
•	Администрирование
дисковых групп, а не файлов
Дисковые группы ASM
Дисковая группа (disk group) - это совокупность дисков, управляемая как логическое устройство. Пространство (storage) добавляется или удаляется из дисковых групп единичными секциями (units), используемыми ASM при сопровождении дисковых групп. Каждый диск ASM имеет имя. Это общее имя, которое совместно используется всеми узлами кластера. Абстрактное понятие имени диска ASM необходимо, так как различные хосты могут использовать различные имена для одного и того же диска.
ASM всегда равномерно распределяет файлы порциями (chunks), состоящими из единичных секций (units) по 1Мб каждая, между всеми дисками в дисковой группе. Это называется грубым (coarse) расщеплением (striping). Таким образом ASM устраняет необходимость ручной настройки дисков. Однако диски в дисковой группе должны быть одинакового размера и с одинаковыми характеристиками производительности, чтобы можно было добиться оптимальности ввода-вывода. В большинстве случаев инсталлируется небольшое количество дисковых групп. Например, одна дисковая группа для рабочей области (work area) и одна для области восстановления (recovery area). Для файлов (например для оперативных журналов), при использовании которых не должны возникать задержки (low latency), ASM предоставляет возможность тонкого (fine-grained) расщепления (128К1 При тонком (fine) расщеплении делится каждая единичная секция (allocation unit). В результате тонкого расщепления операции ввода-вывода среднего размера разбиваются на множество более мелких операций ввода-вывода, выполняемых параллельно. Хотя количество файлов растет и увеличивается число дисков, администратор должен сопровождать только постоянное число дисковых групп. С точки зрения базы данных, дисковые группы могут быть определены как места расположения по умолчанию для файлов, создаваемых в базе данных. Примечание: каждая дисковая группа хранит всю информацию о себе; она содержит директорию файлов и директорию дисков.
Oracle Database 10g: Administration Workshop II 12-20
Группа отказа
Группа отказа([аИиге group} - это набор дисков внутри конкретной дисковой группы, разделяющих общие ресурсы, отказ которых останавливает работу дисков, но не выводит их из строя. Примером труппы отказа может служить цепочка SCSI-дисков, соединенных с общим SCSI-контроллером. Аварийный отказ контроллера ведет к тому, что все диски на его шине SCSI становятся недоступными, хотя каждый из дисков по отдельности не теряет работоспособности.
Состав отказывающей группы зависит от особенностей каждого узла. Он определяется в значительной степени видами отказов, к которым толерантен узел (отказ не вызывает прекращения его работы). По умолчанию ASM назначает каждому диску свою собственную группу отказа. При создании дисковой группы или добавлении диска к дисковой группе администраторы могут указать задаваемую ими группу отказа в рамках дисковой группы. После того, как группы отказа были заданы, ASM может оптимизировать размещение файлов, чтобы снизить вероятность недоступности данных вследствие отказа общего ресурса.
Oracle Database 10g: Administration Workshop II 12-21
12-22
Зеркалирование дисковых групп
Зеркалирование на уровне AU
Смешивание первичных и зеркальных AU на каждом диске
Внешняя избыточность:
основывается на
аппаратном зеркалировании
Обычная избыточность:
-	Двойное зеркало
-	Хотя бы две группы отказа Высокая избыточность:
-	Тройное зеркало
-	Хотя бы три группы отказа
Copyright © 2006, Oracle. All rights reserved.
s.

Зеркалирование дисковых групп
При использовании ASM можно описать три типа дисковых групп, которые поддерживают различные типы зеркалирования.
•	Внешняя избыточность (external redundancy): не предоставляет возможность зеркалирования. Используйте дисковые группы с внешней избыточностью, когда применяется аппаратное зеркалирование или вы допускаете возможность потери данных в результате дискового отказа. Группы отказа не используются для таких типов дисковых групп.
•	Обычная избыточность (normal-redundancy): поддерживает двойное зеркало.
*	Высокая избыточность (high-redundancy): обеспечивает тройное зеркало.
Функциональная возможность ASM не зеркалирует диски, она зеркалирует единичные секции (AU). Поэтому необходимо иметь только резервное свободное пространство в дисковой группе. Когда происходит дисковый отказ, ASM автоматически реконструирует содержимое отказавшего диска на работоспособных дисках дисковой группы, читая зеркальное содержимое с работоспособных дисков. В результате резко возрастающий объем ввода-вывода, возникающий в связи с дисковых отказом, распределяется между несколькими дисками,.
Когда ASM размещает основную секцию {primary AU) файла на одном диске, зеркальная копия этой секции размещается на другом диске дисковой группы. Основные секции на данном диске могут иметь зеркальные копии на одном из нескольких других дисков, входящих в ту же дисковую группу. ASM гарантирует, что основные секции и их зеркальные копии никогда не размещаются в одной группе отказа. Если вы определили группы отказа для вашей дисковой группы, ASM может обеспечить отказоустойчивость (толерантность) при одновременном выходе из строя нескольких дисков из одной группы отказа.
Oracle Database 10$: Administration Workshop II 12-22
Динамическая перебалансировка дисковых групп
•	Автоматическая оперативная перебалансировка при изменении конфигурации хранения
•	Перемещение данных только пропорционально	<
добавленному пространству
•	Не требуется ручная настройка ввода-вывода
•	Оперативная миграция данных в новое пространство хранения
Конфигурируемая загрузка системы с использованием asm power limit
12-23
Copyright © 2006, Oracle. Ait rights reserved.
Динамическая перебалансировка дисковых групп
•	При использовании ASM процесс перебалансировки очень прост и происходит без вмешательства АБД или системного администратора. Когда добавляются шли удаляются диски из дисковой группы, ASM автоматически перебаласирует дисковую группу,.
•	Использование индексных методов при распределении AU на доступных дисках позволяет ASM не перерасшеплять (restripe) все данные, а только перемещать некоторый объем данных, пропорциональный добавленному или удаленному месту хранения. Такое перемещение производится с целью равномерного перераспределения файлов и поддержания сбалансированной загрузки ввода-вывода между дисками дисковой группы.
•	При сбалансированной загрузке ввода-вывода могут быть добавлены файлы или изменена конфигурация хранения. В таком случае администратору БД не надо искать “горячие точки' (hot spots) в дисковой группе и вручную перемещать данные, чтобы восстановить сбалансированную рабочую загрузку ввода-вывода.
•	Более эффективно одновременно добавлять или удалять несколько дисков так, чтобы их перебалансировка была выполнена в рамках одной операции. Это позволяет избежать ненужное перемещение данных. С помощью такого подхода проще выполнить оперативную миграцию данных. Все что необходимо сделать - добавить новые диски в рамках одной операции и удалить старые диски в этой же операции.
•	Параметр инициализации ASM__POWER_LIMIT позволяет управлять нагрузкой, оказываемой на систему операцией перебалансировки. Диапазон значений этого параметра от 0 до 11. Чем меньше значение, тем ниже нагрузка, большее значение вызывает большую нагрузку и более быстрое завершении операции. Значение 0 останавливает операцию перебалансировки. По умолчанию значение ----- 1.
Oracle Database 10g: Administration Workshop II 12-23
Сопровождение дисковых групп
12-24 Copyright © 2006: Oracle. АЙ rights reserved.
Сопровождение дисковых групп
Основная задача экземпляра ASM - управление дисковыми группами и защита их информации. Кроме того, экземпляр ASM передает сведения о структуре файла экземплярам БД. В результате экземпляры БД могут напрямую обращаться к файлам, хранимым в дисковых группах.
Появилось несколько новых команд для администрирования дисковых групп. Для их использования требуется привилегия SYS DBA и все они должны вводиться через экземпляр ASM.
Можно добавить новые дисковые группы. Можно также изменить существующие дисковые группы, добавив или удалив диск, а также произвести много других операций Дисковые группы можно удалить.
Oracle Database 10g: Administration Workshop II 12-24
Страница администрирования ASM
На закладке Administration страницы Automatic Storage Management выводятся дисковые группы, перечисленные в представлении V$ASM__DISKGROUP. На этом экране пользователь может создавать, редактировать или удалять дисковую группу. Кроме того можно выполнять операции с дисковыми группами, например, монтирование, размонтирование, ребалансировку, проверку и восстановление (repair) выбранной дисковой группы.
Oracle Database 10g: Administration Workshop II 12-25
Страница создания дисковой группы
j£>GR?iJF1J)Ql
рг
рГ
|БбР;ОиР1"о®
po" pF pT
~RH
“R1
|dgpob&jx»
юс-’ройрГоёё й?ЗгёирГда ^rgupTsco
12-26
Copyright © 2006, Oracle. All rights reserved,
Create Disk Group
R«teid*ric5
Г Au!<-«s 3i)cs:fy Mt-uM Рипке Startup Eetea fefeffi»-* Disksi^a iSsss
ftCVasrrabsJ- 3'&$Ю5 MEMBER A£Vasrfrf:sW5:$i£l R!E?.®ER ЛЙ1/ЗЖКЙ4к5Й5:=ЛЙ2 MEMBER ЛкЯ '<ss>whs> s/jiiStOS fxiEME&S ;«Й1нля.о«й»**5*Г4 MEMBER '»r31'3S»ritfisPaJ*3fc&5 MEMEEF .адНмме^'ШЙв MEMBER AOWeswdisksftfca®’ MEMBER чй1 'asrn&sks'tjisWS MEMBER At.'1/==ai«!5t«c>sW9 MEM8ER fl£i/S5ms:3Ew«MC. MEMBER
ii£1/asi»d:sl-stosMl MEMBER
iMEv| k:^:G4Pt^OO
FO Rd
ю§рэциж...Ж
W3 g®3 SSL
p^SuiTjSo |о&рсхуГкю рйоЙрГдю |№^5ЬёГ?йй
рзвдврГр® Ik^SjRjCCG
^эя&зрГсё |БЗетирГоп ..йавоДю.
с-мч'Асье



Страница создания дисковой группы
Щелкните на кнопке Create на странице Disk Group Overview. В результате произойдет переход на страницу Create Disk Group, пример которой приведен на слайде. На этой странице можно ввести имя дисковой группы, задать механизм избыточности и перечень дисков, которые необходимо включить в новую дисковую группу.
Перечень дисков выбирается из фиксированного представления V$ASM_JDISK. По умолчанию показываются только те диски, которые могут быть назначены дисковой группе. Такие диски имеют один из следующих статусов:
CANDIDATE; диск никогда не назначался дисковой группе ASM;.
• FORMER; диск когда-то назначался дисковой группе ASM, но сейчас он не входит ни в какую группу;
PROVISIONED; использовался интерфейс ASMLib, но диск еще не назначался дисковой группе ASM.
Примечание: ASMLib - это APL предоставляющий интерфейс к массивам хранения других производителей. Дополнительные сведения о ASMLib см. в документе Database Administrator's Guide.
Oracle Database 10g: Administration Workshop II 12*26
Создание и удаление дисковых групп
CREATE	dgrpupA NORMAL REDUNDANCY
:<ЖХШМО'ОТ controller! ЙЙК
*/devices/А1 ’ HAME diskAl SI2E 120G FORCE,
*/devices/А2 ’f
* /devices/A31
FAILGROUF controlled DISK
’/devices/В1’,
’ /devices/В2 * >
’ /devices/ВЗr;
Создание и удаление дисковых групп
Предположим, что при обнаружении ASM-дисков в директории /devices были выявлены следующие диски: Al, А2, АЗ, Bl, В2 и ВЗ. Предположим, что диски Al, А2 и АЗ на одном контроллере SCSI, а В1, В2 и ВЗ - на другом. Первый пример показывает, как сконфигурировать дисковую группу с именем DGROUPA, содержащую две группы отказа: CONTROLLER! и CONTROLLERS.
В примере для дисковой группы также задается характеристика избыточности (NORMAL REDUNDANCY), обычно устанавливаемая по умолчанию. Дополнительно можно указать имя и размер диска. Если эти данные не вводятся, ASM назначает имя по умолчанию и пытается определить размер диска. Если размер диска выявить не удается, возвращается сообщение об ошибке. Параметр FORCE указывает на то, что диск должен быть добавлен к описываемой группе даже, если он уже был отформатирован как элемент дисковой группы ASM. Использование опции FORCE для диска, который не был отформатирован как элемент дисковой группы ASM, вызывает появление сообщения об ошибке.
Во второй команде производится удаление дисковой группы вместе со всеми ее файлами. Фраза INCLUDING CONTENTS необходима, если дисковая группа кроме внутренних метаданных ASM содержит также и данные. Дисковая группа должна быть смонтирована, чтобы ее можно было удалить. После проверки того, что ни один из файлов дисковой группы не открыт, группа и все ее драйверы удаляются. После этого заголовок каждого диска переписывается, чтобы удалить информацию форматирования ASM.
Oracle Database 10g: Administration Workshop II 12-27
Добавление дисков в дисковые группы
ALTER DISKGROUP dgroupA ADD DISK ’/dev/rdsk/c0t4d0s2> NAME A5, '/dev/rd.sk/c0t5d0s2' NAME A6, ’/dev/»isk/c(>t^iPf2' NAME Al,
'Zdev/rdsk/cpt7d0s2' NAME AB;
........................................^.»,.,СТПИИ1ОТИ.,.--......
ДЖ PJSKGROUF адешш ADD DISK * /devices^**;
(Фсц^
дисков J
12-28
Copyright © 2006, Oracle. All rights reserved.
Добавление дисков в дисковые группы
В примере показано, как добавить диски в дисковую группу. Для этого предназначена команда ALTER DISKGROUP ADD DISK. Первая команда добавляет четыре новых диска в дисковую группу DGROUPA.
Вторая команда демонстрирует использование строковых шаблонов, используемых при обнаружении. Рассмотрим следующую конфигурацию:
/devices/А1 - элемент дисковой группы DGROUPA.;
/devices/A2 - элемент дисковой группы DGROUPA:.
/devices/АЗ - элемент дисковой группы DGROUPA;.
/devices /А4 - диск-кандидат (candidate disk).
Вторая команда добавляет диск А4 в дисковую группу DGROUPA. Она игнорирует другие диски, даже если они соответствуют строковому шаблону, используемому при обнаружении, поскольку они уже входят в дисковую группу DGROUPA. Как показано на диаграмме, когда диск добавляется в дисковую группу, экземпляр ASM проверяет, доступен ли диск и пригоден ли он для использования. Затем диск форматируется и перебалансируется. Процесс перебалансироваки может занять длительное время, так как при этом единицы хранения (AU) из каждого файла перемещаются на новый диск.
Oracle Database 10g: Administration Workshop II 12-28
Добавление дисков в дисковые группы (продолжение)
Примечание. Перебалансировка не блокирует никакие операции базы данных. Основное воздействие эта операция оказывает на загрузку ввода-вывода в системе. Чем больше объем балансируемых данных, тем выше загрузка по вводу-выводу. В результате снижается пропускная способность при выполнения ввода-вывода информации БД.
Oracle Database 10g: Administration Workshop 0 12*29
Примеры команд Alter DISKGROUP
Удаление диска из группы dgroupA:
ALTER DISKGROUP dgroupA DROP DISK A5;
Добавление и удаление диска в одной команде:
ALTER DISKGROUP dgroupA
DROP DISK A6
ADD FAILGROUP fred
DISK '/dev/rdsk/c0t8d0e2* NAME AS;
Прерывание операции удаления дисков:
АМШ DISKGROUR dgroupA OTPROR DISRS;
... .> .....................       о__-__
12-30 Copyright © 2006, Oracle. AH rights reserved.
Примеры команд Alter DISKGROUP
Первая команда показывает, как удалить один из дисков из дисковой группы DGROUPA. Вторая команда демонстрирует добавление и удаление дисков в одной команде. Большое преимущество этой команды в том, что перебалансировка не начинается до завершения команды. Третья команда показывает, как прервать операцию удаления диска, заданную в предыдущей команде. Фраза UNDROP выполняется только в ситуации, когда удаление дисков “подвисает”, но не после завершения удаления.
Следующая команда производит перебалансировку дисковой группы DGROUPB, если это необходимо:
ALTER DISKGROUP dgroupB REBALANCE POWER 5;
Эта команда обычно не требуется, поскольку перебалансировка выполняется автоматически при добавлении, удалении и изменении размеров дисков. Однако она полезна, когда нужно использовать фразу POWER, чтобы переопределить уровень загрузки и повысить скорость перебалансировки, которая зависит от параметра инициализации ASM__POWER__LIM.IT. Можно изменить допустимый уровень загрузки (power level) для выполняемой операции перебалансировки, введя повторно команду с новым уровнем.
Уровень загрузки, равный нулю, останавливает перебалансировку до тех пор, пока команда неявно или явно будет повторно введена.
Следующая команда размонтирует дисковую группу DGROUPA: ALTER DISKGROUP dgroupA DISMOUNT;
Опции MOUNT и DISMOUNT позволяют сделать одну или несколько дисковых групп доступными или недоступными для экземпляров БД.
Oracle Database 10g: Administration Workshop II 12-30
Примеры команд Alter diskgroup (продолжение)
Используйте следующую команду для проверки внутренней целостности метаданных дисковой группы и устранения (repair) некоторых найденных ошибок :
ALTER DISKGROUP dgroupA CHECK ALL;
Можно также указать фразу NOPE PAIR, чтобы только получить сигнальные сообщения об ошибках, но не устранить их. В приводимой команде задана перекрестная проверка всех дисков дисковой группы. Кроме того, можно задать проверку отдельного файла или отдельного диска. Для этой команды необходимо, чтобы дисковая группа была смонтирована. Если обнаруживаются ошибки, выдается итоговое сообщение об ошибках, а также подробные сведения об обнаруженной ошибке заносятся в сигнальный файл.
Примечание: все примеры, кроме двух последних, приводят к перебалансировке дисковой группы.	5
£
Oracle Database 10g: Administration Workshop II 12*31
ASM-файлы
ASM-файл автоматически распределяется внутри дисковой группы dgroupA
 ,«	. ж..........a ж..	.	.......„..„V JU ~ у ?• ORACLE'
12-32 Copyright © 2006, Oracle. All rights reserved.
ASM-файлы
Если при создании табличного пространства в качестве имени файла данных задается дисковая группа ASM, тогда ASM-файл табличного пространства создается в этой дисковой группе.
Во время создания такому файлу назначаются определенные постоянные атрибуты. В их число входят политика защиты и политика расщепления. ASM-файлы - это файлы, сопровождаемые Oracle (Oracle Managed Files, ОМ F-файлы). Такие файлы автоматически удаляются, когда они больше не не нужны.
При использовании возможностей ASM операции с файлами задаются в терминах объектов базы данных. Администрирование баз данных никогда не требует знания имени файла, хотя оно предоставляется через некоторые представления словаря данных, а также по команде ALTER DATABASE BACKUP CONTROLFILE TO TRACE. Так как каждый файл в дисковой группе физически распределен по всем файлам дисковой группы, бесполезно резервировать один диск. Резервирование ASM-файлов должно выполняться с помощью утилиты RMAN.
Примечание: с помощью возможности ASM не сопровождаются пользовательские бинарные файлы, сигнальные и трассировочные файлы, файлы паролей.
Oracle Database 10g: Administration Workshop II 12-32
Утилита asmcmd
S&L& СДЕАЗЖ ТМШВРЛСВ •Шаашй DAWXLE ’WGRODFU SIZE 100М> Tablespace created,
SQL> CREATE TABLESFACE hrappa DATAFILE ^D№OUF11 SIZE 10M; Tablespace created..
-йшсйН
ASMCMD> 1£~ Хтюда/О^/ПАТАЕХЪЕ
: адя	Redimd-	..Striped	Txw	Name
DATAFILE	MIR®	COARSE	OCT 05	21:00:00	t	HRAPPS.257.570523611
DATAFILE	MIRROR	COARSE	OCT 05	21:00:00	Y	TBSASM.256.570922917
ASMCMD>
12-33
Copyright © 2006, Oracle. All rights reserved.
Утилита ASMCMD
ASMCMD - утилита командной строки, которая позволяет простым образом просматривать и изменять файлы и директории внутри дисковых групп ASM. С ее помощью можно получать сведения о составе дисковых групп, выполнять поиск, создавать и удалять директории, выводить информацию об использовании пространство и выполнять многое другое.
Примечание: дополнительные сведения об утилите ASMCMD см. в документе Oracle Database Utilities.
Oracle Database 10$: Administration Workshop II 12*33
Миграция базы данных в структуры хранения ASM
1	. Остановите “чисто” базу данных
2.	Внесите изменения в файл серверных параметров, чтобы можно было использовать OMF-файлы
3.	Отредактируйте и выполните следующий скрипт, используя утилиту RMAN:
STARTUP NOMOUNT;
RESTORE CONTROLFILE FROM '/ul/cl,Ctl*;
ALTER ЖТАВАЗЕ MOUNT;
AS CORY DATABASE FORMAT ’^roupl’ ;
SWITCH DATABASE TO. COPY;
SQL "ALTER DATABASE RENAME ’/ul/ld$L' TO ’^dgroupV ” ;
# -Repeat RENAME command f&r all online redo log members
ALTER DATABASE OPEN RESETLOGS;
SQL hALTER DATABASE TEMPFILE * /ul/templ1 DROP";
Миграция базы данных в структуры хранения ASM
ASM-файлы недоступны через обычный интерфейс операционной системы. Единственная возможность копирования таких файлов предоставляется утилитой RMAN. Возможна ситуация, когда в табличном пространстве есть как ASM-файлы, так и отличные от них файлы. Команды RMAN позволяют перенести не ASM-файлы в дисковую группу ASM. Для перемещения всей БД в дисковую группу ASM можно выполнить следующие шаги (предполагается, что используется файл серверных параметров):
1.	Выясните имена управляющих файлов и оперативных журналов, используя представления V$CONTROLFILE и V$LOGFILE.
2.	Остановите в согласованном состоянии базу данных. Измените файл серверных параметров:
-	задайте необходимые параметры для использования дисковой группы ASM в качестве целевых мест OMF-файлов.
-	удалите параметр CONTROLJFILES.
Oracle Database 10g: Administration Workshop II 12-34
Миграция базы данных в структуры хранения ASM (продолжение)
3.	Отредактируйте и выполнит командный файл RMAN, который резервирует базу данных, переключает текущие файлы данных на полученные резервы, а также переименуйте оперативные журналы. С помощью команды BACKUP AS COPY можно только переместить табличные пространства и файлы данных.
4.	Удалите старые файлы базы данных.
Примечание: если вы создаете управляющий файл как OMF-файя и используется файл серверных параметров, тогда запись с параметром инициализации CONTROL_FILES создается в файле серверных параметров.
Подробные сведения о том, как мигрировать базу данных в ASM см. в документе Oracle Database Backup and Recovery Advanced User s Guide.
$
Oracle Database 10g: Administration Workshop II 12-35
Итоги
*	Описание концепций автоматического управления пространством хранения данных (Automatic Storage Management - ASM)
•	Задание параметров инициализации для экземпляров ASM и баз данных
•	Выполнение команд SQL, в которых указаны имена АВМ<файлов
•	Запуск и остановка экземпляров ASM
•	Администрирование дисковых групп ASM
•	Использование RMAN для миграции базы данных в структуры хранения ASM
ЮИВ1ВВИВВВВ18ИИ1 - ВВВйМН МН31Г ° 1 «.^ввив
12-36 Copyright © 2006, Oracle. All rights reserved.	।
Oracle Database 10g: Administration Workshop II 12-36
Обзор практического занятия: использование ASM
•	Создание и запуск экземпляра ASM
•	Создание и использование дисковых групп ASM
•	Миграция табличного пространства в структуры хранения ASM	„
1
ORACLH
12-37 Copyright © 2006, Oracle. Ail rights reserved.
Oracle Database 10g: Administration Workshop II 12-37
Управление ресурсами
Copyright © 2006, Oracle. All rights reserved.

Рассматриваемые вопросы
> Понятия
Ресурсный план Группа потребителей Директивы плана Установление соответствия Активация плана Мониторинг
•	Конфигурирование менеджера ресурсов базы данных
•	Доступ к ресурсным планам и их создание
•	Создание групп потребителей
•	Задание директив распределения ресурсов по группам потребителей
•	Установка соответствия групп потребителей планам
•	Активация ресурсного плана
•	Мониторинг ресурсного менеджера
—.	W • • •.	«	«	- w	•			 — ". I . ..				 " _ 	..		it		 . •'	i jfV/XCL-CE
13-2	Copyright © 2006, Oracle. AH rights reserved.
Oracle Database 10g: Administration Workshop II 13*2
Обзор ресурсного менеджера базы данных
Используйте ресурсный менеджер для:
* управление смешанной рабочей нагрузкой
• управление производительностью системы
4;
Пользователи OLTP
Пользователи
F DSS
* ^Пользователи, л  .^выполняющие % W О пакетные v w задания
Менеджер ресурсов БД
Больше ресурсов
£
Меньше ресурсов
Наименьшие ресурсы
База данных

13-3 Copyright © 2006, Oracle. All rights reserved.
Обзор ресурсного менеджера базы данных
Использование менеджера ресурсов базы данных (Database Resource Manager) предоставляет АБД возможность большего контроля ресурсов по сравнению с отдельно применяемыми обычными средствами операционной системы. Если решения по управлению ресурсами принимает операционная система, могут возникнуть такие проблемы, как:
*	чрезмерные накладные расходы, вызванные переключением операционной системой контекста серверных процессов базы данных Oracle, когда число таких серверных процессов велико;
•	приостановка серверных процессов базы данных, удерживающих защелку;
•	неравномерное распределение ресурсов между всеми процессами базы данных Oracle и невозможность установления приоритетов задач;
•	невозможность управления присущими базе данных ресурсами, например, параллельным выполнением серверных процессов и активными сеансами.
Менеджер ресурсов базы данных управляет распределением ресурсов между различными сеансами. Для этого он осуществляет контроль функционирования внутри базы: данных.
Чтобы гарантировать распределение ресурсов в соответствие с целями бизнеса (директивами плана), ресурсный менеджер БД отслеживает выполнение текущих сеансов и их длительность. Используя менеджер ресурсов базы данных, администратор можез гарантировать выделение группам пользователей минимального объема ресурсов, необходимых для обработки, независимо от загрузки системы: и количества пользователей.
Oracle Database 10g: Administration Workshop II 13-3
Группа потребителей ресурсов
Ресурсный план
Определения менеджера ресурсов базы данных
Группы пользователей с похожими ресурсными потребностями
План распределения ресурсов между группами потребителей (один активный план)
Задает, как ресурс делится между группами потребителей ресурсов (на основе ограничений методов распределения)
Директивы ресурсного плана

13-4 Copyright © 2006, Oracle. All rights reserved.
Определения менеджера ресурсов базы данных
Администрирование систем с использованием менеджера ресурсов выполняется на основе ресурсных планов (resource plans), групп потребителей ресурсов (resource consumer groups) и директив ресурсного плана (resource plan directives).
Группа потребителей ресурсов
Группа потребителей ресурсов определяет совокупность пользователей со схожими требованиями по использованию ресурсов системы и базы данных.
Ресурсный план
Ресурсный план определяет, как распределяются ресурсы между различными группами потребителей ресурсов. Менеджер ресурсов базы данных также позволяет создавать планы внутри планов, называемые подпланами (suh-plans).
Методы распределения ресурсов
Методы распределения ресурсов определяют, какую политику использовать при распределении конкретного ресурса. Эти методы применяются в ресурсных планах для распределения ресурсов между группами потребителей.
Oracle Database 10g: Administration Workshop II 13-4
Использование ресурсного менеджера
• Предоставляются возможности управления ресурсами базы данных и операционной системы, например:
-	использованием CPU ,
-	числом активных сеансов
-	уровнем параллелизма
-	объемом генерируемой информации отмены
-	временем управления операций
-	временем простоя
• Кроме того, можно задавать критерий автоматического переключения сеанса из одной группы потребителей в другую.
ло-о_______________________________Copyright 200Ь, Oracle. Ail rights reserved.
Использование ресурсного менеджера
Менеджер ресурсов базы данных предоставляет несколько способов распределения ресурсов.
•	Метод распределения CPU. Позволяет задать распределение ресурсов CPU между группами потребителей ресурсов и подпланами.
*	Ограничение на уровень параллелизма. Позволяет контролировать максимальный уровень параллелизма любой операции группы потребителей ресурсов.
•	Пул активных сеансов и очередь к этому пулу. Предоставляется возможность ограничения количества одновременных активных сеансов для группы потребителей ресурсов или подплана. Когда достигается максимально допустимое количество сеансов для группы, новые сеансы помешаются в очередь, в которой они ждут завершения активного сеанса. Время пребыванию сеанса в очереди можно также ограничить и при его превышении сеанс завершается с ошибкой.
•	Пул отмены (Undo Pool). Позволяет контролировать совокупный объем информации отмены, который может быть сгенерирован сеансами группы потребителей или подплана. Koi да общее пространство отмены превышает величину, заданную директивой UNDO_POOL. запрещается выполнение последующих команд INSERT, UPDATE и DELETE, пока пространство отмены не будег освобождено другим сеансом этой же группы или квота пула отмены будет увеличена для группы потребителей. Когда при выполнении команды DML превышается групповая квота, операция аварийно завершается и возвращается сообщение об ошибке. Однако запросы разрешены, даже если группа потребителей превысила пороговое значение.
Oracle Database 10g: Administration Workshop II 13-5
Использование ресурсного менеджера (продолжение)
* Ограничение на время выполнения. Делает возможным задание максимального времени выполнения, разрешаемого для любой операции. База данных Oracle использует статистики стоимостного оптимизатора для оценки длительности операции. Если предполагаемое время выполнения больше максимально допустимого (MAXJEST__EXECTIME), возвращается сообщение об ошибке и операция не запускается. В случае, когда на одну группу потребителей ресурсов ссылается несколько директив плана, возможно наличие нескольких определений параметра MAX__ESTIMATED _ЕХЕС__Т1МЕ. Менеджер ресурсов базы данных выберет наиболее ограничивающее из всех входных значений.
• Ограничение на время простоя (Idle Time Limit). Позволяет задать значение времени (MAX_IDLE_TIME), в течение которого сеанс хможет простаивать и по истечении которого он будет аварийно завершен. Дополнительно можно задать ограничение, на основании которого ресурсный менеджер аварийно завершает только такие сеансы, которые блокирую!' другие сеансы (MAX__I DLE _Т IME_BLOCKER).
Oracle Database 10g: Administration Workshop II 13-6
Доступ к ресурсным планам
Enterprise Manager и PL/SQL
Resource Plans
РШаигее Manager
Monitors
Consumer Groups
Consumer Group Mappings
Plans
Понятия
> Ресурсный план Группа потребителей Директивы плана Установление соответствия Активация плана Мониторинг
Object Type) Resource Plan
Search
Select an object type and optionally enter an object nafne to filter the data that is displayed in your results set
Object Name 5

.GO.)
By	Uie ?e =sri>: returns aii uppercase rndfches yegmng A’ghthe slung y<?y ersered То run ап е- act or
oase-sens^e siskh. dcubte auotethe se^ch string You can use tne symbol (%= in s ecuhte gucted -arng.
13-7
G INTERN^HAJM
О INTERNAL QUIESCE - О SYSTEM PLAN
Edit Jx	Delete J ActiQtwl Activate
И» «™а,вНш>	'-**"*!•
Default Plan
Plan to internally quiesi^£^^_^
Plan to give system sessions priority
Create Like
Deactivate
Generate DDL
Copyright © 2006.. Oracle. All rights reserved.
; create J Co J
Доступ к ресурсным планам
Использование Enterprise Manager
Enterprise Manager Database Control Console предоставляет простой в использовании графический интерфейс для конфигурирования ресурсных планов, групп потребителей ресурсов и т.д.
Использование пакета DBMSSJRESOURCEJMANAGER
Пакет PL/SQL содержит много процедур. В их число, например, входят следующие:
•	CREATE^PLAN; присвоение имени ресурсному плану и задание для него методов распределения;
•	UPDATE^PLAN; изменение комментария к ресурсному плану;
•	DELETE_PLAN; удаление ресурсного плана и всех его директив.
Oracle Database 10g: Administration Workshop II 13-7
Пример: SYSTEM_PLAN
Группа потребителей ресурсов	Методы распределения		
	CPUJP1	CPUJ?2	CPUJP3
SYSJ3ROOT	100%	0%	0%
OTHERjGROUPS	0%	100%	0%
LOWjGROUP	0%	0%	100%
>3-8 Copyright © 2006, Oracle. All rights reserved.
Пример: SYSTEMJPLAN
SYSTEM_PLAN - один планов, предоставляемых по умолчанию. Этот план содержит директивы для следующих групп потребителей:
*	SYS_~GROUP - исходная группа потребителей для пользователей SYS и SYSTEM.
•	OTHERJ3ROUPS; используется для всех сеансов таких групп потребителей, которые не заданы в активном ресурсном плане. В любом активном плане должна быть директива, включающая в него группу OTHER_GROUPS.
•	L0WM3R0UP - труппа, позволяющая включать в план SYSTEM__PLAN сеансы с меньшим приоритетом по сравнению с труппами SYS_GROUP и OTHER_GROUPS. Вы должны определить пользователей, включаемых в эту группу. Первоначально с ней не связан ни один пользователь. Отметим, что всем (PUBLIC) предоставлена привилегия переключения (switch) в эту группу.
Исходная группа потребителей для пользователя - это группа, которой первоначально принадлежат любые создаваемые сеансы данного пользователя. Если для пользователя не установлена такая группа, он автоматически становится членом группы DEFAULT_CONSUMER_ GROUP.
План SYSTEM PLAN и связанные с ним группы потребителей ресурсов могут быть использованы или не использованы. Этот план можно рассматривать в качестве прототипа для новых ресурсных планов. Его также можно модифицировать или удалить. Данный план, поставляемый с базой данных, может использоваться, когда он подходит для пользовательской среды.
Oracle Database 10g: Administration Workshop II 13-8
Создание нового ресурсного плана
t s jbass r tan >	<• и -	•	 Create Resource Plan
Create Resource Plan
Logged и? Аз S'
General j Parallelism Session Pool Undo Pool Maximum Execution Ums Consume? G;oup Switching Idl? Time Plan pAY^PLAhj .........................™	T	1
Description Resource plan for weekday) use	1	\
□Activate this plan
| Й Automatic Rai?sStchfog Enabled[
Selected Groups/Subplans
Modify
OTHERJ3RC
S®MSJ№SOTOCE_8№®feER. SWITCH_PLAN
(₽LAN__NAME «> 'DAYJPLAN' ,
SID => >ORCL’,
Copyright © 2006, Oracle. Ай rights reserved.
Создание нового ресурсного плана
Для того, чтобы создать новый план, необходимо сконфигурировать объекты ресурсного менеджера.
Перейдите следующим образом: Administration > Plans. Затем щелкните на кнопке Create или выберите Create Like в выпадающем списке поля Actions и щелкните на кнопке Go.
Планировщик может автоматически поменять план ресурсного менеджера в рамках окна планировщика. Снимите установленную по умолчанию отметку “Automatic Plan Switching Enabled,” когда это неприемлемо.
Дополнительные сведения о планировщике см. в уроке: “Автоматизация выполнения задач с помощью планировщика”.
Oracle Database 10g: Administration Workshop II 13-9
Создание групп потребителей
Понятия Ресурсный план
> Группа потребителей Директивы плана Установление соответствия Активация плана Мониторинг
_______
Ф AUTO WK CONSUMER ,GROUP f- DEFAULT CONSUMER GROUP
System maintenance task consumer group
consumer group fer users nut assigned tc any group
Group of iow priority sessions
Group of system sessions
ND YES
NO YES
LOW GROUP
SYS GROUP
Create Resource Consumer Group
(showSQL) k Cancel) ,QKJ
General; Roles
Selected Users
No items fo :
DBMSJRESOTOCEJW4AGER. CREATE CONSUMER' GROUP => 'APPUSER",
* Consumer Group APPUSER
Description
Scheduling Policy Round Robin
Copyright © 2006, Oracle. All nghts reserved.

Создание групп потребителей
Для управления группой потребителей ресурсов предназначена страница, на которую можно перейдите следующим образом: Administration > Resource Consumer Groups. Вы можете создать новую группу потребителей ресурсов или выбрать группу из выведенного перечня, а затем действие в выпадающем списке поля Actions.
Страница Resource Consumer Groups используется для создания или редактирования группы потребителей, а также ее описания. Кроме того, можно добавить или удалить пользователей из группы, отредактировав выводимый список Selected Users.
Страница General, содержащая общие свойства (приведена на слайде) - одна из двух страниц, доступных с помощью закладок на страницах Create Resource Consumer Group и Edit Resource Consumer Group. Вы можете задать и отредактировать список ролей, связанных с определенной группой потребителей, перемещая и удаляя роли из перечня Selected Roles.
При создании группы потребителей ресурсов указывается метод выделения ресурсов CPU сеансам этой группы. По умолчанию действует метод ROUND__ROBIN (‘по кругу’ всем поровну), гарантирующий равноправное выполнение сеансов пользователей 1руппы. Метод Run to Completion в первую очередь предполагает завершение выполнения сеансов с наибольшим временем нахождения в активном состоянии. Выбрать метод распределения времени CPU можно с помощью опции CPDjMTH пакетной процедуры DBMS _RE SOURCE__MANAGER. CREATE CONSUMERJSROUP.
Oracle Database 10g: Administration Workshop II 13-10
Включение пользователей в группы потребителей ресурсов
л.г* - t » »с- » s 2'- > Edit User. PM	Logg&J m As S7S
EdltUser PM
Actions Create Like > 4 Go J	Show SQL j Revert J \ Appix)
hik System Prmie^ €Ve^ ^tr^h* CwsdBter Groins Switching Privileges Bh5' Us^e Resource consumer groups are groups of users, or sessions, that are grouped together based on their processing needs. If a user is granted permission to switch to a particular consumer group, then that user can switch their current consumer group to the new consumer group
4Edit List J ЙШШЯЛИЙ
APPUSEF?	□
LQW_GROUP	□	|
SYS GROUP	□
Default Consumer Group None
13-11
Copyright © 2006. Oracle. All rights reserved.
Включение пользователей в группы потребителей ресурсов
Перед началом использования менеджера ресурсов базы данных пользователи должны быть включены в группы потребителей. Назначенная по умолчанию группа потребителей для пользователя - это такая группа, к которой первоначально принадлежит любой сеанс, создаваемый этим пользователем. Если такая группа не установлена для пользователя, по умолчанию начальной группой потребителей считается DEFAULT__CONSUMER__GROUP. Необходимо напрямую предоставить пользователю или всем (PUBLIC) привилегию для замены (switch) начальной группы потребителей на другую группу перед тем, как эту группу можно будет назначить пользователю в качестве группы по умолчанию. Привилегия для замены группы не может быть предоставлена пользователю через роль.
DBMS__RESOURCE__MANAGER. SET_INITIAL__CONSUMER__GROUP ( user => 'PM1, consumer_group ~> ’APPUSER’ );
Пакет DBMS JRESOURCEJMANAGER__PRIVS содержит процедуру назначения группы потребителей пользователям, с помощью которой пользователю предоставляется привилегия для смены (switch) его собственной текущей группы потребителей
DBMS„RESOURCE_MANAGER_PRI VS . GRANT_SWITCH_CONSUMER__GROUP ( grantee__name => ’PM”, consumerjjroup => ’APPUSER*, grant_option -> FALSE ) ;
Для любой из этих процедур не требуется использование отложенной области (pending area).
Oracle Database 10g: Administration Workshop II 13-11
Задание директив ресурсного плана
Понятия Ресурсный план Группа потребителей
> Директивы плана Установление соответствия Активация плана Мониторинг
Edit Resource Ran: SYSTEM^PLAN
Show SQL J Re\|
General \ Parafeiisrn gessten poo5- Undo Po& Maxawn Execution Г-me Consume G;uup Switching idletime
Plan SYSTEM „PLAN
Description plan Io give system sessions priority
LJ Activate this plan
Й Automatic Plan Switching Enabled
Selected Groups/Subplans
иа>л „j „...........
LOW_GROUP P ;P	pGO	.0	0	';0
OTHER_GROUPSЮ	~ ..100"	ф ~	J]D	p	lET
SYS GROUP	100	>’0 O' p p
Значения cpujmth
Задание директив ресурсного плана
Если для создания ресурсного плана или групп потребителей не используется ЕМ, тогда сначала необходимо создать отложенную область. Это обязательная рабочая область, позволяющая проводить изменения в создаваемых объектах менеджера ресурсов, а штем их проверить перед началом действия.
В Enterprise Manager для задания директив плана используется несколько страниц.
1.	На странице General группы потребителей связываются с планами. На этой странице задается значение CPU_MTH, определяющее использование времени CPU каждой группой потребителей или подпланом.
2.	Страница с закладкой Parallelism позволяет задать ограничение для уровня параллелизма любых операций внутри группы потребителей.
3.	Вы можете контролировать максимальное количество одновременных активных сеансов внутри группы потребителей (закладка Session Pool). Сеанс, в котором параллельно выполняется операция, рассматривается как один активный сеанс.
4.	Можно установить ограничение на максимальный совокупный объем генерируемой информации отмены для группы потребителей (закладка Undo Pool).
5.	Можно задать ограничение на максимальное время выполнения операции (закладка Maximum Execution Time).
6.	Можно осуществлять контроль использования ресурсов, задав для этого критерий, по которому производится автоматическое переключение сеансов в другую группу потребителей (закладка Consumer Group Switching).
7.	Можно задать ограничение на период времени, в течение которого сеанс простаивает, после чего он будет аварийно завершен. Дополнительно можно установить ограничение на время, в течение которого сеанс блокирует другие сеансы (закладка Idle Time).
Примечание: представленные здесь возможности будут подробно рассмотрены на последующих слайдах с указанием номеров приведенных здесь закладок (в виде Закладка н).
Oracle Database 10g: Administration Workshop II 13-12
Методы распределения ресурсов в плане
Параметр	Возможные значения
CPUJMTH	EMPHASIS
	RATIO
PARALLELJDEGREEJLIMITJMTH 8	PARALLEL JDEGREE_ LIMIT JABSOLUTE
ACTIVE_SESSJPOOL_MTH	ACTIVEJSESSJPOOL JABSOLUTE
QUEUINGJMTH	FIFOJTIMEOUT
й			Ik				i Г		
13-13	Copyright О 2006, Oracle. All rights reserved.	i		
Методы распределения ресурсов в плане
Эти методы определяют, как менеджер ресурсов базы данных распределяет конкретный ресурс для группы потребителей или плана. При создании ресурсного плана можно задавать ограничения с помощью следующих методов распределения ресурсов.
Существует два способа задания распределения времени CPU с помощью параметра CPUJMTH:
•	EMPHASIS ~ метод по умолчанию, используемый для многоуровневых планов, в которых задаются проценты использования ресурсов CPU, распределяемых между группами потребителей.
•	RATIO (на основе заданной пропорции) ~ метод, применимый для одноуровневых планов, в которых используются показатели, пропорционально которым распределяется время CPU.
PARALLEL DEGREE- метод ограничения максимального уровня параллелизма операций. Этот параметр разрешено использовать только в директивах, которые ссылаются на группы потребителей ресурсов, но не на подпланы. Возможно применение абсолютного метода, с помощью которого указывается количество процессов, которое может быть задано для операции. Если в нескольких директивах плана есть ссылки на один и тот же подплан или группу потребителей, степень параллелизма для такого подплана или группы потребителей будет ограничена минимальной величиной всех входных значений.
ACTIVE_SESS_POOLJMTH - метод ограничения количества активных сеансов. При превышении заданного ограничения все оставшиеся сеансы неактивны и ждут в очереди. Единственно возможный и действующий по умолчанию метод -• active_ sess_pcol_absolute. QUEUINGJHTH - метод управления порядком, в котором будут выполняться находящиеся в очереди неактивные сеансы. Единственно возможный и действующий по умолчанию метод -FIFO TIMEOUT.
Oracle Database 10g: Administration Workshop II 13*13
Сравнение методов emphasis и ratio
EMPHASIS	RATIO
Задаваемое значение определяет максимальный процент использования ресурсов CPU группой потребителей.	Задаваемое числовое значение отражает пропорцию, по которой ресурсы CPU выделяются группе потребителей.
Ресурсы могут быть распределены максимально на 8 различных уровнях.	Значения могут быть заданы только для одного уровня.
Сумма процентных значений для данного уровня должна быть меньше либо равна 100.	Необходимо указывать только целые значения, но нет ограничений на сумму значений.
Значение по умолчанию - NULL.	Значение по умолчанию - NULL.
Й?й	8	й» Ййй	йййййййй	Ййй ЙЙййй г ।	Ж DMT . Г		 Ий	b  «’ ORACL& в	Й,	’ "CT',rr	
1	13-14	— Copyright © 2006, Oracle. Ail rights reserved.	=	
Сравнение методов emphasis и ratio
Метод распределение EMPHASIS определяет степень важности сеансов различных групп потребителей в ресурсном плане. Для распределения времени CPU используются уровни от 1 до 8, причем уровень 1 имеет наивысший приоритет. Устанавливается процент времени CPU, выделяемый каждой группе потребления на каждом уровне.
Следующие правила применяются для метода выделения ресурсов на основе степени важности (EMPHASIS) :
•	Ресурсы CPU распределяются на каждом уровне на основе заданных процентных значений. Значение, заданное для группы потребителей, определяет максимальный процент времени CPU, которым можез воспользоваться группа потребителей на данном уровня.
•	Потребляемые ресурсы, не используемые на данном уровне, передаются на следующий уровень. Например, если группы потребителей на уровне I используют только 60% доступных ресурсов, остальные 40% становятся доступными для групп потребителей на уровне 2.
•	Сумма процентных значений для данного уровня должна быть меньше либо равна 100.
•	Если для любого уровня нет явно заданных директив плана, по умолчанию выделяется 0% для всех подпланов или групп потребителей.
•	Метод распределения ресурсов EMPHASIS устраняет проблемы зависания процессов, когда потребителям с более низкими приоритетами не предоставляется возможность выполнения заданий.
Oracle Database 10g: Administration Workshop II 13-14
Сравнение методов emphasis и ratio (продолжение)
Политика RATIO (на основе заданной пропорции) ~~ это одноуровневый метод распределения ресурсов CPU. Вместо процентных значений задаются числовые величины, отражающие пропорцию. в соответствие с которой ресурсы CPU предоставляются группе потребителей. Например, пусть имеется три группы потребителей OLTP_USERS, DSSUSERS и В АТС HJJSERS, и для них заданы следующие показатели пропорциональности:
•	OLTPJJSERS: 4
«	DSSJJSERS: 3
•	BATCHJQSERS: 2
.	OTHER: 1
Это означает то же самое, что пользователям группы OLTP__USERS следует предоставить 40% ресурсов, DSS_USERS - 30%, BATCH_USER| ~ 20%, а всем остальным группам (OTHER) - 10% доступных ресурсов.
Если никто из групп OTHER и DSS__USERS не использует в настоящий момент ресурсы CPU, тогда группе потребителей OLTPJUSERS будет выделяться две трети доступных ресурсов и группе потребителей BATCH__USERS.оставшаяся треть ресурсов.
Oracle Database 10g: Administration Workshop II 13*15
Механизм пула активных сеансов
Пул активных сеансов позволяет администратору базы данных управлять максимальным количеством одновременных активных сеансов, приходящимся на одну группу потребителей. С помощью этой функциональной возможности косвенно контролируется объем ресурсов, используемый группой потребителей, так как он пропорционален количеству активных сеансов. Использование пула активных сеансов может помочь сократить число серверных процессов, которые занимают системные ресурсы. В результате устраняется дополнительный страничный обмен, свопинг, а также снижается расходование других ресурсов (например, оперативной памяти). Это происходит, потому что система препятствует одновременному выполнения слишком большого числа заданий. После того, как пул заполняется активными сеансами, менеджер ресурсов ставит последующие сеансы, пытающиеся стать активными, в очередь, в которой они находятся, пока другие активные сеансы не завершатся или престанут быть активными. Активный сеанс ~ это такой сеанс, в котором выполняется транзакция, запрос или параллельная операция. Отдельные параллельные подчиненные процессы не рассматриваются в качестве сеансов. При подсчете активных сеансов вся параллельная операция учитывается как один сеанс.
Для каждой группы потребителей ресурсов существует только одна очередь, обслуживаемая по алгоритму первым прибыл, первым обслужен (first in, first out-FIFO) c таймаутом. Очередь реализована в виде структуры в оперативной памяти и из нее нельзя прямо запросить данные.
Oracle Database 10g: Administration Workshop II 13-16
Настройка пула активных сеансов
Database instance	iw > Ре^в-.е Plans * Edit Resource Plan: SYSTEM^PLAN	Lugueii in As SYS
Edit Resource Plan: SYSTEM_PLAN
Actions = Create Like	xCo J	(ShwSQLJ Re vert J
Genera И flenin Session P&<Mi l^SlzW Уе/н » «m l- :* ' f	L <и;гч t j cieJlSf:
Specify a limit on the maximum number of concurrently active sessronf for a consumer group. All other sessions will wait in an
acttvatien queue jCkoap APPUSER	jUIMLIMITED	UNLIMITED |
LOWjGROUP OTHERJ3ROUPS S¥S„GROUP	iUMllMiTED	|	TiNLIMITED	| lUNLIMITED	.UNLIMITED iUNUMITED	i	UNUMITED	it 				 	

13-17
Copyright © 200b, Oracle. All rights reserved.
Настройка пула активных сеансов
С помощью Enterprise Manager можно просто сконфигурировать установочные параметры пула активных сеансов для ресурсного плана.
Oracle Database 10g: Administration Workshop II 13-17
Заклаяка5| Максимальное расчетное время ....выполнения
•	Менеджер ресурсов базы данных может упреждающе оценивать время выполнения операции.
•	DBA предоставляется возможность задания на уровне группы потребителей максимального расчетного времени выполнения операции.
•	Операция не будет запущена, если оценка времени выполнения будет больше max_est_exec_time (ORA-07455).
•	Преимущество этой возможности - устранение чрезвычайно длительных заданий, использующих слишком много системных ресурсов.
•	По умолчанию значение равно unlimited.

13-18	 Copyright © 2006, Oracle. AH rights reserved.
Максимальное расчетное время выполнения
DBA в любой момент может определить максимальное расчетное время любой операции, задав в директиве ресурсного плана параметр MAX__ESTIMATEDJEXEC__TIME. После установки этого параметра менеджер ресурсов базы данных начинает оценивать время выполнения любого задания. Если расчетная продолжительность операции превышает MAX_ESTJEXEC__TIME, операция не начинается и возвращается ошибка ORA-07455. В результате запрещается выполнение чрезвычайно длительных заданий, использующих слитком много системных ресурсов.
В случае, когда для одной группы потребителей ресурсов задано несколько директив плана с параметром MAX_EST__EXEC__TIME, действует наиболее ограничивающее из всех значений этого параметра.
Оцениваемое расчетное время для данной операции основывается на статистиках, собранных для оптимизатора по стоимости.
Oracle Database 10g: Administration Workshop II 13-18
Закладка 6
Конфигурирование переключения группы потребителей
£ йзЬэ '' f/r orl circle com > Pc^durce Г'1зп^ * Resource Plan. SYSTEM_PLAN	Leaded =?= As SYS
Edit Resource Ran: SYSTeSTplAN
Actions Create Like Ф Cfo J	.Shew SQLj Revert J Apply j
। n f-ara <	.“Cv*	/t' у uteri <rc Consumer Gr^up Switdhrrsg a r
Specify the maximum time that a session can execute in a consumer group before a selected action rs taken To select the action taker-, you may choose to kill the session, or to cancel the current SQL operation, or to switch to another consumer group. If you choose to switch to another consumer group, spec ify whether to switch back at the end of the tail by using the ’switch back to original group after call’ checkbox Choosing to switch back to the original group after a call is usAI for 3-tier applications where the middle tier server is using session pooling.
nrigiirMJ lit	_............. .....................МЙМ
APPUSER ^UNLIMITED I □ ч......................................................................  	n
LOW„GROUP 'UNLIMITED
GTHER^GROUPS-UNLIMITED
SYS.GROUP UNLIMITED
. ii Kill This Session
□ i Cancel SQL
; Switch to Group APPUSER
u j Switch to Group AUTO_TASk^CONSUMER„GROUP U»do "& Switch to Group BATCH_GRCUP
....i Switch to Group DEFAULT J QNSUMERGROUP
Ц L] □ □
tcNng : Mi&.Time
|	13-19
Switch to Group L0W_GR0UP ; Switch to Group OTHER_GROUPS ’Switch to GroucSYS GROUP
OPACI
Copyright © 2006, Oracle. All rights reserved.I
Конфигурирование переключения группы потребителей
ЕМ Database Control Console предоставляет графический интерфейс для конфигурирования автоматического переключения группы. Такие действия можно выполнять, когда создается новый или редактируется существующий ресурсный план
Oracle Database 10g: Administration Workshop II 13-19
Возврат в исходную группу потребителей при завершении вызова
ORACLE Enterprise	Ito
stah&se Cft *ii si
» -о-	E№3F*5P! су! fcsacte troro » ₽£= :
> Create Restores Plan
Create Resource Han
* ,	*	। j <	1 z z zz L. 1	<4'U rw*	Sw&his у i « >
Specify the roujamum tane that s session can execute in a солжет group before a selected ectfonis taken. To select the action taken, you rosy chocs® to kill the session, or to cancel the current SQL operation, or to switch to another consumer group. if you choose to switch to another consyroer group, specify whether to switch back at the end of the cal! b y using the'Wish. back to original group after call checkbox. Choosing To switch back to the Original groins after a call is useful for 34<er applfcatfons where the rniddfe tier server is using session pooling.
S	.’J’J "'""
Ш  w tem......
DSS GROUP	ей	I kJ I I	О
к—.........	I J
LONGRWtGBOUP &ММ	U iwnTteSess.®	°
OTHER GROUPS iUMWEC h □ Cancel SQL	D
~	-	... Switch to Group DEFAULT.CONSUMER GROUP
’ s~ £	1 '* h t ' ‘
; Switch to Group LOWSfcUUR i Switch to Group GTHER_GROUPS •a^oh to Group STS-GROUF 
13-20
Copyright © 2006, Oracle. АН tights reserved.
Возврат в исходную группу потребителей при завершении вызова
Можно задать возврат сеанса в исходную группу потребителей при завершении вызова верхнего уровня (top call). Для этого необходимо отметить поле “Switch back to original group after call?” в окне Create Resource Plan или Edit Resource Plan. В результате сеанс будет возвращаться в группу, которой он принадлежал сразу после установления соединения. Вызов верхнего уровня определяется либо как обрабатываемый целиком блок PL/SQL, либо как команды SQL, передаваемые клиентом для выполнения при отдельном вызове.
Параметр SWITCH__TIME__IN__CALL наиболее полезен при использовании пула сеансов на сервере промежуточного уровня. В этом случае на промежуточном уровне делается попытка использовать сеанс, установленный после одного пользовательского вызова для обработки вызова другого конечного пользователя. В результате границы обработки действительно совпадают с вызовами, и действия предыдущего конечного пользователя не должны оказывать влияния на следующего конечного пользователя.
Oracle Database 10g: Administration Workshop II 13-20
Возврат в исходную группу потребителей при завершении вызова
Вызов 1
Copyright © 2006, Oracle. Alt rights reserved.
13-21
Возврат в исходную потребителей при завершении вызова (продолжение)
Например, пусть менеджер ресурсов при подсоединении пользователя на основе его исходной группы потребителей (initial consumer group) размещает сеанс в группе DSS__GROUP. После этого пользователь выполняет запрос и параметр SWITCH_TIME__IN__CALL задает интервал времени (в секундах) перед переключением сеанса пользователя в группу, определяемую параметром SWITCH__GROUP. После завершения вызова верхнего уровня ресурсный менеджер автоматически переводит пользователя обратно в первоначальную группу потребителей.
Примечание
Невозможно задать в одной директиве оба параметра SW1TCH__TIME__IN_CALL и SWITCHJTIME. Параметр SWITCHJTIME главным образом предназначен для клиент-серверных приложений.
Oracle Database 10g: Administration Workshop II 13-21
Закладка 7
Настройка тайм-аута
СЖАСХе ЕеЙда O-
£DP^::‘i6P:	&ГЗО>'.
Edit Resource Plan: DA¥_PLAN
= Edit Resource Plan: DA¥_PLAM
Эег м 4 I jl. If *! 0»xj-gei Мадпк* к E. чМ ЙС 1 XJLJ P '4ft <* 1»у <Ц / >t <
Plan 1MVJPLAN	I——
Description lUmit Idle Time Example	I
DSSJ3ROUP
OTHEPjSROUPS
W
СМУТЕН
Гзй'
UNLMTEp
OTHt
GROUP OR SUBP1AM => ^DSS GROUP'j
•9?*	*	' '	*
MMC_XDIJSjriME => 600
13-22
Copyright €) 2006; Oracle. All rights reserved.
Настройка тайм-аута
Для задания в ресурсном плане максимальных тайм-аутов используется закладка Idle Time. В столбцах "Max Idle Time (sec)’* и "Max Idle Time if Blocking Another Session (sec)” указываются значения параметров MAX__IDLE__TIME и MAX_IDLE_BLOCKER__TIME процедуры DBMS__RESOURCE_MANAGER. CREATE_PLAN__DIRECTIVE. Оба значения задаются в секундах.
ДирективаMAX__IDLE_TIME определяет максимальное время в секундах, в течение которого сеанс может не выполняться или находиться в ожидании ввода-вывода. Если сеанс превышает заданное ограничение, фоновый процесс PMON принудительно завершает сеанс и и удаляет все его структуры. Также имеется возможность указать отдельное ограничение на время, в течение которого простаивающий сеанс блокирует другой сеанс. Для этого используется директива MAX__IDLE_BLOCKER__TIME, определяющая в секундах допустимое максимальное время блокирования простаивающим сеансом другого сеанса. Значение параметра времени простоя по умолчанию - NULL, что означает отсутствие ограничения. То же самое можно задать явно, установив значение UNLIMITED. Эти директивы предоставляют более дифференцированный контроль времени простоя по сравнению с профилями, в которых нельзя разделить блокирующие и неблокирующие сеансы.
В приведенном выше примере процесс PMON принудительно завершает сеансы, которые простаивают более 600 секунд, а также сеансы, которые простаивают и блокируют другие сеансы дольше 300 секунд. PMON проверяет эти ограничения каждую минуту. При превышении одного из эти ограничений PMON принудительно завершает сеанс и очищает все его ресурсы.
Oracle Database 10g: Administration Workshop II 13-22
Установление соответствия группам потребителей ресурсов
Понятия
Ресурсный план Группа потребителей Директивы плана Установление соответствия Активация плана Мониторинг
Oenetsl
G. nersi	«
® : 's7s™gr0Up
ОРАССв' Enfetprist? Manager 16g
* s ri 'ке ГР <f f. ;?»e ' Resource Ccnsaree? Grew: Mapping Resource Consumer Group Mapping
Configure the Resource.Men'agerie automatically assign consumer groups to sestons
.SYSTEM pSYsf"
Genery йкййез; <
Reorder the list ef mappmgs to cd priorities. MsppfSk/
Amihwte
Q SYSjGROUP |7^^M°Zwiier' Rowj|
13-23
Copyright © 2006, Oracle. Ait rights reserved.
User Мер
Clfent PS User Map
;Semce, Module, andAcncn ; Semes and Module Module and Adieu Module Settee Ofacle Use?
Client Program Client OS User Client Machine
Установление соответствия группам потребителей ресурсов
Ресурсный менеджер можно использовать для автоматического включения сеансов в определенные группы потребителей. Для этого необходимо настроить соответствие между атрибутами сеансов и группами потребителей. Дополнительно можно настроить приоритеты, на основе которых устанавливается соответствие в конфликтных ситуациях. Существует два типа атрибутов сеанса: атрибуты входа в систему (login attributes) и атрибуты выполнения {run-time attributes). Атрибуты входа в систему (последние пять атрибутов в списке Attribute Mappings, показанном на слайде) имеют значение только во время установления соединения, когда ресурсный менеджер определяет первоначальную группу потребителей сеанса. Напротив, уже установленный сеанс может быть позднее переведен в другую группу потребителей на основе атрибутов выполнения сеанса..
В Database Control перейдите по закладке с домашней страницы БД на страницу Administration, а затем щелкните на ссылке Resource Consumer Group Mappings в секции Resource Manager. Для каждого из атрибутов задайте соответствие между сеансом (например, для имени пользователя) и группой потребителей. Добавьте или удалите строки для требуемых групп потребителей и соответствующих пользователей, клиентов и служб. Используя закладку Priorities, можно изменить приоритеты, в соответствие с которыми устраняются конфликты при установлении соответствия атрибутов сеанса и группы потребителей. Атрибуты располагаются в порядке убывания приоритетов. Наивысший приоритет у самого верхнего атрибута. Этот порядок можно изменить с помощью стрелок, выделенных на слайде.
Используя ЕМ Database Control, можно просмотреть код SQL, генерируемый для выполнения ваших действий. Просмотр кода выполняется по кнопке Show SQL.
Oracle Database 10g: Administration Workshop II 13-23
Установление соответствия группам потребителей ресурсов (продолжение)
Resource Consumer Group Mapping
General I Priorities
(ShowSQl) Revert) 4 Apply)
Configure the Resource Manager to automatically assign consumer groups to sessions by providing mappings between session attributes and consumer groups.
Oracle User Map
Remove)
0 ;SrS„GROUF......
О j^sbROUP
4 Add Another Row)
Client OS User Map
Qmsumei Сниф |No items found
Add Another Row)
Client Program Map
No items found
Add Another Row)
Client Machine Map
"Select Gw- |
No items found
Add Anmtier Row)
(hade iber Isys
	
	
•%Л	(SYSTEM	I
I
Client MsdhhW"
Service Map
;No items found
_ Add Anther Row)
Module Map
Select
No items found
i .Add Another Row J
Module and Action Map
S ere st	me г G roup
fMo items found
Add Another Row)
Swiee

Oracle Database 10g: Administration Workshop II 13-24
экземпляра
Активация ресурсного плана Ресурсный план
Группа потребителей Директивы плана Установление соответствия
> Активация плана Мониторинг
IfeH'ase. огсЦй.<»зс& г-лл > Resource Pfens Resource Plans
Logged л Д? $¥£
Search
Name Г	3cg)
te ns SH«rscteiitfch Sei-rch OF* J ГШ fe£5S« 5«":?ifW	Wfr'. ff:4 $4&u< orfirife. life л«1бс »si	sfM t-4
m gsc-ttd sNrcfi
Results
Create
EaitI View! Delete Jettons RSE
Activate
Г ЕШР8 PLAN Г INTERNAL PLAN £ IMMbLJISgg «1Ж1.
r MVDB PLAN SYSTEM PLAN
„Ш»... ЩЙ., L__ ... Creetellke
Deachvale
Rexrooce plan for the bug « Generate DDL
Default Plan
Pfen to internally quiesce system
for глэЯ cfeliwrv operations
ACTIVE Pfenning for mwig the post office database
Plan to give system sessions priority
Copyright © 2006, Oracle. AH rights reserved.
Активация ресурсного плана для экземпляра
Для управления ресурсными планами можно воспользоваться страницей Resource Plans инструментального средства Enterprise Manager. Чтобы сделать план активным, выберите требуемый план и значение Activate в выпадающем списке поля Actions, а затем щелкните на кнопке Go. В результате выбранный вами план становится текущим планом верхнего уровня для экземпляра.
Использование параметра инициализации RESOURCEJMANAGER_FLAN
Используемый экземпляром план может быть определен с помощью параметра инициализации базы данных RESOURCE__MANAGER__PLAN. Этот параметр содержит план верхнего уровня (top plan), который будет использоваться экземпляром. Если никакой план не определен, менеджер ресурсов базы данных не запускается для экземпляра
Вы можете привести в действие. отключить или изменить текущий план верхнего уровня по команде ALTER SYSTEM. Если для экземпляра меняется план распределения ресурсов, эти изменения вступают в силу немедленно.
В случае, когда в базе данных не определен план, указываемый в параметре, база данных не может открыться и возвращается следующее сообщение об ошибке:
ORA-07452: specified resource manager plan does not exist in the data dictionary
При возникновении этой ошибки экземпляр следует остановить, задать для параметра корректное значение и повторить запуск экземпляра.
Oracle Database 10g: Administration Workshop II 13-25
Информация менеджера ресурсов базы данных
Имя представления	Информация
DBA_RSRCJPLANS	планы и статус
DBA_RSRC_RIAN_DIRECTIVES	, директивы планов
DBA_RSRC_CONSUMER_GROUPS	: группы потребителей
DBA_RSRC_CONSUMER_GROUP_PRIVS	| пользователи/роли
DBA_RSRC_GROUP_MAPFINGS	I соответствие группам |потребителей
DBA_RSRC_MARPING_PRIORITY	= Приоритеты соответствия
DBAJJSERS	Столбец ; initial_rsrc_ consumer^group
DBA_RSRCJMANAGER_SYSTEM_PRIVS	I пользователи/роли
|13-26_____________________________________Copyright © 2006. Oracle. Alt rights reserved.

Информация менеджера ресурсов базы данных
В словаре данных имеется несколько новых представлений, которые позволяют проверить планы распределения ресурсов, группы потребителей ресурсов и директивы планов, определенные в экземпляре. В этом разделе обсуждается некоторая полезная информация, которую можно получить из этих представлений. Более детальные сведения о содержимом каждого из этих представлений см. в документе Oracle Database Reference.
Информацию о планах распределения ресурсов, определенных в базе данных, можно получить с помощью следующего запроса:
SQL> SELECT plan, num__plan__directives, status, mandatory
2 FROM dba_rsrcjplans;
PLAN	NUM_	_PLAN_DIRECTIVES	STATUS	MAN
SYSTEMJPLAN	3	ACTIVE	NO
INTERNAL _QUIESCE	2	ACTIVE	YES
INTERNAL^PLAN	1	ACTIVE	YES
BUGDB_PLAN	4	ACTIVE	NO
MAILDB__PLAN	3	ACTIVE	NO
MYDB PLAN	3	ACTIVE	NO
Статус ACTIVE означает, что план утвержден и может использоваться. Если план создан, но все еще находится в области ожидания (pending area), его статус PENDING.
Если в столбце mandatory значение YES, тогда план не может быть удален.
Oracle Database 10g: Administration Workshop II 13-26
Мониторинг менеджера ресурсов
Понятия
Ресурсный план Группа потребителей Директивы плана Установление соответствия Активация плана
> Мониторинг
CX?^SO^’tn!«l»>fee 8ч*пэк?« t3-;y	fwjg,	-хччй
?-«•% c&l4£fc.i;?Sj.£® * fiescvtceMonitors	L^?^i$,’J
Resource Monitors
Elapsed ffeHslks Start Time (nut test?!;	 Rgsgi J
Shew Elapsed Staa sties fAufomaf>саЯ> (ЭЁГёгДЗЗ -‘'-.?r^-l’<J
Act-'«a Resmsce Plan -./Vffi
AtatMbte Peseurce Plans ГнТЁ^ЧАгТкАЙ j*| '
R«-tettve CPU IXw cammed	TotgJ CPU Типе
OTHEK.SRI4!f5<S?©	С- Э^ХН-Л SOOOW 75OG0<-
CPU Wai? T-.r«j
Conaurssfer Groua s&s&stks
13-27 Copyright © 2006; Oracle, AH rights reserved.
Мониторинг менеджера ресурсов
Вы можете выполнять мониторинг функционирования менеджера ресурсов базы данных на уровне сеансов. Эта возможность интегрирована с автоматическим диагностическим монитором базы данных (ADDM).
ЕМ Database Control Console предоставляет много различных путей управления и мониторинга менеджера ресурсов. Чтобы воспользоваться этими возможностями, выберите на странице Administration в секции Resource Manager ссылку Monitors. Используйте страницу Resource Monitors для вывода трупп статистических данных и графиков, описывающих текущее состояние активного (действующего) ресурсного плана Для действующего в настоящий момент плана можно просмотреть статистики. Кроме того, можно выбрать план из списка и сделать его активным.
Таблица Consumer Group Statistics содержит статистики для групп потребителей текущего ресурсного плана
Примечание: При активизации плана на странице Resource Monitors необходимо выйти из этой страницы, а затем выбрать снова ссылку Monitors, чтобы обновить страницу и просмотреть статистики для нового активного плана.
Oracle Database 10g: Administration Workshop II 13-27
Мониторинг менеджера ресурсов
*	v$session:
столбец resource_consumer_group
показывает текущую группу для сеанса
•	v$rsrc_plan:
представление, показывающее активный план
распределения ресурсов
•	v$rsrc_consumer_group:
представление, содержащее статистики для всех активных групп

1 '	..		  	Z .Г	I
13-28	Copyright € 2006, Oracle. AH rights reserved.	
Мониторинг менеджера ресурсов (продолжение)
Использование CPU
По крайней мере три различных представления могут предоставить информацию об использовании CPU внутри базы данных Oracle:
•	V$RSRC__CONSUMER__GROUP показывает статистики использования CPU для каждой группы потребителей, если включен менеджер ресурсов базы данных Oracle. Это представление выводит данные, соответствующие текущим активным группам потребителей.
-	V$SYSSTAT показывает использование CPU всеми сеансами. Статистика ’’CPU used by this session" содержит агрегированное значение использования CPU всеми сеансами.
•	V$SESSTAT показывает использование CPU отдельными сеансами. С помощью этого представления можно определить конкретный сеанс, который в наибольшей степени использует CPU.
Представление V$RSRC_CONSUMER_GROUP
Ниже приведено краткое описание некоторых столбцов этого представления.
•	name: имя группы потребителей.
Oracle Database 10g: Administration Workshop II 13-28
Мониторинг ресурсного менеджера (продолжение)
•	actxvejsessxons: количество одновременных активных сеансов этой группы потребителей
« execu txonjwax ter s: число активных сеансов, ожидающих квант времени
•	requests: кумулятивное число запросов (requests), которые были выполнены для этой группы потребителей
cpu_waxt_txme: кумулятивное время ожидания сеансами ресурсов CPU
*	consumed_cpu_txme: кумулятивное время CPU, потребленное всеми сеансами
Нет представлений, которые непосредственно показывают очередь пула сеансов. Однако некоторая информация может быть получена из следующих представлений.
•	V$SESSION: столбец current queue__duration показывает время пребывания в очереди;, значение равно 0 (нулю), если сеанс в настоящее время не находится в очереди
« V$RSRC_CONSUMERjGROVP: столбец queue__ Length показывает для группы потребителей количество сеансов, находящихся в текущий момент времени в очереди
Oracle Database 10g: Administration Workshop II 13-29
Итоги
*	Конфигурирование менеджера ресурсов базы данных
•	Доступ к ресурсным планам и их создание
•	Создание групп потребителей
•	Задание директив распределения ресурсов по группам потребителей
•	Установка соответствия групп потребителей планам
•	Активация ресурсного плана
•	Мониторинг ресурсного менеджера
13-30 Copyright © 2006, Oracle. All rights reserved.
Oracle Database 10g: Administration Workshop li 13-30
Обзор практического занятия: использование менеджера ресурсов
•	Создание групп потребителей ресурсов
•	Задание директив распределения ресурсов CPU по группам потребителей
*	Связывание пользователей с группами потребителей ресурсов <
•	Активация ресурсного плана
•	Тестирование в SQL*Plus
•	Деактивация ресурсного плана
I
•лае
13-31 Copyright © 2006, Oracle. All nghts reserved,|
Oracle Database 10 g: Administration Workshop II 13-31
Рассматриваемые вопросы
Осн. компоненты
& шаги Расписания Цепочки заданий Расш.понятия
•	Упрощение управления задачами с помощью планировщика
•	Создание задания, программы и расписания
•	Мониторинг выполнения заданий
•	Использование расписаний, основанных на времени или событиях, для выполнения заданий планировщика
•	Использование цепочек заданий для выполнения последовательности связанных задач
•	Использование дополнительных понятий планировщика для установления приоритетов заданий
t'	..... .	.. о ..	r ...	. Д	< ORACLE ...  ,
Copyright © 2006, Oracle. All rights reserved		
Рассматриваемые вопросы
Дополнительные сведения о различных компонентах планировщика (Scheduler) и взаимосвязях между ними см. в документе Oracle Database Administrator's Guide Подробную информацию о пакете DBMS__SCHEDULER см. в документе Oracle Database PL/SQL Packages and Types Reference.
Oracle Database 10g: Administration Workshop II 14-2
Copyright © 2006, Oracle. AH rights reserved.
Упрощение управления задачами
Возможности планирования заданий необходимы при использовании многих функций базы данных. Планировать и периодически выполнять задания требуется в ходе повседневного сопровождения базы данных, а также для поддержания логической схемы приложений. В ^изнес-приложениях (business-fo-business В2В) требуется планировать соответствующие бизнес-события. Администраторы баз данных вынуждены планировать задачи сопровождения, регулярно выполняемые в определенных “временных окнах” {time windows).
База данных Oracle 10g предоставляет расширенные возможности решения таких задач с помощью планировщика (Scheduler), доступ к которому производится с помощью функций и процедур пакета DBMS_ SCHEDULER. Планировщик может быть вызван в любой среде SQL или с помощью Enterprise Manager.
Использование планировщика позволяет администраторам базы данных и разработчикам приложений управлять временем и местом выполнения различных задач в среде базы данных. Эти задачи могу! быть длительными и сложными, поэтому планировщик помогает их планировать и упрощает управление.
Задания планировщика могут быть запущены на основе времени или в случае возникновения определенного события. Планировщик также может вызвать появление событий при изменении статуса задания (например, с RUNNING на COMPLETE). Кроме того, для получения объединенного объекта можно использовать именованную последовательность программ, связанных друг с другом.
Oracle Database 10g: Administration Workshop II 14-3
Copyright © 2006, Oracle. Alt rights reserved
Простое задание
Задание (job) имеет два основных компонента: действие (“что” необходимо выполнить) и расписание (“когда” выполнить). В Enterprise Manager “ЧТО” описывается в области Command, представленной на слайде. Действие отображается в параметрах job__type и job__action пакета dbms__schedule г.
BEGIN
sys. dbms__scheduler. createj оЪ (
jobname => ’ "HR” . ”CREATE__LOG_TABLE__JOB" ’ , job__type => * PLS0L__BLOCK * f job__action => гБёдТп
execute immediate ("create table session__histcry ( snap__time TIMESTAMP WITH LOCAL TIME ZONE,
num sessions NUMBER) ‘ * ) ; end; 1 f________________________
start__date systimestamp at time zone ’ America/New__York ’, jojy ciaSS =>«DEFAULT2JOB^CLASS‘, comments => ‘Create the SESSION HISTORY table*, autodrop -> FALSE, enabled -> TRUE);
END;
В задании также определяется, “КОГДА” требуемое действие следует выполнить. “КОГДА” выражается с помощью “расписания” (“schedule”), которое может основываться на времени (см. параметр start _date) или событиях, а также может зависеть от выходных результатов других заданий. Эти параметры рассматриваются далее в этом уроке.
Oracle Database 10g: Administration Workshop II 14«4
Шаги использования основных компонентов
Для упрощения управления задачами с помощью планировщика выполняйте следующие шаги:
1.	Создание программы.
2.	Создание и использование расписания.
3.	Создание и передача на выполнение задания.
4.	Мониторинг задания.
Copyright © 2006, Oracle. AH rights reserved.
Шаги использования основных компонентов
Планировщик предоставляет модульный подход решения задач в базе данных Oracle. Разбиение задач на такие компоненты, как время, месторасположение и объект базы данных, обеспечиваемое планировщиком, позволяет упростить управление средой базы данных. Планировщик использует три основных компонента:
•	Задание (job) определяет, что необходимо выполнить и когда. Например, “что” может быть процедурой PL/SQL, выполняемым в ОС двоичным модулем (native binary executable), Java-приложением и скриптом командного интерпретатора. Программа (“что”) и расписание (“когда”) могут быть частью определения задания. Кроме того, можно использовать программу и расписание, которые существуют отдельно. Использование аргументов задания позволяет настроить его выполнение.
*	Расписание (schedule) определяет, когда и как часто выполняется работа. Расписание для задания можно задать в виде последовательности дат. в виде события или комбинации этих двух методов с указанием дополнительных спецификаций, обозначающих повторяющиеся интервалы. Расписание может храниться отдельно и использоваться для многих заданий.
*	Программа (program) - совокупность метаданных о конкретном выполняемом модуле, скрипте или процедуре. Автоматизированное задание содержит некоторую задачу. Использование программы позволяет изменить задачу или “что необходимо сделать” без изменения самого задания. Для программы могут быть определены аргументы, с помощью которых пользователи влияют на режим ее работы.
Oracle Database 10g: Administration Workshop II 14-5
*|. Создание программы
Copyright © 2006, Oracle. Alt rights reserved.
1.	Создание программы
Программа создается с помощью процедуры CREATE__PROGRAM. Создание программы необязательное действие при использовании планировщика. Выполняемые заданием операции можно описать в анонимном блоке PL/SQL, указанном в процедуре CREATE_JOB. Создавая программу отдельно, вы определяете действие один раз, а затем его повторно используете во многих заданиях. Это позволяет вам изменять расписание задания без необходимости пересоздания блока PL/SQL. Вы также можете настраивать задание, указывая значения аргументов.
Чтобы создать программу в своей собственной схеме, необходимо иметь привилегию CREATE JOB. Пользователь с привилегией CREATE ANY JOB может создавать программу в любой схеме.
Программа создается по умолчанию в отключенном состоянии (если только для параметра enabled не установлено значение TRUE). Задание не может выполнять программу до тех пор. пока эта программа не будет включена. Можно задать создание программы во включенном состоянии, указав для этого в параметре enabled значение TRUE.
Действие программы задается в строке, в которой указывается в зависимости от параметра program_type процедура, имя исполняемого модуля или анонимный блок PL/SQL.
Например, если имеется процедура UPDATE_HR_SCHEMA_STATS, собирающая статистики для схемы hr, тогда можно создать программу, вызывающую эту процедуру. В ЕМ выберите Administration > Programs и щелкните на кнопке Create.
Oracle Database 10g: Administration Workshop II 14-6
2.	Создание и использование
расписаний
'й	Cieste Schedule	i.-scsr: -t:
Create Schedule
45how5Cj.J: CanceiJ
* "4an₽	.........' "
Date pCTs72DQ5 ’ Щ
A-i >_ Af..-:-.
Гапе [б	AMr PM
Hot Aft*r
He End Pate
{' Specified End Date
1нианвшвнммн||^р ж-
Copyright © 2006, Oracle. AH rights reserved.__
2,	Создание и использование расписаний
Использование расписания вместо времени выполнения, задаваемого при определении задания, позволяет управлять многими заданиями без необходимости изменения их определений. После изменения расписания каждое использующее его задание автоматически начинает применять обновленное расписание
Для создания расписания используется PL/SQL-процедура CREATE__SCHEDULE пакета DBMSES СНЕ DULER.
Параметр start__date отражает дату, начиная с которой расписание становится активным. В расписании нельзя ссылаться на более раннюю, чем указано в этом параметре, дату. Расписание не действует после лазы, определяемой в параметре end_date.
Для планирования повторяющегося выполнения применяется календарное выражение, определяемое в параметре repeat_ interval.Оно используется для генерации следующей планируемой даты выполнения. В расписание не попадают даты позднее заданной параметром end__date.
В представленном выше примере создается расписание STATS__SCHEDULE, задающее повторяющийся четырехдневный интервал, начинающийся сейчас и продолжающийся 30 дней..
Для создания расписания можно использовать ЕМ, как это показано на слайде.
Oracle Database 10g: Administration Workshop II 14*7
3.	Создание и выполнение задания
Create Job
SnowSfiQ (CancelJ OK J General SihegM? Ogtigas
*	Name LOG SEE SIC NS JOE
*	Owner |HR	i
Enabled S Yes О No
Description iCount sessions with HR.LOG__SESS_COUNT_PRGM
Logging Level \ Log everything (FULL) ]
Specify tenements let d<r inb
Job Class DEFAULTJOB CLASS	i	Create Job Class J
Auto Drop | FALSE
Spechr	the job ihcjlu i.e dropped sfiat £«эд&&»п
Restart able \ FALSE ЧЛ \
Specify whether the icfe csr. oe fedartee iwu* */ <r b the even? or tsfc-e
Command
Select the command type for the job. then enter the command requirements
Command Type Program	^Change Command Type J
Program Name HR.LOG SES^OUNTJPRGM
3. Создание и выполнение задания
Задание -- это объединение расписания и того, что следует сделать, вместе с дополнительными аргументами, определенными в задании.
Программа или “Команда” (область “Command” в ЕМ) может быть предварительно созданной программой на PL/SQL или Java, анонимным блоком PL/SQL или исполняемым модулем, запускаемым в командной строке операционной системы.
Расписание задания может быть предопределенным (созданным процедурой DBMS__SCHDULER. CREATE__SCHEDULE) или же оно может быть описано непосредственно как часть создаваемого задания. В расписании указываются атрибуты, определяющие, когда выполняется задание, например:
• Время начала и окончания задания, задающие момент начала использования задания и момент, после которого задание больше не пригодно для использования и нельзя запланировать его выполнение.
• Выражение, определяющее интервал повторения задания .
• Сложное расписание, созданное путем объединения существующих расписаний.
• Условие или изменение состояния, называемое событием, которое должно возникнуть перед запуском задания.
Существует много атрибутов, которые вы можете задать для задания. Атрибуты управляют тем, как выполняется задание.
Чтобы выполнить задание в Enterprise Manager выберите Administration > Jobs.
Oracle Database 10g: Administration Workshop II 14-8
4. Мониторинг задания
SELECT jobjnaxae, status, eirrcr#, runjduration FROM USER_SCH^)ra^j3mjROT_DE5Ca.XtS;
Scheduler Jobs
GATRERJTATS^JOB SUCCESS 0 +000 00:08:20 PART_EXCMOGE^OUB FAILUrS 6576 +000 00:00:00
Pane	Sep Ж Ж5 «Ш.-5Ч AM refresh)
CreateJ
Purge AH Logy
View jcb Status^Furge Lsaji View Jet Definition J
Next 25 >
Л- Ргежи& 26 151-75 of3647
LOG SESSIONS JOB Hg
:RlMSSCHDNEGACTION DfSYS
1OG SESSIONS JOB
LUG SESSIONS -JOB
LOG SESSIONS JO8
HR
HR
Sep 19,3305 11.22.00 AM -07X0 Sep 19,2005 11:21.05 AM -07.00 Sep IS, 2005 11'19 00 AM -07 № Sep 19.2005 1116 00 AM -07 00 Sep T9.2006 11:13-00 AM -07 00
=0.0 9.0 :oo юо :o.o



Copyright © 2006, Oracle, Ail rights reserved.
4. Мониторинг задания
Представление DBA_ SCHEDULER__JOB__RUN_DETAILS выводит одну строку для каждого экземпляра задания. Каждая строка содержит информацию о выполнении одного экземпляра задания.
В представлении [DBA | ALL] _SCHEDULER_JOB_RUN__DETAILS содержатся следующие столбцы:
• LOG_ID; уникальный идентификатор журнального входа (записи);
LOGJDATE; временная метка журнального входа;
• OWNER; владелец задания;
• JOBJNAME; имя задания;
• STATUS; статус выполнения задания;
• ERROR#; первоначальное количество ошибок;
• REQJSTARTJDATE; время, на которое был запланирован запуск задания;
• ACTUALJSTARTJJATE; время, когда на самом деле было запущено задание;
• RUNJDURATION; продолжительность выполнения задания;
INSTANCE_ID; экземпляр, в котором выполняется задание;
• SESSIONJCD; сеанс, в котором выполняется задание;
• SLAVEJPID; идентификатор (PID) подчиненного процесса, используемого при выполнении задания;
• CPUJJSED; объем использование ЦП при выполнении задания:
• ADDITIONAL_INFO; дополнительная информация о выполнении задания.
Oracle Database 10g: Administration Workshop II 14-9
Использовании расписания основанного на времени или событиях
Осн. компоненты & шаги
> Расписания Цепочки заданий Расш.понятия
Create Job
(Show SQL J Cancel) ЧОК)
□eneral i Schedule i Ogdons
Schedule Type [Standard

т.„_ 7nn₽. fUse Pre-defined Schedule
и .е -и ie । standard Using PL/SOL for repeated interval Pre-defined Window
Repeat!^ Event____________________________________
Repeat
Start
Irnrne C Later
[Do IMot Repeat 5,I
By Seconds * By Minutes By Hours By Days By Weeks By Months By Years
Time [w^[2O^1[oF3£ AM PM
Расписание
2005
Время
Событие
В
j
Copyright © 2006, Oracle. Alt rights reserved.
Использовании расписания, основанного на времени или событиях
При определении задания, расписание выполнения которого основывается на времени (time-based), можно задать либо календарное выражение, либо выражение с датой и временем
Когда используются календарные выражения, время следующего запуска задания подсчитывается на основе интервала повторения и даты старта (start date) задания.
Когда используются выражения с датами и временем, задаваемое выражение определяет следующий момент времени, в который должно быть запущено задание. Если интервал повторения не указывается, задание выполняется только один раз во время, указанное в дате старта.
Если в задании используется расписание, основанное на событиях (event-based schedule), задание выполняется при срабатывании события. На высоком уровне событие может быть представлено как изменение состояния. Событие происходит, когда логическое условие меняет свое состояние с FALSE на TRUE или с TRUE на FALSE.
Планировщик (Scheduler) использует Oracle Streams Advanced Queuing (AQ) для возбуждения и удаления событий.
Примечание: планировщик не гарантирует выполнение задания в точное время, так как система может быть перегружена, в результате чего могут быть недоступны ресурсы.
Oracle Database 10g: Administration Workshop SI 14-10
Создание задания, выполнение которого основано на времени
Пример:
Создание задания, в котором вызывается скрипт для выполнения ежедневного резервирования, начинающегося в 23:00.
BEGIN	~
DM®§a®EDXJLER. CREATE^JOB ( ioS' nam=>’HR.DO BACKUP', jobji^pe	’ EXECUTABLET ,
starty&to52^ SYSDATE, re^at^xnterval^’FREQ^DAILY.-BYHdOfc^'B’ #
/> next night at Ibr&JK Ш А/
................... .	* . .. _	__ .t.
В1Ш|
в
-У i-rw —
Copyright © 2006, Oracle. АН rights reserved.
Создание задания, выполнение которого основано на времени
Для создания задания используйте процедуру CREATE__JOB пакета DBMS__SCHEDULER. По умолчанию задания создаются отключенными. Чтобы сделать их активными и запланировать их выполнение, необходимо задания явно включить. Имена всех заданий имеют вид: [ схема« ] имя.
Для задания времени следует использовать функцию SYSTIMESTAMP и указывать временную зону. Тогда при переходе на летнее время автоматически регулируются моменты начала выполнения задания.
По умолчанию задание создается в текущей схеме. Можно создать задание в другой схеме, как это показано в примере на слайде. Поэтому создатель задания не всегда является его владельцем. Владелец задания - это пользователь, в схеме которого создано задание, в то время как создатель задания - это тот, кто создал это задание. Задания выполняются с правами владельца. Параметры среды, относящиеся к национальной языковой поддержке (National Language Support — NLS) такие же, какими они были в момент создания задания.
Параметр job_ type отражает тип задачи, решаемой заданием. Его возможные знач ения следующие:
• PLSQL_BLOCK (анонимный блок PL/SQL);
• STORED_JPROCEDURE (именованная процедура PL/SQL. Java или внешняя процедура);
• EXECUTABLE (команда, которая может быть выполнена в командной строке).
Oracle Database 10g: Administration Workshop II 14-11
Создание задания, выполнение которого основано на времени (продолжение)
Параметр job action - это либо имя процедуры, которую необходимо выполнить, либо имя скрипта или команды операционной системы, либо код анонимного блока PL/SQL. Значение параметра job action зависит от параметра job type.
В примере на слайде в параметре j ob type задано значение EXECUTABLE, в j ob_action - полное имя, включающее путь (его формат зависит от ОС), для внешнего исполняемого модуля плюс необязательные аргументы командной строки.
Внешнее задание - это задание, выполняемое вне базы данных. Все внешние задания выполняются гостевым пользователем, имеющим небольшие привилегии, определенные администратором базы данных при конфигурировании поддержки внешних заданий. Так как исполняемый модуль запускается гостевым пользователем с малыми привилегиями, вам следует убедиться в том, что этот пользователь имеет доступ к необходимым файлам и ресурсам. Большинство, но не все платформы поддерживают внешние задания. Для платформ, не поддерживающих внешние задания, при создании или указании атрибута задания или программы с типом EXECUTABLE, возвращается ошибка.
Дополнительную информацию о конфигурировании среды выполнения внешних программ с помощью планировщика можно получить в документации для базы данных Oracle, относящейся к конкретной платформе. Примеры таких документов:
•	Oracle Database Platform Guide 10gfor Windows
•	Oracle Database Installation Guide for UNIX Systems
9 Oracle Database Release Notes 1 Ogfor AIX-Based Systems
9 Oracle Database Release Notes 10gfor hp HP-UX PA-RISC (64-bit
Oracle Database 10g: Administration Workshop II 14*12
Создание расписания, основанного на событиях
Для создания задания, выполняемого на основе
событий, необходимо указать:
•	Спецификацию очереди (в которую приложение помещает сообщения для запуска задания)
•	Условие срабатывания (синтаксис такой же, как и в условиях правил Oracle Streams AQ); задание
Copyright © 2006, Oracle. All rights reserved.
Создание расписания, основанного на событиях
Задания могут срабатывать на основе событий. Приложение может уведомить планировщик о необходимости запуска задания путем помещения сообщения в очередь Oracle Streams AQ. Задание, запускаемое таким образом, называется заданием, основанном на событиях (event-basedjob). Для создания задания такого вида необходимо указать два дополнительных атрибута в процедуре CREATE__ JOB:
•	queue_spec; спецификация очереди, включающая имя очереди, в которую приложение помещает сообщения, на основе которых возбуждаются события, вызывающие запуск задания; в случае защищенной очереди (secure queue) задается следующая пара: <имя__очереди>^ <имя__агента>.
•	event^condition; условное выражение, основанное на использовании свойств сообщения. Это выражение должно быть TRUE для сообщения, чтобы запустилось задание. В выражении необходимо использоваться такой же синтаксис, как и в условиях правил Oracle Streams AQ. Вы можете включить в выражение свойства пользовательских данных, поддерживая таким образом обработку сообщений с помощью определенного пользователем объектного типа. В этом случае объектные атрибуты в выражении имеют префикс tab«user_data.
При использовании событий можно указать queue__spec и event__condition в качестве указываемых в строках (in-line) атрибутов задания. Другой способ - создать основанное на событиях расписание с такими атрибутами, а затем создать задание, ссылающееся на это расписание.
Oracle Database 10g: Administration Workshop II 14-13
Создание расписаний, основанных на событиях, с помощью Enterprise Manager
Schedule
Time Zone :Amenca/New_York
Schedule T^pe - Event Jv
Event Parameters
Queue Name SYS.AI. ERT QUE - Change Quetie)
 Agent Name lADhH^AGNTI ~ ~
* Condition |tab.user„data.eventjype- ”biSK_FULL,‘ ’

Copyright © 2006, Oracle All rights reserved.
Создание расписаний, основанных на событиях, с помощью ЕМ
На странице Create Schedule предоставляется возможность выбора между стандартным расписанием, основанным на времени, и расписанием, основанном на событиях. После выбора основанного на событиях расписания производится изменение интерфейса, в результате чего можно задать имя очереди, имя агента и условие события в дополнение к остальным атрибутом расписания.
Примечание
Планировщик выполняет основанное на событиях задание всякий раз, когда выполняется условие возникновения события, указанное в параметре event condition. Однако при этом игнорируются события, возникающие, когда задание уже выполняется; событие принимается, но не вызывает дополнительного выполнения задания.
Ссылки:
•	См. докуменз Oracle Streams Advanced Queuing User’s Guide and Reference для получения сведений о том, как создаются очереди и функционирует механизм очередей сообщений.
•	Дополнительные сведения о правилах и условиях событий Oracle Streams AQ см. в описании процедуры DBMS^AQADM. add subscriber в документе Oracle Database PL/SQL Packages and Types Reference 10g Release 2.
Oracle Database 10g: Administration Workshop II 14-14
Создание задания, основанного на событиях
Пример: создание задания, выполняющегося, когда в файловой системе до 9:00 утра происходит получение файла для пакетной загрузки данных.
..  и.....	(  , тг . - ,1.п.т-гг-гг- - тгггпт/л.|«1ик.|.о<.т1пгп.1.шлм«^|1л(Ч1пЧ.  д.: .1.	... i,  r-.-.-.-.-rr.rrrr-.v•;-тг.. BEGIM
. DBMS_SCHEDULER.CREATE__JOB(
I Job_name=>’JU^IH.PERFQRM^DXTAjXX>XD' ,
* job__type => 'EXECUTABLE’,
Jobjsction «=> ' /hcane/us±/<aba/rman/report_tailure. sh *, start	SYSTXMESTAMP.
_ .. 	•‘tl.E     
event_condxtxon »> * tab .userjdata.object_owner -
’ *HR’ ’ and tab.user_data.object_name - ’ ’DATA.TXT’ ’ and tab. user_data. event_type ~ ’ * FIIE_ARRIVAL ’ ’ and tab.user^data.event_timestamp < 9 queue spec ~> ’HR.LOAD JOB EVENT Q’);
Copynght © 2006, Oracle. All nghts reserved.
Создание задания, основанного на событиях
Для задания информации о событиях в атрибутах задания используется альтернативный синтаксис процедуры CREATE__JOB, который включает атрибуты queue__spec и event___condition. Задание может содержать информацию о событиях, указанную в строках (in-line) атрибутов задания. Другой способ - задать такую же информацию с помощью ссылки на расписание, использующее события. В примере на слайде расписание, основанное на событиях, задается в строковом виде (in-line).
Задание, показанное на слайде, запускается, когда на уровне операционной системы до 9:00 утра происходит получение файла. Предполагается, что для обработки сообщения используется объекте четырьмя атрибутами:оЬзесЕ__оутег, object_ name, event__type и event__timestamp.
Дополнительные сведения о том, как создаются очереди и функционирует механизм очередей сообщений см. в документе Oracle Streams Advanced Queuing User's Guide and Reference.
Oracle Database 10g: Administration Workshop II 14-15
Составление расписаний, основанных на событиях
Типы событий:
•	Пользовательские события или события, генерируемые приложением
•	События, генерируемые планировщиком
События, возбуждаемые заданиями планировщика:
*	аов_етдят	•	job_sch_lim_beached
•	JOEMSUCCEEDED	•	JOBJ3ISABLED
•	JOBJEMLED	♦	JOB_CHAra_STALLED
•	JOBJBROKEN	*	JOB^ALIaJEVENTS
•	JOB_COMPLETED	-	JOB_RUN_COMPLETED
*	JOBJSTOFPED
Пример возбуждения события:
Copyright © 2006, Grade. All rights reserved.
Составление расписаний, основанных на событиях
Можно создать задание, использующее в качестве механизма запуска ссылку на событие вместо расписания. Существует два типа событий:
•	Пользовательские события или события, генерируемые приложением (user- or application-generated events); приложение может возбудить событие, которое обрабатывается планировщиком, запускающим задание. Примеры таких событий: завершилось выполнение задания; в файловой системе был принял поступивший файл; в базе данных была заблокирована учетная запись пользователя; уровень запасов на складе достиг минимального порогового значения.
•	События, генерируемые планировщиком (scheduler-generated events); планировщик может возбудить событие, отражающее изменение его состояния, Например, планировщик может возбудить событие, когда стартует задание, когда оно завершается, когда выполнение задания превышает выделенное время и т.д. Потребителем события выступает приложение, выполняющее в ответ на событие некоторое действие.
Вы можете сконфигурировать задание таким образом, чтобы планировщик возбуждал событие при изменении состояния задания. Для этого используется атрибут га. ise__e vents. По умолчанию задание не возбуждает никаких событий при изменении состояния до тех пор. пока вы не измените для задания атрибут raise__events. Чтобы произвести изменение этого атрибута, необходимо сначала создать задание с помощью процедуры CREATE^JOB. Затем следует, используя процедуру SET_ATTRIBUTE, модифицировать значение по умолчанию для этого атрибута. В примере на слайде показывается изменение задания hr. dojoackup, определяющее, что в случае аварийного завершения задания возбуждается событие.
Oracle Database 10g: Administration Workshop II 14-16
Составление расписаний, основанных на событиях (продолжение)
После включения возможности возникновения событий при изменении состояния задания планировщик возбуждает такие события, используя механизм очередей сообщений. Для возбуждения события сообщение помещается в действующую по умолчанию очередь событий SYS . SCHEDULER$__EVENT__QUEUE.
Данная стандартная очередь событий планировщика это защищенаая очередь {secure queue}. В зависимости от приложения, возможно, вам придется выполнить конфигурирование очереди, что позволит определенным пользователям производить операции над ней. Сведения о защищенных очередях см. в документе Oracle Streams Concepts and Administration.
Стандартная очередь событий планировщика предназначена для событий, генерируемых планировщиком. Oracle не рекомендует использовать эту очередь для пользовательских приложений или определяемы! пользователем событий.
Тин события	Описание
JOB_START	Задание было запущено.
JOBjSUCCEEDED	Задание успешно завершилось.
JOBJRAILED	Задание было прервано аварийно либо после возбуждения ошибки, либо в результате ненормального завершения.
JOB^BROKEN	Задание отключено и его состояние изменено на BROKEN, так было превышено количество аварийных завершений, заданных атрибутом задания MAX_FAILURES.
JOB_COMPLETED	Статус задание COMPLETED, так как было достигнуто установленное значение атрибутов MAX__RUNS или END DATE.
JOBJSTOPPED	Задание было остановлено в результате вызова процедуры STOP JOB.
JOB__SCH__LIM_RE ACHED	Достигнуто ограничение для расписания задания. Задание не запускается, так как задержка запуска превысила значение атрибута SCHEDULE LIMIT.
JOB__DISABLED	Задание отключено планировщиком или после вызова процедуры SET__ATTRIBUTE.
JOB_CHAIN_STALLED	Задание, выполняющее цепочку, переведено в состояние CHAIN__STALLED. Выполняемая цепочка переводится в остановленное состояние, когда нет выполняющихся или запланированных шагов, а также когда в параметре цепочки EVALUATI ON_I NTERVAL установлено неопределенное значение (NULL). Цепочка находится в ожидании ручного вмешательства.
JOB__ALLJE VENTS	JOB__ALL_EVENTS - это не событие, а константа, предоставляющая простой способ включения всех событий.
JOB__RUN__COMPLETED	Выполнение задания завершилось. Оно завершилось аварийно, успешно или было остановлено.
Oracle Database 10g: Administration Workshop II 14-17
Создание сложных расписаний
Copyright © 2006, Oracle. Ail rights reserved.
Создание сложных расписаний
Расписание (schedule) - это объект в базе данных. При создании расписания автоматически сохраняются. Расписания можно объединять и создавать более сложные расписания. Таким образом можно добавить или исключить конкретные даты из календарного выражения (calendaring expression).
Следующие опции можно использовать для определения повторяющегося интервала расписания:
INCLUDE - добавить список дат в результаты календарных выражений;
• EXCLUDE --- удалить список дат из результатов календарных выражений; INTERSECT - использовать только такие даты, которые являются общими для одного или нескольких расписаний.
При создании расписаний, которые могут быть объединены с другими, можно определить список дат, каждая из которых задается в фиксированном формате [ YYYY] MMDD или представляет собой имя расписания, созданного с помощью процедуры CREATE__SCHEDULE. Пример списка дат, в котором используются следующие значения для повторяющегося интервала расписания:
0115, 0315, 0325,0615, quarter__end__dates, 1215
Строка отображает следующие даты: 15 января, 15 марта, 25 марта, 15 июня, 15 декабря и перечень дат расписания QUARTER__END__DATES.
Если в дате фиксированного формата не указан год, тогда в расписание включаются даты для каждого года.
Oracle Database 10g: Administration Workshop IS 14-18
Создание цепочек заданий
Осн. компоненты & шаги Расписания
> Цепочки заданий Расш.понятия
1.	Создание объекта цепочки.
2.	Определение шагов цепочки.
3.	Определение правил цепочки.
4.	Запуск цепочки:	<
-	Включение цепочки.	*
-	Создание задания, указывающего на цепочку.
Z	...
Цепочка заданий К---ZpZ-
।
Задание
Copyright © 2006, Oracle. All rights reserved.
Создание цепочек заданий
Цепочка (chain) - именованная последовательность программ, создаваемая с целью соединения программ между собой. Использование цепочек также называют “зависимым планированиелГ (“dependency scheduling”). Пример пеночки:
Выполнить программу А, а затем программу В; программу С выполнить только в том случае, если программы А и В успешно завершились, иначе выполнить программу D.
Каждая позиция внутри цепочки связанных между собой программ называется шагом.
Для создания и использования цепочки следует выполнить приведенные ниже действия. Все указываемые процедуры входят в пакет DBMS__SCHEDULER, если только иное не указано отдельно.
1.	Создание цепочки с помощью процедуры CREATE_CHAIN. Имя цепочки может быть дополнительно уточнено с помощью квалификатора, в качестве которого используется имя схемы (например, моя схема ,мое_имя).
2.	Определение (одного или нескольких) шагов цепочки. Для шага задается имя и описывается, что происходит на этом шаге. На каждом шаге можно сослаться на одну из следующих возможностей:
программу;
- другую цепочку (вложенная цепочка); событие.
Для определения шага, ссылающегося на программу или вложенную цепочку, вызывается процедура DEFINE__CHAIN__STEP.
Oracle Database 10g: Administration Workshop II 14-19
Создание цепочек заданий (продолжение)
(Шаги определения, продолжения)
Для определения шага, ожидающего возникновения события, используется процедура DEFINE__CHAIN__EVENT__STEP. Аргументы процедуры могут указывать на расписание, основанное на событиях, или могут включать указанную непосредственно (in-line) спецификацию очереди и условие события. Шаг, указывающий на событие, ждет, пока возникнет заданное событие» Если событие происходит, шаг завершается успешно.
3.	После создания объекта цепочки вы определяете правила цепочки» В них задается, когда выполняются шаги, и определяются зависимости между шагами. Каждое правило содержит условие и действие:
- Действие выполняется, когда условие обрабатывается как верное (TRUE). Условие может содержать любые синтаксические конструкции, допустимые в предложении WHERE языка SQL. Условия обычно основываются на выходных результатах одного или нескольких предыдущих шагов. Например, может потребоваться выполнение одного шага при условии, что два предыдущих завершились успешно. Для другого шага условие выполнения - аварийное завершение одного или обоих предыдущих шагов.
Действие задает, что необходимо сделать в результате срабатывания правил, инициирующих это действие»
Обычное действие состоит в выполнении определенного шага. Вы также можете задать окончание выполнения цепочки с возвратом значения или возвратом имени шага и кода ошибки.
Все правила, добавленные в цепочку, работают совместно друг с другом, определяя функционирование цепочки. При запуске задания и в конце каждого шага проверяются все правила для того, чтобы выявить, какое действие или действия будут следующими. Для добавления правила в цепочку используется процедура DEFINE__CHAIN__RULE. Эта процедура вызывается для каждого правила, добавляемого в цепочку.
4.	Запуск цепочки вызывает два действия (операции) :
-	Включение цепочки с помощью процедуры ENABLE . (Цепочка всегда создается отключенной, поэтому вы можете добавить шаги и правила для цепочки перед выполнением любого задания.) Включение уже включенной пеночки не возвращает ошибки.
-	Для выполнения цепочки необходимо создать задание типа ’CHAIN’. Действие задание должно ссылаться на имя цепочки. Для этого задания можно использовать расписания, основанные либо на событиях, либо на времени.
Oracle Database 10g: Administration Workshop II 14-20
Пример цепочки
В примере цепочки представлены все задачи и условия, возникающие во время массовой загрузки данных (bulk data load).
Прежде всего, должны присутствовать данные, которые необходимо загрузить. При наличии данных производится их загрузка, в ходе которой проверяется, что в файловой системе не происходит переполнения доступного пространства. После завершения загрузки перестраиваются индексы, определенные над изменяемыми таблицами. Затем формируется отчет о новых загруженных данных.
Приведенный пример демонстрирует планирование зависимостей (dependency scheduling).
Oracle Database 10g: Administration Workshop II 14-21
1. Создание объекта цепочки
Copyright © 2006; Oracle. All rigtits reserved.
1. Создание объекта цепочки
На странице Administration выберите ссылку Chains в секции Scheduler. На странице Scheduler Chains можно создать или отредактировать цепочку заданий. При создании цепочки на странице Create Chain необходимо ввести имя и владельца цепочки заданий. Кроме того, можно включить или оставить отключенной новую создаваемую цепочку заданий. Цепочку можно будет включить и позднее.
Пример кода PL/SQL:
DBMS_SCHEDULER. CREATE__CHAIN (
chain__name => ’ bulk__lcad__chain 1 f
rule_set_name NULL, evaluation interval => NULL, comments => ’Load data and run reports’);
Шаги цепочки можно вводить ио одному после присвоения имени цепочки заданий, а также необязательного заполнения поля описания. Для цепочки заданий можно создать шаги следующих типов:
• шаг, выполняющий программу (PROGRAM);
• шаг, выполняющий другую цепочку заданий (SUBCHAIN);
• шаг, использующий хранимое расписание, основанное на событиях (EVENT_SCHEDULE)
В ходе одного шага может быть выполнена только одна программа. Каждый шаг в цепочке должен быть определен перед тем, как цепочка может быть включена и использована.
Oracle Database 10g: Administration Workshop II 14-22
2. Определение шагов цепочки
В W^SCBBbtMR у	( Zn
chaxnjname ’bulk^load^chain* t klz stepjnsme «> ’ loa0_da ta_evt% even tjcppdit ion	* tab. userdata. dbj^tjowner Ж
’’HRT’ and tab.user data.object name •« * ’ТЖТА.ТХТ’^ and tab.userjdata.event_tygi й
;#ieue_sffew ’HR.WAD_JOB_^M_Q’z)i (	/7\
I '^bfein_name ^bulk_ltS^&iaxnt> namo йаФк ’ do_bulk_loadt| programjname »> *hr , loadjdatajprop)^ • к TOMS^cfeOLER.	'f' ZT\
chaxn_name «*> ’bulk_Xoad_chaM*;	\Zz
step_nam< ’rebuijd^indxTi program, name «> ' ht < rebuild Indexes * У ;
—...^--.^ ..±... .T* /	.,,	 ".Zj|?.	....7^^^
2.	Определение шагов цепочки
L На шаге load_data_evt используется расписание, основанное на событиях. Шаг load__data__evt ждет появления в очереди-HR. LOAD__JOB__EVENT_Q сообщения о событие FILE__ARRIVAL. Это событие уведомляет планировщик о том, что в файловую систему поступил файл DATA. TXT. Так как аргумент queue_jspec не содержит имя агента, задаваемая очередь не является защищенной очередью.
2.	Шаг dojou 1 k_l о a d выполняет массовую загрузку данных в таблицы схем.
3.	На шаге rebui ld__indx перестраиваются индексы для таблиц после загрузки данных.
4.	На шаге run reports выполняется формирование отчета о новых данных. HR. GEN_REPORTS - это другая цепочка заданий.
DBMSES СНЕ DULER. DEFINE__CHAIN_STEP ( chain__name => ’ bulk__load__chain ’ f step jiarne => 1 run__reports ’ f program__name ==> ’ hr. gen_reports ’) ;
5.	Шаг stop__when__disk__f ull_evt завершает цепочку выполнения, когда происходит переполнение диска на уровне системы.
DBMS__SCHEDULER. DEFINE__CHAIN_EVENT__STEP ( chairp_name ~> ’bulk__load chain’, step_name =^> ’ stop_when_disk__full__evt ’ event_schedu 1 e_narne ~> ’disk_f u 11 sched ’)
Oracle Database 10g: Administration Workshop II 14-23
3.	Определение правил цепочки
Rules
'СЖЙЫ-
SysternjAssrgnedJ 1=1
STAR; Ic^djJsta^vt, ?ste|3jmnJdfckJSOjaft
Start the chain, by «fting for the file to arrive
C Systern Assignefl^z • lead data_evt COMPLETED=,TRUE’* r SystemAesignedJ  tfojjuiktoad STATE=8SUCCEH>ED’* r‘ Sys1ern_Assigned„4 ; rebuildjdrix.COMPLETTD='TRUE“
(START dqjbull- Jead START rsbuiMJnd^ START recede stats
r Syslgm_Assignsd_6. resalejstals.STATE-aSUCCEEDED”
START run_repnrt%
О System _Assignedj6 ifeeaicstats. STATE k ’SUCCEEDED'* END iu
r System_Assigned„7 :sicp_wher>_dfsk Jull. COMPLETED=’TRUE'iEND 99
r Sy>tem~Assigned_8 rijnjepctris.STATE="SUCCEEDED,:	END
recaic stats after indexes re-built
Start generating reports ONLY if slat s recalculated
Exit chain (IDi if stats recalc fails
Exit chain i9®i if disk full
Exit normally when successful
Evaluation Interval (minutest |
Copyright © 2006, Grade. All rights reserved.
з.	Определение правил цепочки
После задания шагов цепочки можно создать правила для цепочки заданий. Правила цепочки указывают, когда выполняются шаги, а также определяют зависимости между шагами. Каждое правило содержит условие и действие. Когда обрабатываемое условие верно (TRUE), действие выполняется. Условие может также содержать синтаксические конструкции цепочки планировщика.
Чтобы создать правило в ЕМ, щелкните на кнопке Add в секции Rules.
При вводе условий для правил символьные строки должны заключаться в одинарные кавычки. GUI-интерфейс автоматически производит преобразования (escapes) для одинарных кавычек, когда это необходимо, при выполнении команд.
Пример кода PL/SQL
DBMS_SCHEDULER. DEFINE__CHAIN__RULE ( chain__name => ’bulk__load__chain ’ f condition => ’TRUE, action ~> ’START load data_evt f stop__when_disk__full_evt ’ f rule__name ===> ’ dataload__rulel ’ , comments	’start the chain’);
Примечание: пример кода PL/SQL отличается от полученного в ЕМ. В нем задается пользовательское имя правила, в то время как в примере с использованием ЕМ показывается имя, сгенерированное по умолчанию.
Oracle Database 10g: Administration Workshop II 14-24
4.	Запуск цепочки
BEGIN
'DBMS___SCHEDULER.ENABLE (’bulk_l©ad_chain')I, END;
BEGIN"
dbm!.(
johrname job^type	—>
Jobjaction repeatjinterval о
enabled	->
Ж);
'bulk load chain job', toaxir, 'bulk^loadbchain' f
9 frecpdaily ;byhour»7;
bymi.nute=5;bysecbndW:t r
TRUE) t

Copyright © 2006, Oracle. AIS rights reserved.
4. Запуск цепочки
После завершения создания и внесения изменений в цепочку заданий вы можете включить эту цепочку с помощью процедуры ENABLE.
Для выполнения цепочки необходимо создать задание с параметром job__type, имеющем значение ' CHAIN'. В качестве действия должно быть указано имя цепочки заданий. Остальные параметры определяются также, как и для других типов заданий.
Oracle Database 10g: Administration Workshop II 14-25
Мониторинг цепочек заданий
Scheduler Chains
CBM REPORTS HR
r' W LOAD DARMHR
а=з& Rsfrssheu ^зг 21. Ж ?:3$:2G ДЙ Refresh) г Create) t Create job Using Chain Eda) ViewJU^jete) Qg&e UH) '
ШМ,|ЙЫ ‘	МММК _ i
8	7	FALSE	^Generate reports based on \
HR data	\
6	5	FALSE	Load data from file and run
reports
Related Links
Giobai Attributes Programs
Windows
Jeb Qi&sses Schedules
jabs
Winds Ф&
(DBA	|	AIX	|	USER.]_SCHEDULER_CHAI1JS.
[DBA	J	all	|	d^j_schwot^j:ha^jrules
[DBA	I	ALL	J	roERl^SCHWOTERJ3B^_STE₽S
ЦУА	[	ALL	|	USER]SCHEDULERJ^OWING CBAINS
Copyright © 2006, Oracle. All rights reserved.
Мониторинг цепочек заданий
Представление ALL__SCHEDULER__CHAINS содержит информацию: владелец и имя цепочки, владелец и имя набора правил, количество правил; количество шагов; включена ли цепочка или нет; использует или не использует цепочка интервал для оценки условий правил; использует или не использует цепочка набор определенных пользователем правил.
Представление ALL__SCHEDULER__CHAIN_RULES содержит информацию: владелец и имя цепочки, для которой было определено правило; владелец и имя правила; условие и действие, которое должно быть выполнено, когда условие верно (TRUE).
Представление ALL_SCHEDULER_ CHAINJSTEPS отображает следующие сведения: владелец и имя цепочки, для которой был создан шаг; имя шага; владелец и имя программы; следует ли пропускать шаг или нет; следует ли делать паузу или же нет но завершению шага.
Представление ALL__SCHEDULER_RUNNING__CHAINS выводит следующую информацию: владелец и имя цепочки; владелец и имя задания, указывающего на цепочку; наименования шагов цепочки и их текущее состояние; ошибки, зафиксированные на шаге цепочки; время, в которое стартовал и завершился шаг задания; как долго выполнялся шаг; имя задания, исполняющего mat, если он сейчас выполняется.
Oracle Database 10g: Administration Workshop II 14-26
Дополнительные понятая планировщика
Дополнительные объекты обеспечивают расширенные возможности управления различными аспектами расписания, например, определяют приоритеты заданий. Ниже кратко описаны такие компоненты, на последующих слайдах они рассматриваются более подробно.
•	Окно (window) отражает интервал времени с четко очерченными границами начала и завершения. Оно используется для активизации различных ресурсных планов в различное время. Окна позволяют изменять распределение ресурсов в определенные периоды времени, например, в дневное время или в течении торгового года.
*	Группа окон (window group) отражает список окон и упрощает управление окнами. Окно или группу окон можно использовать в качестве расписания для задания, что гарантирует выполнение работы только в том случае, когда окно и связанный с ним ресурсный план активны.
® Класс заданий (job class) определяет категорию заданий с общими требованиями по использованию ресурсов и другими характеристиками. Класс заданий объединяет задания в рамках большей сущности.
•	Группа потребителей ресурсов (resource consumer group), связанная с классом заданий, определяет ресурсы, которые выделяются заданию в классе задании.
•	Ресурсный план (resource plan) позволяет пользователям устанавливать для групп потребителей приоритеты использования ресурсов (главным образом ЦП).
Примечание: дополнительные сведения о группах потребителей ресурсов и ресурсных планах см. в уроке “Управление ресурсами”.
Oracle Database 10g: Administration Workshop II 14-27
Создание класса заданий
Класс заданий можно создать с помощью процедуры CREATE_JOB_CLASS пакета DBMS_SCHEDULER. Класс всегда хранится в схеме SYS. Для создания класса требуется привилегия MANAGE SCHEDULER.
Класс можно указать при создании задания или же после создания задания, используя процедуру SET__ATTRIBUTE пакета DBMS__SCHEDULER.
В Enterprise Manager Database Control для создания и редактирования класса заданий используется страница Job Class, содержащая одно обязательное поле Name для наименования класса. На этой странице можно ввести группу потребителей ресурсов, с которой связан класс заданий. Группу можно выбрать с помощью пиктограммы поиска в поле Resource Consumer Group.
Во время создания базы данных создается класс по умолчанию - DEFAULT_JOB_CLASS. Если задание не связывается с классом, тогда оно по умолчанию включается в DEFAULT__JOB__CLASS.
Если группа потребителей ресурсов не задается при создании класса заданий, тогда классу ставится в соответствие группа потребителей ресурсов DEFAULT__CONSUMER__GROUP. Когда включен ресурсный менеджер, задания, принадлежащие классу
DEFAULT_JOB__CLASS или входящие в группу DEFAULT JSONSUMER__GROUP, могут не получать достаточного количества ресурсов для завершения своих задач.
Oracle Database 10g: Administration Workshop II 14-28
Создание окна
Создать окно, охватывающее декабрь месяц и использующее ресурсный план end_of_year. Окно активизируется каждые сутки с 6:00 вечера до 6:00 утра, время задается для часового поясе Eastern Standard Time (EST).
•ВЕОЖЙГ:
DBMSJSCHEDULER.CREATE_WINDOW( wxndow_name => 'DECANIGHTS', resourcejplan /&> ’mySF-.-XEAR’, start_date => ’Ol-DEC-бЗ 06.00.0,0 ₽». ESW , repeat_interval => •FREQ»nMI.Y; byhour=18‘, duration W * * О О: 00:00* ?
end_date => '31~DEC^№g>;6.00.00 AM EST', comments =>•Every day-at 6:00 ₽Й’) ;
END/-/
Copyright © 2006, Oracle. All rights reserved.
Создание окна
Приоритеты заданий изменяются в зависимости от периода времени. Например, в ночные часы необходимо выполнить задания по загрузке информации в хранилища данных и поэтому этим заданиям выделяется больший процент ресурсов базы данных. Однако в дневное время важно обеспечить выполнение заданий работающих приложений и им необходимо выделять большую долю ресурсов. Для этого по расписанию меняется активный ресурсный план и используются временные окна.
Назначение окна - выполнить переключение на требуемый ресурсный план, который становится активным в определенном периоде времени. Окно представляет собой интервал времени, например, “каждый день с 8:00 утра до 6:00 вечера”. Окно с повторяющимся временным интервалом задает расписание, в котором есть дата начала (start date) и продолжительность (duration) в минутах.
Окно открыто (open}. когда оно действует. Только одно окно может действовать в какой-либо момент времени. В примере, приведенном на слайде:
• Окно открывается (становится активным) в 6:00 вечера 1 декабря 2003 года.
* Параметр duration определяет, как долго окно должно быть открытым. В приводимом примере продолжительность задается величиной, имеющей тип INTERVAL DAY ТО SECOND. Она показывает, что окно закрывается в 6:00 часов утра 2 декабря 2003 года.
• Момент времени, в который окно отрывается в следующий раз, подсчитывается на основе параметра REPEAT INTERVAL; так второй раз окно открывается в 6:00 вечера 2 декабря 2003 года.
• В 6:00 утра 31 декабря 2003 года окно закрывается и отключается. Когда окно DEC NIGHTS открыто, ресурсы, выделяемые заданиям, определяются на основе директив ресурсного плана END OF YEAR.
Oracle Database 10g: Administration Workshop II 14-29
Приоритеты заданий внутри окна
Job1
Job2
APPL
JOBS
OTHER
Job4
Job5
ADMIN
JOBS
Задание	Приоритет
Job1	1
Job2	2
Job3	3
Job4	5
Job5	2
|Job3|
Временное окно
Copyright ©2006, Oracle. All rights reserved.
Приоритеты заданий внутри окна
Когда в базе данных создается большое количества заданий, требуется способ, по которому выстраивается порядок обработки заданий с учетом бизнес-требований и определяются задания с наивысшим приоритетом. В каждом конкретном окне может быть несколько классов выполняемых заданий со своим собственным приоритетом.
Классы позволяют отнести задание к определенной категории. Между классом заданий и группой потребителей ресурсов устанавливается соответствие. Активный ресурсный план базы данных определяет, как выделяются ресурсы каждой группе потребителей и, следовательно, каждому классу заданий.
Имеется два уровня, на которых задания могут получить приоритеты: на уровне классов и на уровне заданий.
* Первый уровень установки приоритетов использует ресурсные планы, задаваемые для классов. Приоритеты заданий различных классов устанавливаются исключительно исходя из распределения ресурсов между классами заданий.
• Второй уровень установки приоритетов действует внутри класса и использует атрибут приоритета каждого задания.
Уровни приоритетов имеют значение только, когда два задания запускаются в одно и то же время. Задание с большим приоритетом запускается первым.
Не гарантируется соблюдение приоритетов для работ различных классов. Например, работа класса APPL_JOBS с более высоким приоритетом может не стартовать раньше, чем работа класса ADMIN JOBS с более низким приоритетом, даже когда оба задания совместно используют одинаковое расписание. Если задание класса A PPL JOBS имеет доступ к ресурсам на более низком уровне плана, тогда оно, даже если у него более высокий приоритетом, должно ждать, пока ресурсы станут доступными, так как они выделяются заданиям с более низким приоритетом в другом классе
Oracle Database 10g: Administration Workshop II 14*30
Итоги
Упрощение управления задачами с помощью планировщика
Создание задания, программы и расписания Мониторинг выполнения заданий
Использование расписаний, основанных на времени или событиях, для выполнения заданий планировщика
Использование цепочек заданий для выполнения последовательности связанных задач
Использование дополнительных понятий планировщика для установления приоритетов заданий
Copyright © 2006, Oracle, Ай rights reserved.
Oracle Database 10g: Administration Workshop II 14-31
Обзор практического занятия: автоматизация решения задач с помощью планировщика
•	Создание задания, выполняющего блок PL/SQL
*	Создание программы и расписания
•	Создание задания, использующего программу и расписание
•	Изменение программы и расписания задания; наблюдение за измененным выполнением задания
•	Мониторинг выполнений заданий
Copyright © 2006, Oracle. All rights reserved.
Обзор практического занятая
Примечание: на этом практическом занятии используются Enterprise Manager Database Control и SQL*Plus.
Oracle Database 10g: Administration Workshop ii 14-32
1