Текст
                    
D17092RU30
Версия 3.0
Сентябрь 2007
D52834
ORACLG

5 9 Oracle Database 10g: Администрирование II Том I • Руководство слушателя
Authors Copyright Ф5-2С06, Oracle. All rights reserved. Tom Best MJ. Billings 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 Technical Contributors and Reviewers 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, 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 Yi Lu Andreas Reinhardt Ira Singer James Spiller Janet Stem Jean-Francois Vernier Oleg Ivanov 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, JO Edwards, and PeopleSoft are registered trademarks of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Перевод выполнен: Догадкин E.. УКЦ ФОРС, 2007 Editors Aju Kumar Nita Pavitran Graphic Designers Steve Elwood Sanjeev Sharma Publisher Sujatha Nagendra
Содержание Предисловие 1 Введение Цели урока 1-2 Цели курса 1 -3 Рекомендуемое расписание 1 -4 Что рассматривалось в курсе Администрирование I 1-5 Примеры, используемые в курсе: схема HR 1 -6^ Oracle Database 10g база данных для сетевых вычислений (Grid) I-7 Обзор архитектуры базы данных 1-8 < Структуры памяти Oracle 1 -9 Процессы Oracle 1-11 Обзор управления экземпляром Oracle 1-12 Физическая структура базы данных 1-14 Файлы, сопровождаемые Oracle (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-11 Управление носителем 2-12 Использовании флэш-области восстановления вместе с RMAN 2-14 Мониторинг флэш-области восстановления с помощью ЕМ 2-16 Использование пространства во флэш-области восстановления 2-17 V$ FLAS H_RECOVER Y_AREA_US AGE 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 in
Опции управления каналами 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 Опции команды В ACKU Р 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
Повторное создание файла парольной аутентификапин 4-16 Итоги 4-18 Обзор практического занятия: восстановление после потери временного файла и оперативного журнального файла 4-19 5 Восстановление базы данных Рассматриваемые вопросы 5-2 Методы восстановления 5-3 Восстановление, управляемое пользователем: команда RECOVER 5-4 Восстановление с помощью RMAN: команды RESIDE и 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 Обзор операции Fl a shbac k Database 6-14 Описание процесса Flashback Database 6-15 Конфигурирование Flashback Database 6-16 v
I Конфигурирование возможности Flashback Database с помощью ЕМ 6-17 Примеры 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 Симптомы повреждения блоков: OR А-1578 7-4 Как обнаруживать и устранять влияние повреждений 7-5 Функциональные возможности, имеющие отношение к обнаружению и устранению повреждений 7-7 Утилита DBVERIFY 7-8 Интерпретация выходных данных утилиты DBVERIFY 7-9 Команда AN AL Y ZE 7-11 Проверка целостности блока в реальном времени: DBJBLOCK_CHECKING 7-12 Проверка целостности блока в реальном времени: DBJBLOCK_CHECKSUM 7-13 Использование утилиты EX Р для обнаружения повреждения 7-14 Использование flashback в случае логических повреждений 7-15 Пакет DBMSJREPAIR 7-16 Использование пакета DBMS RE PAIR 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 IRRK •"W I i vi
Как функционирует ASM М 8-16 Конфигурирование ASMM с использованием Database Control 8-11 Ручное конфигурирование ASMM 8-18 Использование автонастраиваемых параметров SGA 8-21 Использование параметров SGA, настраиваемых вручную 8-22 Использование представления V$PARAMETER 8-23 Изменение значения SGA TARGET 8-24 Отключение ASMM 8-25 Ручное изменение динамических параметров, влияющих на размер SGA 8-26 Программная глобальная область (PGA) 8-27 ? Автоматическое управление пространством PGA 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 Асинхронная операция COMMIТ 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 •и ПИИ- |НИГ 11 ИШ I ¥1Н
Результаты операции сжатия ГЫ 3 Возврат пространства при использовании ASSM П-14 Обзор сегментного консультанта 1Ы 5 Сегментный консультант 11-16 Реализация рекомендаций 11-18 Database Control и сжатие сегмента 11-19 Сжатие сегментов с использованием SQL 11 -20 Управление выделением пространства для возобновления операции П -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
Примеры команд Al t е г DISKGROU Р 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 Пример: SYSTEM PLAN 13-8 Создание нового ресурсного плана 13-9 Создание групп потребителей 13-10 Включение пользователей в группы потребителей ресурсов 13-11 Задание директив ресурсного плана 13-12 Методы распределения ресурсов в плане 13-13 Сравнение методов EMPHAS 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 1. Создание программы 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-2.1 1. Создание объекта цепочки 14-22 2. Определение шагов цепочки 14-23 3. Определение правил цепочки 14-24 4. Запуск цепочки 14-25 Мониторинг цепочек заданий 14-26 Дополнительные понятия планировщика 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 Обзор шифруемых бэкапов RM AN 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 NL.S-преобразования данных при использовании утилит 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 Приложение В: термины и сокращения Приложение Е: Разделяемые серверные процессы Oracle Рассматриваемые вопросы Е-2 Установление соединения Е-3 Выделенный серверный процесс Е-4 Пользовательские сеансы Е-5 Пользовательские сеансы: выделенный сервер Е-6 Пользовательские сеансы: разделяемый сервер Е-7 Обработка запроса Е-8 SGAhPGA Е-9 ЦВВ - И ШМВ Ш Ш" f '.W (ив хн ЯЯШШ I $ I -J шш а 1
UGA и разделяемый сервер Oracle E-10 Конфигурирование разделяемого сервера Oracle Е-11 Параметр DISPATCHERS Е-12 Параметр S HARE D__ SERVERS E-14 Параметр MAX__SHAREDSERVERS E-15 Параметр СIRCU ITS E-16 Параметр SHARED_SERVER_SESSIONS E-17 Другие параметры E-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-11 Интерфейсные опции Oracle Secure Backup F-12 У правление зашитой данных 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-25 Управление устройствами с помощью ЕМ 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 xili
Рекомендуемая Oracle стратегия резервирования F-35 Сопровождение бэкапов на ленте F-36 Выполнение восстановления БД с использованием бэкапов на ленте F-37 Резервирование файлов файловых систем с помощью Oracle Secure Backup 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-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: пакет DBMS__ROWID 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
Обучение технологии Oracle Н~8 Примеры использования Oracle (ОВЕ) Н-9 Журнал Oracle Magazine Н~ 10 Сообщество пользователей и разработчиков приложений Oracle Н~11 Техническая поддержка: Oracle MezdLink Н-12 Спасибо! Н-13 Индекс XV
Мвк g jg^^ g g |ивв к кам it йаав к йма к ймк Ы йма к Ьнм ж к шшш мав «на вм> f
Общие сведения Перед началом изучения курса • необходимо иметь опыт практического использования SQL и базовые знания о командах Linux Предварительные знания Oracle Database 10g: Администрирование I (D i 7090RU20) Как организован курс Курс Oracle Database 10g: Администрирование //проводится инструктором и включает теоретический материал и практические упражнения. Демонстрационные примеры и предварительно подготовленные практические занятия иллюстрируют изучаемые концепции и помогают приобрести необходимые навыки. 5 Рекомендуемые последующие курсы * Oracle Database 10g: SQL Tuning Workshop (DI 7265GC10) • Oracle Enterprise Manager 10g Grid Control (D17244GC11) • Oracle Database 10g: Real Application Clusters (D17276GC20) * Oracle Database 10g: Implement Streams (D17333GC10) • Oracle Database I ()g: 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 Preface ~ 4 Типографическая система обозначений Типографские обозначения в тексте Идентификатор B14196-02 B14231-01 B14249-01 B14191-02 B14192-03 B14220-02 B14223-02 В14225-01 B14199-02 В14212-02 B14213-01 В14214-02 B14211-01 B14258-01 B14261-01 B14193-03 В14194-03 В14237-02 B14266-01 B14195-02 В14200-02 B14215-01 B14257-01 В14229-01 ! Обозначение^ Элемент1 „Пример _ - ; Полужирный шрифт Придание особого значения словам и фразам (только для Web-контента) Для навигации внутри этою приложения не щелкайте на кнопке Back или Forward. Полужирный [ кдаир 1 Квадратные скобки Термины глоссария, j если он есть. j В алгоритме вводится новый ключ. Название клавиши Нажмите на клавишу (Enter]. Прописные и строчные буквы Кнопки, флажки, триггеры, окна Щелкните на кнопке Выполнить. Установите флажок Не Удалять Карточку. Назначьте триггер When-Validate-ltem блоку ORD Открыть окно Основное Расписание. Знаки вставки Путь в меню Выбери File > Save. Запятые Последовательность клавиш Нажмите и отпустите по очереди следующие клавиши: [ Alt], [F], [D] „ Шрифт Courier new с учетом регистра (по умолчанию нижний регистр) Выходной код, имя каталога, имя файла, ; пароль, путь доступа, ввод пользователя, имя пользователя. Строка кода: debug. seti (* I ’, 300); Каталог: bin (DOS), $FMHOME (UNIX) Имя файла: расположение файла init.ora Пароль: введите пароль tiger Путь доступа: откройте с: \my___docs\projects Ввод пользователя: введите 300 Имя пользователя: соединитесь как HR. С прописной буквы Метки (за ‘ исключением имен | собственных) Адрес клиента (но Oracle Payables) Курсив ! Слова и фразы, которые необходимо подчеркнуть, названия . книг и курсов, ' переменные Не сохраняйте изменения в базе данных. Более подробная информация содержится в руководстве Oracle Database SQL Reference 10g Release 2(10.2). Введите user_id@fors . com, где userjd- имя пользователя. Preface - 5
Типографическая система обозначений (продолжение) Типографские обозначения в тексте (продолжение) Обозначение Элемент \ Пример Кавычки Элементы интерфейса с длинными именами, у которых прописная буква только первая; ! названия глав и уроков в ссылках. Выберите‘Тпс1ибе a reusable module component" и щелкните на Finish. Эта тема рассматривается в уроке ""Работа с объектами." Верхний регистр Имена столбцов, команды SQL, схемы, таблицы, триггеры базы данных. Используйте команду SELECT для просмотра информации, хранимой в столбце LAST_NAME таблицы EMPLOYEES. Типографическая система обозначений (продолжение) Типографические соглашения в путях навигации В курсе используются упрощенные пути навигации, Например, для Oracle Applications: (N) Invoice > Entry > Invoice Batches Summary (M) Query > Find (B) Approve Этот упрощенный путь интерпретируется следующим образом: L (N) В окне навигатора выберите Invoice > Entry > Invoice Batches Summary. 2, (M) В меню выберите Query > Find. 3. (В) Нажмите на кнопку Approve Обозначения: VM* > * I й* " । Ш (N) ~ Навигатор (I) ~ Пиктограмма (M) = Меню (H) = Гиперссылка (T) = Табуляция (В) - Кнопка Типографские обозначения в коде Обозначение . | Элемент Пример \ Нижний регистр , Имена столбцов, таблиц. | триггеров базы ; данных SELECT last__name FROM employees; CREATE OR REPLACE TRIGGER secure employees Пароли CREATE USER scott IDENTIFIED BY tiger; | Объекты PL/SQL items.DELETE(3) ; | Нижний 1 регистр, курсив Синтаксические переменные CREATE ROLE role | Верхний | регистр Команды и функции SQL SELECT first__name FROM employees; Preface - 7 Preface - 6
Введение ORACLG Copyright © 2006. Oracle. АН rights reserved.
1-2 Copyright © 2006, Grade. AH rights reserved. Oracle Database 10g: Administration Workshop II 1-2
Цели курса В ходе этого курса вы получите практический опыт: • Использования современных методов резервирования и восстановления, предоставляемых утилитой Recovery Manager (RMAN) • Применения методов мониторинга базы данных для настройки памяти, производительности и структур хранения • Управления ресурсами, планирования выполнения заданий, решения вопросов безопасности и глобализации ______________________________________ ____ 1-3 Copyright © 2006, Oracle. All rights reserved. Oracle Database 10g: Administration Workshop II 1-3
Рекомендуемое расписание * 1: Введение Ц 2: Конфигурирование RMAN 3: Использование RMAN 4: Восстановление после несущественных потерь Л 5: Восстановление 6: Флэшбэк 7: Повреждения 8: Память 9: Производительность 10: Схема 11: Управление хранением 12: ASM 13: Ресурсы 14: Планировщик 15: Безопасность 16: Глобализация 17: Практикум Приложения M Copyright •© 2006, Oracle. All rights reserved. Что рассматривалось в курсе Администрирование/ да ! 1. Введение д 13. Производительность ‘I 2. Инсталляция 14. Концепции резервирования 3. Создание БД и восстановления 4. Экземпляр 15. Резервирование 5. Структуры хранения 16. Восстановление 6. Пользователи wTl 17. Флэшбэк 7. Схема я 18. Перемещение данных 8» Данные & Одновременный доступ Ц 9. Данные отмены 10. Безопасность 11. Сеть 12. Активное сопровождение Oracle Database 10g: Administration Workshop II 1-5 Oracle Database 10g: Administration Workshop II 1-4
Примеры, используемые в курсе: схема hr Copyright © 2006, Oracle, All rights reserved. ордсие Примеры, используемые в курсе: схема HR В курсе используется приложение HR (Human Resources,Персонал). Оно может быть включено как составная часть в создаваемую базу данных. Ниже перечислены основные бизнес-правила приложения HR: • В каждом отделе могут работать один или несколько служащих. Каждый служащий может быть зачислен в один и только один отдел. • Каждая должность должна быть занята одним или несколькими служащими. Каждый служащий в данное время должен занимать одну и только одну должность. • При изменении отдела или должности служащего в таблицу STORY записывается строка, в которой указываются даты начала и завершения периода, в течение которого служащий занимал определенную должность в каком-то отделе. Строки таблицы JOB_HI STORY однозначно идентифицируются составным главным ключом (РК), включающим столбцы EMPLOYEE__ID и START__DATE. Условные обозначения: РК ~ primary key (главный ключ). FK - foreign key (внешний ключ) Сплошная линия отражает обязательное ограничение внешнего ключа (FK), пунктирная линия - необязательное ограничение FK. Таблица EMPLOYEES также имеет рефлексивный внешний ключ. Это ограничение реализует бизнес-правило: каждый сотрудник может подчиняться одному и только одному менеджеру. Этот FK необязательный, потому что самый высокопоставленный сотрудник никому не подчиняется. I w йв Oracle Database 10g: Administration Workshop II 1-6
Oracle Database 10g: база данных для сетевых вычислений (Grid) • Автоматическое управление пространством • Переносимое кластерное программное обеспечение • Real Application Clusters и автоматическое управление рабочей нагрузкой • Ресурсный менеджер • Oracle Streams • Централизованное управление с помощью Enterprise Manager Grid Control • Новые функциональные возможности самоуправления базы данных Oracle 10g I 1-7 Copyright © 2006, Oracle. All rights reserved. Oracle Database 10g: The Database for the Grid Oracle Database 10g- первая база данных, спроектированная для грид-вычислений (grid computing}. В ней можно выделить некоторые наиболее важные функциональные возможности: * Автоматическое управление пространством (Automatic Storage Management, ASM), поддерживающее виртуальную среду, упрощающую предоставление устройств для хранения информации баз данных. • Oracle Database 10g предоставляет переносимое кластерное программное обеспечение кластеров, функционирующее на всех платформах. • Oracle Database 10g обеспечивает автоматическое управление рабочей нагрузкой служб внутри базы данных в среде кластера (RAC). • 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
Обзор архитектуры базы данных На следующих страницах представлен обзор архитектуры базы данных 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 Основные структуры памяти, связанные с экземпляром 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). 9 Пул потоков (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} выключено. G Я0 4 Процессы Oracle Серверный процесс Серверный процесс Серверный процесс Системная глобальная область SGA Серверный процесс Системный монитор SMON Монитор процессов PMON Процесс записи в БД DBWn Процесс контрольной точки СКРТ Процесс записи в журнал LGWR Архиватор ARC/? Фоновые процессы 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 1Од: Administration Workshop II 1-11 Oracle Database 10g: Administration Workshop II 1-10
Обзор управления экземпляром Oracle Пример: Запуск экземпляра БД Установление соединения яр SGA Кэш буферов БД Журнальный буфер Системный монитор (SMON) Монитор процессов (PMON) Файлы данных 1-12 ользовательскии процесс ерверныи : ( 3 J процесс Процесс I записи в БД I (DBWn) | Процесс I записи в журнал • (LGWR) Оперативные журналы & J Copyright © 2006, Oracle. All rights reserved. Обзор управления экземпляром Oracle В приводимом примере на наиболее общем уровне описываются операции, выполняемые базой данных Oracle. Этот пример отражает конфигурацию Oracle, в которой пользовательские и связанные с ними серверные процессы выполняются на различных компьютерах (соединение через сеть). 1. На компьютере, на котором функционирует Oracle (часто такой хост называют сервером баз данных) был запущен экземпляр базы данных Oracle. 2. На локальном компьютере или рабочей станции, на которой функционирует приложение запускается пользовательский процесс. Клиентское приложение пытается установить соединение с экземпляром с использованием драйвера служб Oracle Net. 3. Экземпляр обнаруживает поступающий от приложения запрос на установление соединения, связывает приложение с серверным процессом, который начинает выполнять запросы на выполнение операций, приходящие от пользовательского процесса. Обзор управления экземпляром Oracle ю (ользовательскии процесс j Экземпляр: Обработка команды SQL Файлы данных Управляющий Оперативные Архивные Пользователь изменяет строку» файл журналы журналы 1-13_______________________________Copyright © 2006, Oracle. All rights reserved. Обзор управления экземпляром Oracle (продолжение) 4. Пользователь изменяет строку. 5. Серверный процесс получает команду и проверяет, находится ли уже такая же команда в разделяемом пуле SGA. Если найдена разделяемая область SQL, серверный процесс проверяет привилегии доступа пользователя к требуемым данным, а затем использует для обработки команды существующую разделяемую область SQL. Если команда не найдена в разделяемом пуле, тогда для проведения синтаксического разбора и выполнения команды выделяется новая разделяемая область SQL. 6. Серверный процесс выбирает необходимые для обработки табличные данные из файлов данных или из блоков данных, находящихся в SGA. 7. Серверный процесс модифицирует табличные данные в SGA. 8. При фиксации транзакции процесс LGWR немедленно записывает в оперативный журнал информацию о транзакции. 9. Процесс DBWw пишет эффективным образом модифицированные блоки на диск. 10. Серверный процесс передает приложению сообщение об успешном или неудачном завершении операции. В ходе всей этой процедуры также выполняются фоновые процессы, отслеживающие условия, при которых требуется их вмешательство. Oracle Database 10g: Administration Workshop II 1-13 Oracle Database 10g: Administration Workshop II 1-12
Физическая структура базы данных Управляющие файлы Оперативные журналы Файлы данных ... i « р Файл параметров 1 I I жж Файл паролей Файлы с Архивные резервными объектами журналы Сигнальный и трассировочные файлы ИИИИ| ' ' " . ' ' <5racl£ 1-14 ______________________________Copyright © 2006, Oracle. АН rights reserved._______________________________________ Физическая структура базы данных В базе данных Oracle находятся перечисленные ниже виды файлов. • Управляющие файлы; содержат метаданные о самой БД (например, данные о физической структуре). Эти файлы очень важны для БД. Без них не могут быть открыты файлы данных и поэтому не может быть открыт доступ к информации БД. • Файлы данных; содержат данные пользователей и приложений, хранимые в БД. • Оперативные журналы (оперативные файлы повторного выполнения); позволяют восстановить базу данных после сбоя экземпляра. Когда работа базы данных завершается аварийно и при этом не теряются никакие файлы данных, экземпляр может восстановить базу данных на основе информации в этих файлах. Большое значение для успешной работы БД имеют следующие файлы. • Файл параметров; используется для описания стартовой конфигурации экземпляра. • Файл паролей; позволяет пользователям удаленно подсоединяться к базе данных для выполнения административных задач. • Файлы с резервными объектами; используются для восстановления базы данных. Эти файлы обычно копируются из резерва (restore) в случае потери носителя (media failure), а также в случае пользовательской ошибки, приведшей к повреждению или удалению первоначального файла. • Архивные журналы (архивные файлы повторного выполнения); хронологические копии созданных экземпляром оперативных журналов. Эти файлы позволяюг восстановить базу данных. Для этого сначала из резервных объектов базы данных извлекаются потерянные файлы данных, которые затем восстанавливаются с помощью архивных и оперативных журналов. Физическая структура базы данных (продолжение) * Трассировочные файлы; каждый серверный и фоновый процесс может писать в связанный с ним трассировочный файл. При обнаружении внутренней ошибки процесс выводит дамп с информацией об ошибке в трассировочный файл. Некоторая часть информации, которая пишется в трассировочный файл, предназначена для администратора базы данных, другая часть данных необходима службам технической поддержки Oracle (Oracle Support Services). * Сигнальные файлы; являются специальными трассировочными файлами. Сигнальный файл базы данных представляет собой хронологический журнал сообщений и ошибок. Oracle рекомендует просматривать такие файлы. 1 Oracle Database 10g: Administration Workshop II 1-15 Oracle Database 10g: Administration Workshop II 1-14
Файлы, сопровождаемые Oracle (OMF) Задание операций с файлами в терминах объектов базы данных, а не с использованием имен файлов. Параметр Описание DB_CREATE_FILEJDEST Указывает директорию по умолчанию в файловой системе для файлов данных и временных файлов DB_CREATE_ONLINE_LOG_ DESTjq Определяет месторасположение по умолчанию для создаваемых журнальных и управляющих файлов DBJRECOVERY_FI1EJDEST Определяет месторасположение резервных объектов, получаемых с помощью утилиты RMAN Пример: ALTER SQL> CREATE SYSTEM SET DB_CREATE_FILE_DEST = 'ZuOl/oradata'; TABLESPACE tbs_l; уя i, ..... лС . f \ r ж _J 1-16 Copyright © 2006, Oracle. AH rights reserved. Файлы, сопровождаемые Oracle (OMF) Использование файлов, сопровождаемых Oracle (Oracle Managed Files — OMF) устраняет необходимость прямого управления администратором файлами операционной системы, входящими в базу данных Oracle. Операции задаются в терминах объектов базы данных, а не с использованием имен файлов. При необходимости база данных использует внутри себя стандартный интерфейс файловой системы, чтобы создавать и удалять файлы следующих компонентов БД: • табличных пространства; • журнальных файлов; • управляющих файлов; • архивных журналов; • файлов отслеживания измененных блоков; • журналов отката; • резервов RMAN. В базе данных могут быть как файлы, сопровождаемые, так и не сопровождаемые сервером Oracle. Каталоги файловой системы, задаваемые в этих параметрах, должны существовать, и база данных их не создает. Для каталога должны быть установлены права доступа, позволяющие базе данных создавать в нем файлы. В примере на слайде задан параметр DB__CREATE__FI LEWDEST. Поэтому в команде CREATE TABLESPACE опущена фраза DATAFILE. Файл данных создается в месторасположении, определяемом параметром DB__CREA.TE__FILE__DEST. Oracle Database 10g: Administration Workshop II 1-16
Логические и физические структуры базы данных База данных Oracle - совокупность данных, обрабатываемых как единое целое. Обшее назначение базы данных заключается в хранении и получении связанной информации. База данных состоит из логических и физических структур. Табличные пространства База данных делится на логические компоненты хранения, называемые табличными пространствами. В них объединяются связанные между собой логические структуры. Например, в табличном пространстве обычно группируют все объекты приложения для упрощения некоторых административных операций. Можно создать табличное пространство для данных приложения и дополнительно табличное пространство для индексов приложения. Базы данных, табличные пространства и файлы данных На слайде показаны взаимосвязи между базой данных, табличными пространствами и файлами данных. Каждая база данных логически делится на одно или несколько табличных пространств. Для каждого табличного пространства явно создается один или несколько файлов данных. В них хранятся данные всех логических структур, размещенных в табличном пространстве. Для временного (TEMPORARY) табличного пространства вместо файла данных создается файл временных данных (tempfile). Oracle Database 10g: Administration Workshop II 1-17
Логические и физические структуры базы данных (продолжение) Схемы Схема - совокупность объектов базы данных, принадлежащих пользователю БД. К объектам схемы , например, относятся таблицы, представления, последовательности, хранимые процедуры, синонимы, индексы, кластеры и связи базы данных. В общем случае в число объектов схем включается все, что приложение создает в базе данных. Блоки данных Данные в Oracle на самом низком структурном уровне хранятся в блоках данных. Один блок данных связан с конкретным количеством байтов в физическом пространстве базы данных надиске. Для каждого табличного пространства при его создании задается размер блока. База данных использует и распределяет свое свободное просфанство в блоках данных Oracle. Экстенты Следующий более высокий уровень логического пространства базы данных называется экстентом. Он содержит конкретное количество смежных блоков данных (полученных при одном выделении), используемых для хранения информации определенного вида. Сегменты В логической структуре БД сегмент располагается на один уровень выше экстента. Сегмент - набор экстентов, выделенных определенной логической структуре. Ниже перечислены некоторые типы сегментов. * Сегменты данных., каждая таблица, отличная от кластеризованной и индекс- таблицы, имеет сегмент данных. Все табличные данные хранятся в экстентах своего сегмента данных. В секционированной таблице у каждой секции свой сегмент данных. У каждого кластера также имеется свой сегмент данных. Данные всех таблиц кластера располагаются в кластерном сегменте данных. • Индексные сегменты; у каждого индекса имеется индексный сегмент, в котором находятся все его данные. В секционированном индексе каждая секция имеет свой индексный сегмент. • Сегменты отмены', администратор базы данных создает одно табличное пространство типа UNDO для временного хранения информации отмены (undo). Эта информация используется для генерации данных при согласованном чтении из базы данных, а также при восстановлении базы данных и откате незафиксированных транзакций пол ьзователей. • Временные сегменты', создаются Oracle, когда командам SQL требуется рабочая область для завершения выполнения. После окончания выполнения экстенты временного сегмента возвращаются экземпляру для последующего использования. Задавайте временное табличное просфанство для каждого пользователя или же временное табличное пространство, используемое по умолчанию для всей базы данных в целом. База данных Oracle выделяет пространство динамически. Дополнительные экстенты выделяются, когда заполнены все экстенты сегмента. Так как выделение экстентов производится, когда это необходимо, на диске экстенты одного и того же сегмента могут быть смежными и несмежными. Oracle Database 10g: Administration Workshop II 1-18
Архитектура базы данных: обобщенный перечень структурных компонентов • Структуры памяти: - Системная глобальная область (SGA): кэш буферов БД, журнальный буфер и другие пулы - Программная глобальная область (PGA) • Процессы: - Пользовательский процесс и серверный процесс - Фоновые процессы: SMON, PMON, DBWn, СКРТ, LGWR, ARCn и т.д. • Структуры хранения: - Логические: база данных, схема, табличное пространство, сегмент, экстент, блок Oracle - Физические: файлы данных, файлы параметров, журналы и блок ОС pPACLg: 1-19 Copyright © 2006, Oracle. Ail rights reserved. Архитектура базы данных: обобщенный перечень структурных компонентов На этом уроке был представлен обзор структурных компонентов базы данных Oracle (структуры памяти, процессы и структуры хранения). Понимание архитектуры базы данных Oracle необходимо для изучения этого курса. Oracle Database 10g: Administration Workshop II 1-19
Г 1-20 Итоги Перечень целей курса Обзор архитектуры базы данных Oracle 10g Copynght © 2006. Oracle. AH nghts reserved. fag ЯИ* wi ' I . Ш МВНГ nl ; : ШЯ gj^ OMNK* Конфигурирование Recovery Manager |Copyright © 2006, Oracle. All rights reserved Oracle Database 10g: Administration Workshop II 1-20
Рассматриваемые вопросы * Репозиторий и каталог восстановления RMAN • Описание интерфейса библиотеки управления носителем * Конфигурирование параметров базы данных, влияющих на операции, выполняемые RMAN • Подсоединение к трем различным типам баз данных с использованием RMAN * Конфигурирование двух видов политики удержания • Изменение стандартных установок RMAN по команде configure . f ... • 2-2 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 II 2*2
Обзор резервирования и восстановления В курсе Администрирование / рассматривались следующие основные вопросы, связанные с резервированием и восстановлением: • Типы сбоев, которые могут произойти - в команде, сеансе, сбой экземпляра, потеря носителя и т.д. • Конфигурирование режима archivelog • Планирование автоматического резервирования • Инкрементальное резервирование • Выполнение и настройка восстановления после сбоя экземпляра I ' V; z ' ГЛПЛ/-1 1 OwACLfc 1 I 2-3 Copyright © 2006, Oracle. All rights reserved. Обзор резервирования и восстановления В курсе База данных Oracle: администрирование I рассматривались основные вопросы, связанные с резервированием и восстановлением. В последующих уроках некоторые из этих вопросов будут рассмотрены значительно подробнее. Oracle Database 10g: Administration Workshop II 2-3
Возможности утилиты Recovery Manager RMAN предоставляет гибкие методы: • Резервирования баз данных, табличных пространств, файлов данных, управляющих файлов и архивных журналов • Управления задачами резервирования и восстановления • Выполнения инкрементального резервирования и восстановления на уровне блоков • Выявления поврежденных блоков во время резервирования • Использования двоичного сжатия во время создания бэкапов 2-4 Copyright © 2006; Oracle. АН rights reserved.j Возможности утилиты 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). Планировщик будет рассмотрен в уроке “Автоматизация выполнения задач с помощью планировщика”. 9 Обнаружение поврежденных блоков во время резервирования и доступ к информации о таких блоках с использованием динамических представлений V$BACKUP_CORRUPTION и V$COPY_CORRUPTION . • Следующие особенности RMAN повышают производительность: - автоматическое распараллеливание процессов резервирования, копирования из бэкапа и восстановления; - отсутствует генерация лишних журнальных записей при оперативном резервировании базы данных; при резервировании чтение данных из файла может выполняться ограниченное параметром количество раз в секунду, чтобы не снизить производительность OLTP-системы; - при помощи мультиплексирования предотвращается загруженность файлов операциями чтения/записи и обеспечивается непрерывность подачи данных для записи на ленточный носитель. 9 Для повышения скорости работы и надежности при взаимодействии инструментов управления носителем сторонних фирм с устройствами для хранения данных используется специальный программный интерфейс п риложения (АР 1). • При использовании пользовательских методов управления необходимо хранить информацию обо всех файлах баз данных и бэкапах. Когда требуется восстановление, администратор должен найти местоположение бэкапов, скопировать их в правильное место с использованием команд ОС и выбрать применяемые журналы. RMAN выполняет эти задачи автоматически. Это преимущество в особенности важно при использовании файлов, сопровождаемых Oracle (Oracle Managed Files) и флэш-области восстановления (Flash Recovery Area). Примечание He все из этих свойств рассматриваются в данном курсе. Дополнительную информацию о: • RMAN и его возможностях см. в документах Oracle Database Backup and Recovery Basics и Oracle Database Backup and Recovery Advanced Users Guides 9 синтаксисе команд RMAN см. в руководстве Oracle Database Recovery Manager Reference. Oracle Database 10g: Administration Workshop II 2-5
Компоненты утилиты Recovery Manager восстановления ............. *“ й»:-: *» Copyright © 2006, Oracle. All rights reserved. Компоненты утилиты 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) или выполнении восстановления табличного пространства на момент-в-прошлом (tablespace point-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. ar L^ACLjE 2-8 Copyright €> 2006, Oracle. АН rights reserved. a Oracle Database 10g: Administration Workshop li 2-8
Сравнение видов репозитория RMAN Управляющий файл: Каталог восстановления: - Упрощение администрирования - Копии данных управляющего - Репозиторий по умолчанию файла - Пространство, позволяющее хранить больше информации - Может использоваться для обслуживания многих целевых БД - Можно хранить скрипты RMAN ” ,:;й I Метаданные Перечень резервных наборов Перечень копий образов 2-9 Copyright © 2006, Oracle. Ail rights reserved. Сравнение видов репозитория RMAN Данные репозитория RMAN всегда хранятся в управляющем файле целевой базы данных. Такие данные также могут храниться в схеме отдельной базы данных, называемой каталогом восстановления. Каталог восстановления {recovery catalog) предохраняет информацию о резервировании, сохраняя ее в отдельной базе данных, которая может оказаться полезной в случае потери управляющего файла. Каталог восстановления позволяет хранить дольше хронологические данные о резервных объектах, ч ем это позволяет делать репозиторий на основе управляющего файла. В одном каталоге восстановления можно хранить информацию о многих целевых базах данных. Кроме того, в нем можно хранить скрипты, содержащие последовательность команд RMAN для решения обычно возникающих задач резервирования. Хранить скрипты в централизованном каталоге восстановления может быть удобнее, чем использовать командные файлы. Для небольших систем не рекомендуется использовать каталог восстановления, так как администрирование отдельной базы данных каталога восстановления может вызвать только одни дополнительные затраты. Oracle Database 1Од: Administration Workshop II 2-9
Сравнение видов репозитория RMAN (продолжение) Создание каталога восстановления 1. Создайте базу данных, которая будет использоваться в качестве каталога восстановления. В качестве альтернативы для хранения каталога восстановления можно использовать уже существующую базу данных. Один каталог восстановления позволяет обслуживать несколько баз данных. Поэтому можно выбрать вариант, при котором для обслуживания работ по резервированию и восстановлению всех баз данных создается один каталог восстановления. 2. В базе данных каталога восстановления создайте пользователя-владельца информации каталога восстановления. Например, пусть catdb-имя базы данных каталога, rcat__ts - имя табличного пространства, которое было создано для хранения данных каталога. $ sqlplus sys/passwordQcatdb as sysdba SQL> CREATE USER rman IDENTIFIED BY cat 2 TEMPORARY TABLESPACE temp 3 DEFAULT TABLESPACE rcat__ts 4 QUOTA UNLIMITED ON rcat_ts; SQL> GRANT UNLIMITED ON rcat__ts TO rman; 3. Предоставьте роль RECOVERY JDATALOGJDWNER владельцу каталога. Эта роль содержит все привилегии, необходимые для сопровождения и запроса информации из каталога восстановления. GRANT RECOVERY J3ATALOG_OWNER ТО rman; 4. Запустите RMAN и подсоединитесь как владелец каталога. $ rman catalog rman/cat@catdb RMAN> CREATE CATALOG TABLESPACE rcat_ts; 5. Подсоединитесь в RMAN к целевой базе данных и зарегистрируйте ее в новом созданном каталоге восстановления. $ rman target sys/oracleQorcl catalog rman/cat@catdb RMAN> register database; Примечание: базу данных каталога восстановления следует резервировать. Oracle Database 10g: Administration Workshop II 2-10
1 Месторасположения бэкапов • Каталог на диске • Устройство хранения данных на магнитной ленте (необходима библиотека управления носителем) - Обычно используется при аварийном восстановлении, когда потеряны бэкапы на диске. • Флэш-область восстановления - Отдельная дисковая область, используемая для резервирования и восстановления, а также для отката базы данных назад. - Необходимо задать ее месторасположение и размер. - Имена создаваемым файлам присваиваются автоматически как файлам, сопровождаемым Oracle. - Файлы хранятся с учетом политики удержания и автоматически удаляются при необходимости. |2-11 Copyright © 2006, Oracle. All rights reserved. Месторасположения бэкапов При резервировании файлы могут записываться в указанный каталог на диске, на ленту с использованием библиотеки управления носителем (Media Management Library) или во флэш-область восстановления. Получаемые при резервировании бэкапы размещаются на дисковом носителе данных, если указывается катало на диске или флэш-область восстановления . Обычно такие резервные объекты регулярно переносятся в автономном режиме на ленту через интерфейс управления носителем, чтобы освободить место на диске. Любой задаваемый в качестве места расположения бэкапов каталог на диске должен уже существовать. При использовании флэш-области восстановления упрощается решение многих задач резервирования и восстановления. База данных Oracle автоматически присваивает имена файлам, а также удаляет устаревшие (obsolete) файлы при нехватке пространства. Oracle Database 10g: Administration Workshop II 2-11
Управление носителем Copyright © 2006, Oracle. All tights reserved. Of? AU/. Управление носителем Для работы с запоминающими устройствами на ленте утилите 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» Процесс резервирования - утилиты RMAN Область базы Флэш-область восстановления данных DB_RECOVERY_FILEJDEST = * /u01/oracle/fга1 DB_RECOVERY_FILE_DEST_SIZE = 2G 2-14 Copyright © 2006, Oracle. All rights reserved. Использовании флэш-области восстановления вместе с RMAN Операции резервирования можно выполнять без флэш-области восстановления (flash recovery area). Однако ее использование упрощает управление дисковым пространством и файлами, имеющими отношение к резервированию и восстановлению. Так не требуется задавать имена для файлов бэкапов, поскольку RMAN генерирует эти имена автоматически в соответствие с шаблонами файлов, сопровождаемых сервером Oracle (Oracle Managed Files - О MF). Каждый раз, когда RMA.N создает файл во флэш-области восстановления, Oracle изменяет список файлов, хранить которые на диске больше необязательно. Если файл необходимо записать во флэш-область восстановления и в ней нет доступного пространства, Oracle удаляет файл из списка устаревших (obsolete) файлов и заносит уведомление об этом в сигнальный файл. В ситуации, когда во флэш-области нет свободного пространства и нет устаревших файлов, которые можно удалить, выдается предупреждающее сообщение. Для разрешения этой проблемы можно добавить дисковое пространство, зарезервировать файлы на устройстве третьего уровня (tertiary device), удалить с помощью RMAN файлы из флэш-области восстановления или изменить политику удержания RMAN. По умолчанию RMAN автоматически помещает резервируемые файлы во флэш- область восстановления, если установлен параметр инициализации DB_RECOVERY FILE DEST. Размер флэш-области восстановления задается параметром инициализации DB RE С OVERYJFI LEWDEST SIZE. Oracle Database 10g: Administration Workshop II 2-14
Использовании флэш-области восстановления вместе с RIVIAH (продолжение) Примечание. Флэш-область восстановления может быть размещена на ASM- устройстве (Automated Storage Management). Флэш-область восстановления может также располагаться в кластерном файловом хранилище (Cluster File Storage - CFS) Oracle или в любой локальной системе хранения. f Oracle Database 10g: Administration Workshop II 2-15
Мониторинг флэш-области 2-16 Copyright © 2006, Oracle. All rights reserved. OWACLfi Мониторинг флэш-области восстановления с помощью ЕМ Метрики флэш-области восстановления можно просмотреть в реальном времени, используя ЕМ Database Control Console. Прокрутите вниз страницу Maintenance и выберите в секции Related links ссылку All Metrics. Просмотрите список и щелкните на Recovery Area. В результате будет выведена страница с метрикой Recovery Area Free Space (%), которая отражает процент свободного пространства в области восстановления . Щелкните на значение метрики в процентах, чтобы просмотреть график использования области восстановления. Использование пространства во флэш- области восстановления « Задайте для политики удержания минимальное значение, подходящее для вашей базы данных * Регулярно резервируйте архивные журналы и удаляйте архивные журнальные файлы после завершения резервирования ♦ Используйте команды RMAN report obsolete и delete obsolete для удаления ненужных резервных наборов и копий файлов Использование пространства во флэш-области восстановления Во избежание превышения ограничения на размер области восстановления, не следует хранить в ней файлы, сопровождаемые пользователем. При необходимости, когда это возможно, выполняйте следующие действия: • удаляйте ненужные файлы из области восстановления с помощью 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 Oracle Database 10g: Administration Workshop II 2-16
V$FLASH__RECOVERY_AREA_US AGE Для просмотра данных об использовании дискового пространства флэш-области восстановления можно выполнить запрос к п редста в лен и ю v$flash_recovery_area_usage . . ИШ1 1...... JI ....... .w» .v ..1 Г «iiiiiiuuh ". т т SQL> SELECT file_type, percentgspacejased AS used, 3 percent_space_reclaimable AS reclaiinable, 4 numberjof_files AS number 5 FBOM v$flash_reaovery_area_usage ; FILEJTYPE VS1D ^CLAIMABLE FILES « X» «v. — ww -и- ж 'Wfc MW W* «HO — — ~~ — L- f 2-18 Copyright © 2006, Oracle. All rights reserved. Oracle Database 10g: Administration Workshop II 2-18
V$FLASH_RECOVERY_AREA_USAGE Столбцы данного представления: • FILEJTYPE показывает тип файла (CONTROLFILE. ONLINELOG, ARCHIVELOG, BACKUPPIECE, IMAGECOPY, FLASHBACKLOG). > PERCENT_JSPACE_USED процент пространства флэш-области восстановления, занимаемого файлами данного типа. . PERCENT_SPACE_RECLAIMABLE - процент пространства флэш-области восстановления, используемого в настоящее время для хранения таких файлов данного типа, которые можно удалить, так как они устарели (obsolete), избыточны (redundant) или были зарезервированы на третичные устройства (tertiary device). • NUMBER_OF_FILES - количество файлов указанного типа. Oracle Database 10g: Administration Workshop II 2-19
Резервирование флэш-области восстановления Database Instance: > Schedule Backup Schedule Backup Customized Backup Select the objects) you want to back. up. \ Schedule Cust omized Backup J ? Whole Database (he fob-inq ЗДШгже» &ft ft патл ? --iwie dctsime backup STAGiNQ Г Tablespaces Г Datafiles Г Archivelogs р5д|1! RecoveryFiles on Disk | aHady backed up to tape RMAN> BACKUP RECOVERY FILES; 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
Преимущества использования флэш- области восстановления • Упрощение размещения резервных объектов базы данных. • Автоматическое управление дисковым пространством, выделяемым для файлов, используемым при восстановлении. • Не требуется вносить изменения в существующие скрипты. • Размещение бэкапов базы данных, архивных журналов и бэкапов управляющего файла во флэш-области восстановления. 2-21 Copyright © 2006, Oracle. AH rights reserved. Преимущества использования флэш-области восстановления Использование флэш-области восстановления для всех файлов, связанных с восстановлением, упрощает текущее администрирование базы данных и основывается на параметрах инициализации 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И DBJRECOVERYJFILEJDESTJSIZE (вСЛИ используется флэш-область восстановления) • Переменные окружения: - NLSJDATE_FORMAT - NLS LANG Copyright <£> 2006, Oracle. All rights reserved. Задание параметров, влияющих на выполнение RMAN RMAN хранит информацию о целевой БД и операциях резервирования и восстановления в своем репозитарии. Размер хранимой информации может расти в зависимости от частоты резервирования, числа архивных журнальных файлов и периода удержания записей RMAN". Параметр CONTROL_FILE_RECORD_KEEP__TIME определяет минимальный период (в днях), в течение которого информация утилиты RMAN хранится в управляющем файле до перезаписи. Небольшое значение параметра приводит к частому переписыванию информации, замедляя таким образом рост управляющего файла. При использовании каталога восстановления следует выбирать небольшие значения параметра. Этот параметр воздействует только на записи управляющего файла, которые используются повторно в круговом режиме. К ним, например, относятся записи об архивных журналах и о различных резервных объектах. Параметр не влияет на записи о файлах данных, табличных пространствах и потоках оперативных журналов, которые никогда повторно не используются, если только, например, соответствующий файл не удаляется из табличного пространства. По умолчанию величина параметра CONTROLJFILE RECORD_KEEP_ TIME равна 7 дням. Oracle Database 10g: Administration Workshop II 2-22
Задание параметров, влияющих на выполнение RMAN (продолжение) Когда определена флэш-область восстановления, в нее по умолчанию пишутся файлы, получаемые в результате операции резервирования. Размер и местоположение флэш-области восстановления задаются с помощью параметров инициализации DBJRECOVERY___FILEJDEST и DB_RECOVERY_FILE__DEST__SIZE. Можно также задать политику удержания, которая определяет, когда резервные объекты становятся ненужными. В случае задания такой политики RMAN управляет хранением резервных объектов и удаляет устаревшие бэкапы на диске, а также уже скопированные на ленту, когда требуется пространство. Однако при этом RMAN сохраняет на диске столько зарезервированных объектов, сколько позволяет пространство. % Таким образом минимизируется объем требуемых операций restore при выполнении действий по извлечению из бэкапа (restore), хранимому на ленте, и восстановлению (recovery). Размер флэш-области восстановления можно в любой момент изменить, используя динамический параметр инициализации DB_RECOVERY__FILE__DEST. Переменные окружения NLS__DATE__FORMAT и NLS__LANG определяют формат временных параметров таких команд RMAN, как RESTORE, RECOVER и REPORT. Когда база данных не смонтирована, по умолчанию предполагается, что ее кодировка US7ASCII. Если кодировка отличается от предполагаемой по умолчанию, тогда задайте соответствующую переменную окружения NLS_LANG. Например, если кодировка CL8MSWIN1251, установите следующее значение для NLS__LANG: NLS_LANG=AMERICAN_AMERICA.CL8MSWIN1251 Oracle Database 10g: Administration Workshop II 2-23
Использование RMAN • Ресурсы: разделяемая память, дополнительные процессы • Привилегии пользователей - База данных: sysdba - Операционная система: доступ к устройствам • Удаленные операции - Создание файла паролей - Наличие резервной копии файла паролей Copyright © 2006, Grade, АН rights reserved. Использование RMAN Перед использованием утилиты Recovery Manager должны быть рассмотрены следующие вопросы: • Разделяемые ресурсы системы. Большинство операций RMAN выполняется с помощью серверных процессов Oracle. Такие операции могут выполняться параллельно, увеличивая пропускную способность. Это приводи! к тому, что параметр инициализации PROCESSES должен иметь достаточно большое значение. С точки зрения операционной системы это означает, что разделяемая память и семафоры должны быть адекватно установлены. • Множество пользователей, выполняющих привилегированные операции. Необходимо определить таких пользователей с соответствующими привилегиями, установленными на уровне базы данных Oracle и ОС. Например, чтобы запустить или остановить базу данных пользователю нужна привилегия SYSDBA. * Удаленные операции. Необходимо использовать файл паролей, чтобы с удаленной машины установить соединение с базой данных назначения через Oracle Net и выполнить такие привилегированные операции, как запуск и остановка БД.. • Использование каталога восстановления. Когда используется каталог восстановления, RMAN может выполнять больший набор функций по автоматическому резервированию и восстановлению. Использование каталога восстановления требует увеличения пространства и вызывает дополнительные затраты по его сопровождению. Необходимо решить, будете ли вы использовать отдельную базу для хранения каталога восстановления многих баз данных назначения. Oracle Database 10g: Administration Workshop II 2-24
Виды соединений RMAN Целевая БД каталога Вспомогательная БД восстановления БД Copyright © 2006, Oracle. All rights reserved. Виды соединений RMAN с базами данных Используя утилиту Recovery Manager, можно соединиться со следующими видами баз данных : • База данных назначения; администратор для соединения с БД назначения должен иметь привилегию SYSDBA. Эта привилегия необходима для успешного соединения. При этом происходит подсоединение к экземпляру целевой БД, в которой необходимо выполнить обычные операции 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 ORACLE SID $ хлап target / Windows NT: C:\> set ORACLE__SID=DB01 C:\> rman target / • Удаленный запуск RMAN rman target sys/password@DB01 2-26 Copyright © 2006, Grade. AH rights reserved Соединение с базой данных назначения без использования каталога восстановления Локальное соединение Для локального соединения с RMAN нужно ввести в командной строке ОС: в UNIX: $ ORACLE__SID=DB01; export ORACLE JSID $ rman target / в Windows:©: \> SET ORACLE__SID=DB01 C:\> rman target / Если в команде старта не указываются имя и пароль, а только косая черта (slash), происходит соединение под пользователем SYS с аутентификацией на уровне ОС. Можно также указать необязательное ключевое слово NOCATALOG: $ rman target / nocatalog NOCATALOG - режим по умолчанию, означающий использование RMAN без каталога восстановления. Удаленное соединение Чтобы соединиться с другого сервера, используйте псевдоним имени службы целевой базы данных в Oracle Net: $ rman target sys/targetjpwd@DBO1 Oracle Database 10g: Administration Workshop II 2-26
Дополнительные параметры при вызове RMAN из командной строки й С . i • Запись вывода RMAN в файл журнала: $ rman TARGET sys/oracle LOG $H0ME/oradata/u03/rman.log APPEND • Выполнение командного файла при вызове RMAN: $ rman TARGET sys/oracle CMDFILE=$HOME/scripts/my rman script.rev • Установление соединений с базами данных при запуске RMAN : $ rman TARGET SYS/sys_pwd@orcl CATALOG rman/rman @rcat _______. ;.........._____'____________________ 2-27 Copyright © 2006, Oracle. All rights reserved. Параметры, используемые при вызове 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, пока конфигурация не будет сброшена (CLEAR) или изменена. Oracle Database 10g: Administration Workshop II 2-28
В -!i f!i ill .•!• if> <»* (f> ill Л) (ft Конфигурирование настроек RMAN c помощью EM_________________________________________________________________ Backyp/Recovery Settings . _ _ backup Settings|--------- Backup Settings Recovery Catalog Settings Device Backup Set Pohcy ___ Maximum Backup Piece (File) p——r——— Size । Iми 21 Specify a value to restrict the see ofeaii b^l.ur,- piece Tape Settings ? The following parameters require additional configuration on different media pools. Copies of Datafile Backups [l typify th? w.inn of identical curves for ddtalfar о-#А(5рз. Copies of Archivelog Backups [1 Specify th* * numh-sr of cop>%3 ?=.‘ч srchivetey Host Credentials To save the backup settings, supply operating system login credentials to access the target database. =__.,=_, ,7 : * Username * • Password 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 tile and SPFILE ...). На этой странице можно также сконфигурировать поддержку отслеживания измененных блоков, которая обеспечивает более быстрое инкрементальное резервирование (Enable block change tracking for faster incremental backups). Примечание: такие измененные параметры применяются при выполнении любой операции резервирования, в которой эти установки явно не переопределяются. Oracle Database 10g: Administration Workshop II 2»29
Автоматическое резервирование управляющего файла RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON; Backup Settings Device Backup Sei I Policy I Backup Policy F Automatically backup the control file and server parameter file (SPFILE) with every backup and database structural change Autobackup Disk Location | Лг- ехш«-д csteclojy d-slgrsup nsrne fchere tbs control fse and server perahiete? file *=iil be bad Ad up if you do not зрее-гу a location, ths ffe# will be backed up to the recovery loe-xtk»- Oracle рекомендует включать автоматическое резервирование управляющего файла. 2-30 Copyright © 2006, Oracle. Ail 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 транслируется в строку с-IIIIIIIIII~ YYYYMMDD-QQ, где: • IIIIIIIIII означает DBID; * У YYYMMDD - это временная метка дня генерации бэкапа; • QQ - последовательность шестнадцатеричных чисел, начиная с 0 0 до максимального значения FF. Стандартный формат имени можно изменить по команде CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR &EVICE TYPE type TO 'строка В строке должна содержаться подстановочна! переменная %F и не могут присутствовать другие переменные подстановки. Пример: CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO 1 /u01/oradata/cf__ORCL__auto__%F ’ ; Автоматически резервируемый управляющий файл сохраняется во флэш-области восстановления, когда она сконфигурирована. При наличии автоматически зарезервированных управляющих файлов RMAN может восстановить базу данных, даже когда текущий управляющий файл, каталог восстановления и серверный файл параметров недоступны; Поскольку формат имен автоматических резервов хорошо известен, используя путь к каталогу, где хранятся автоматически зарезервированные копии управляющего файла, RMAN может найти и восстановить (restore) файл серверных параметров и управляющий файл. Oracle Database 10g: Administration Workshop II 2-31
Политика удержания • Политика удержания определяет, какие резервные объекты будут храниться и как долго. • Существует два вида такой политики: - Окно восстановления; задает период, внутри которого должна быть предоставлена возможность восстановления на любой момент времени. Бэкап файла 2 не должен удаляться л . Текущий Файл 2 Файл 1 момент _! - __1 _J_ V > 7-дневное удержание - Избыточность; определяет фиксированное количество обязательно хранимых резервных объектов. • Это взаимоисключающие друг друга политики, которые могут быть установлены по команде CONFIGURE. 2-32 Copyright © 2006, Oracle. АН 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$BACKUP__DATAFILE WHERE file#- ...) >- 7 В примере на слайде для Файла 1 и Файла 2 есть бэкапы, позволяющие восстановиться в рамках 7-дневного периода удержания. Бэкап Файла 2 не должен удаляться в соответствие с заданной политикой удержания, так как он поддерживает восстановление на любой момент 7-дневного периода. В рамках периода удержания был зарезервирован только файл 1, для файла 2 следует получить новый бэкап. Oracle Database 10g: Administration Workshop II 2-32
ж Ш >• W' Г' I Ж -в Политика удержания (продолжение) Вы должны задавать период окна восстановления меньшим либо равным значению параметра CONTROL JFILE_RECORDJKEEP_TIME, чтобы предотвратить перезапись в управляющем файле сведений о ранее полученных бэкапах. Если требуется задать количество удерживаемых зарезервированных образов, политика удержания определяется через избыточность {redundancy). Тогда в репозитории должно быть зарегистрировано необходимое количество резервных объектов, а лишние объекты будут рассматриваться как устаревшие (obsolete). По умолчанию RETENTION POLICY сконфигурирована как REDUNDANCY 1. Это означает, что только один зарезервированный образ для каждого файла должен храниться в произвольный момент времени. Резервный объект считается устаревшим (obsolete), если большее, чем требуется число версий одного и того файла находится в резервных объектах. v'^s/ Я «Й
Сопровождение установленных параметров • Используйте команду SHOW для вывода текущих установок: RMAN» SHOW CONTROLFILE AUTOBACKUP FORMAT; RMAN» SHOW EXCLUDE; RMAN» SHOW ALL;......... ......... • Используйте опцию clear для сброса и возврата к значениям по умолчанию для установочных параметров: RMAN» CONFIGURE BACKUP OPTIMIZATION CLEAR RMA»> CONFIGURE MAXSETSIZE CLEAR RMAN» CONFIGURE DEFAULT DEVICE TYPE CLEAR • -'v 1 . .Д t © v ga ] 2-34 Copyright© 2006, Oracle. All rights reserved. Copyright © 2006, Oracle. Ail rights reserved. 2-35 Сопровождение установленных параметров Команда RMAN SHOW позволяет просмотреть конфигурационные установки. После подсоединения к целевой БД по команде SHOW ALL выводятся8 только те конфигурационные установки, которые имеют отношение к соответствующему узлу и базе данных. Вернуться к значению параметра по умолчанию можно по команде CONFIGURE с опцией CLEAR. Ш 1" J# 1-" ( № I Ц Й».. ж Выделение канала Канал представляет собой поток данных, направленный на устройство определенного типа. Канал должен быть выделен перед выполнением команд резервирования и восстановления. Для каждого выделенного канала устанавливается соединение из RMAN с экземпляром целевой базы данных и создается серверный процесс. Каждой команде BACKUP, COPY, RESTORE или RECOVER, выполняемой в Recovery Manager, необходим хотя бы один канал. Тип выбранного накопителя определяет тип выделяемого канала. Число выделенных каналов задает максимальный уровень параллелизма при выполнении резервирования, копирования из резерва и восстановления. Представление V$BACKUP_DEVICE показывает поддерживаемые типы устройств. Oracle Database 10g: Administration Workshop II 2-35 Oracle Database 10g: Administration Workshop II 2-34
Автоматическое и ручное выделение канала • Автоматический канал предварительно сконфигурирован и используется в последующих командах. Чтобы изменить тип устройства по умолчанию для автоматически выделяемого канала, выполните: RMAN> CONFIGURE DEFAULT DEVICE TYPE TO sbt; • Канал, выделенный вручную, переопределяет автоматически сконфигурированный канал. Такой канал действует в рамках блока команды run: RMAN> RUN { . ( 2> ALLOCATE CHANNEL cl DEVICE TYPE disk; 3> BACKUP DATAFILE ’ /uOl/oradata/userOl. dbf' ; 4> } 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 3l • Установка максимального размера резервного фрагмента: RMAN> CONFIGURE CHANNEL DEVICE TYPE DISK 2> MAXPIECESIZE 2G; • Задание формата генерируемых имен для создаваемых резервных файлов: RMAN>RUN { 2> ALLOCATE CHANNEL dl DEVICE TYPE DISK 3> FORMAT ’/diskl/backups/%U’; 4> BACKUP DATABASE PLUS ARCHIVELOG; } 2-37 Copyright © 2006, Oracle. All rights reserved. j Опции управления каналами Можно установить опции управления для выделяемых каналов, изменяющие их характеристики по умолчанию. Следующие опции задаются при описании ручных и автоматически выделяемых каналов: • CONNECT; строка соединения с экземпляром целевой БД; FORMAT; формат для генерации имен создаваемых при использовании канала резервных фрагментов; • MAXOPENFILES; максимальное число входных файлов, которые могут быть открыты командой backup в произвольный момент времени (по умолчанию 8) • MAXPIECESIZE; максимальный размер любого резервного фрагмента в данном канале, задается в байтах (по умолчанию), килобайтах (К), мегабайтах (М) или гигабайтах (G). DURATION; задает в часах и минутах продолжительность выполнения работы по резервированию. Можно следующим образом уточнить продолжительность: - PARTIAL; не выдавать ошибок, если резервирование не завершено до конца заданного интервала времени. - MINIMIZE TIME; резервирование на предельной скорости, которая возможно позволит завершить операцию в заданном временном интервале. Oracle Database 10g: Administration Workshop II 2-37
Опции управления каналами (продолжение) - MINIMIZE LOAD; RMAN осуществляет мониторинг скорости резервирования и автоматически снижает скорость обработки, когда обнаруживает, что операция резервирования будет завершена в заданный интервал времени. Эту опцию нельзя установить при записи на ленту, так как желательно выполнять запись на ленту на предельной скорости. Для у каналов с типом устройства SBT или SBTJTAPE можно также указывать следующее: установка переменных окружения для серверного сеанса, связанного с клиентом RMAN • FARMS-” SBT_LIBRARY=. задание местоположения библиотеки носителя, используемой каналом. Для автоматических каналов можно также сконфигурировать уровень параллелизма по умолчанию и тип устройства (диск или ленту), одновременно определив вид создаваемых резервных объектов: BACKUP SET, COMPRESSED BACKUPSET или COPY. к Итоги • Использование управляющего файла и каталога восстановления в качестве репозитория RMAN • Изменение стандартных установок RMAN по команде configure • Использование флэш-оЦласти восстановления для операций RMAN ", • Мониторинг флэш-области восстановления с помощью представлений v$ и Enterprise Manager • Реализация политики удержания либо в виде окна восстановления, либо на основе заданной избыточности • Ручное и автоматическое выделение канала оРАсие 2-39 Copyright © 2006, Oracle. Ail rights reserved. Oracle Database 10g: Administration Workshop II 2-38 Oracle Database 10g: 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
хш в 1 зд •Ш Использование Recovery Manager Copyright © 2006, Oracle. Al! rights reserved.
Рассматриваемые вопросы Команды BACKUP Отслеж. изм. блоков, Инкр. обнов. LIST REPORT DELETE • Использование команды backup утилиты RMAN для создания резервных наборов и копий образов • Сопровождение резервных наборов и копий, полученных с помощью RMAN I J ОЛ T. 3-2 Copyright © 2006, Oracle. All rights reserved. Рассматриваемые вопросы _ Recovery Manager (RMAN) - это компонент базы данных Oracle 10g, используемый для 1 выполнения операций резервирования и восстановления. Enterprise Manager (ЕМ) предоставляет графический интерфейс к наиболее часто используемым функциональным возможностям утилиты RMAN. <Л На занятиях курса База данных Oracle: Администрирование / демонстрировались основные операции RMAN, выполняемые с помощью ЕМ Database Control Console. Поэтому в этом уроке графический интерфейс к RMAN не будет подробно в„ рассматриваться. I Oracle Database 10g: Administration Workshop II 3*2
— Ввод команд утилиты Recovery Manager • Интерактивный клиент - Команды вводятся после строки приглашения RMAN - Используется при проведении анализа, получении отчетов или выполнении хранимых скриптов • Пакетный режим * - Используется для автоматизации выполнения работ - При запуске RMAN указывается командный файл - Для получения протокола указывайте журнальный файл • Интерфейс канала - Задается параметром pipe в командной строке - Используется для передачи данных между сеансами или между RMAN и внешним приложением 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_jpwd@prodl @ */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_OUT - для передачи всех выходных результатов обратно из RMAN. Все сообщения входного и выходного каналов имеют тип VARCHAR2. При использований интерфейса канала RMAN не читает и не пишет данные, используя командный процессор (shell) операционной системы. Каналы можно применять для взаимодействия с другим сеансом или с ожидающим сообщения приложением, например программой в UNIX. С помощью этой возможности можно написать переносимый программный интерфейс к RMAN. Дополнительные сведения об использовании каналов в RMAN см. в документе Oracle Database Backup and Recovery Advanced User Guide. Дополнительные сведения о пакете DBMS__PIPE и создании каналов в базе данных см. в документе PL/SQL Packages and Types Reference. Команды RMAN Типы команд RMAN: • Одиночные - Вводятся для выполнения только после приглашения RMAN , - Выполняются отдельно - Не могут присутствовать в виде подкоманд внутри команды run • Работы - Должны заключаться в скобки команды run - Выполняются в рамках группы • Выполняемые как одиночные или в рамках работы Copyright © 2006, Oracle. Ай rights reserved. Команды RMAN В RMAN используются два типа команд: одиночные (stand-alone) и работы (job). Одиночные вводятся после приглашения RMAN и обычно самодостаточные. Примеры одиночных команд: * CHANGE * CONNECT • CREATE CATALOG, RESYNC CATALOG • CREATE SCRIPT, DELETE SCRIPT,REPLACE SCRIPT Команды работ обычно группируются и RM AN выполняет их внутри командного блока ("пт ’9 последовательно. Если какая-либо команда блока завершается с ошибкой, RMAN прекращает обработку и последующие команды блока не выполняются. Однако результаты уже выполненных команд остаются в силе и никаким образом не отменяются. В качестве примера команды, выполняемой только в рамках работы, можно привести ALLOCATE CHANNEL. Выделяемый при этом канал действует только при выполнении работы, поэтому такая команда не может быть одиночной. Некоторые команды (например, BACKUP DATABASE) могут быть введены как одиночные после приглашения RMAN или же выполнены внутри блока, определяемого командой RUN. При вводе подобных одиночных команд RMAN выделяет необходимые каналы, используя возможность автоматического выделения каналов. Пользователь может выполнять одиночные команды и работы в диалоговом или пакетном режимах. Oracle Database 10g: Administration Workshop II 3-5 Oracle Database 10g: Administration Workshop II 3-4
Пример работы Команды работы приводятся внутри блока команды RUN: RMAN> RUN { 2> BACKUP AS BACKUPSET 3> FORMAT '/u01/db01/backup/%d_%s_%p' 4> DURATION 10:00 MINIMISE LOAD 5> (DATABASE);1g 6> SQL 'alter system archive log current' ; 7> ) or?Aci_e [3-6 Copyright © 2006, Oracle. Alt rights reserved. Пример работы В отличие от одиночных команд команды работы должны заключаться в скобки команды RUN. Примеры команд работы: • ALLOCATE CHANNEL • SWITCH RMAN выполняет команды внутри командного блока RUN последовательно. Если какая- либо команда блока завершается с ошибкой, RMAN прекращает обработку и последующие команды блока не выполняются. Команда RUN определяет блок выполняемых команд. После завершения последней команды блока RUN Oracle освобождает все ресурсы на стороне сервера (например, буферы ввода-вывода или подчиненные процессы в вода-вывода), которые были выделены внутри блока. Oracle Database 10g: Administration Workshop li 3-6
файл Архивные журналы Сопровождение каталога CROSSCHECK DELETE...EXPIRED CHANGE Обзор команд RMAN Обычно при работе с целевой базой данных используются следующие команды RMAN: • BACKUP выполняется на целевой или резервной БД для резервирования базы данных, табличного пространства, файла данных (текущего или копии), управляющего файла (текущего или копии), SPFILE, архивных журналов и резервных наборов. Резервирование резервных наборов представляет собой простой способ их перемещения с диска на ленту. • DU PL I САТЕ создает клон БД {clone database) или резервную БД (standby database) на основе резервных объектов (резервных наборов или копий образов) целевой БД. * FLASHBACK выполняет операции отката БД (Flashback Database)* которые возвращают базу данных к заданному целевому моменту времени (или непосредственно перед ним), SCN или номеру оперативного журнала. • RECOVER для восстановления и RESTORE для копирования файлов из резервных наборов или копий образов. RMAN предоставляет следующие команды получения отчетов: LIST запрашивает каталог восстановления или управляющий файл для получения списков резервных наборов, копий архивных журналов и инкарнаций БД. • REPORT детально анализирует каталог восстановления или управляющий файл. 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 2> FORMAT '/BACKUP/df__%d__%s_%p.bus' 3> TABLESPACE hr dat?; Copyright © 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). • Максимальный размер резервного набора (MAXSETS IZЕ). ♦ Удаление входных файлов после удачного создания резервного набора (DELETE INPUT). Oracle Database 10g: Administration Workshop II 3-9
Ограничения резервирования • База данных должна быть смонтирована или открыта. • Не поддерживается резервирование оперативных журналов • Только “чистое” резервирование применимо в режиме NOARCHIVELOG • Резервирование “текущего” файла данных применимо только в режиме archivelog 3-10 Copyright © 2006, Oracle. АН rights reserved. Ограничения резервирования При выполнении резервирования с использованием утилиты Recovery Manager необходимо следующее: • Целевая база данных должна быть смонтирована для того, чтобы с ней можно было установить соединение из утилиты Recovery Manager. • Не поддерживается резервирование оперативных журналов. • Если целевая БД в режиме NOARCHIVELOG, могут быть получены только “чистые” бэкапы табличных пространств и файлов данных (т.е. бэкапы табличных пространств ‘только для чтения? или переведенных в автономное состояние с параметром NORMAL). Бэкап базы может быть получен только, если база данных вначале была чисто остановлена и затем запущена в режиме MOUNT. • Если целевая БД в режиме ARC HIVE LOG, только “текущие” файлы данных могут быть зарезервированы (при восстановлении выполняется копирование из бэкапа). • Если используется каталог восстановления, БД каталога восстановления должна быть открыта. Oracle Database 10g: Administration Workshop II 3-10
1 ад I . в 3-11 вий Распараллеливание резервных наборов Для повышения производительности выделите несколько каналов и задайте файлы для каждого канала. Copyright © 2006, Oracle. Ail rights reserved. Резервный фрагмент 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 c3 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 приписаны к резервному набору 1: - файлы данных 2, 3 и 9 приписаны к резервному набору 2; - файлы данных 6, 7 и 8 приписаны к резервному набору 3. Примечание: можно также использовать параметр FILESPERSET для ограничения количества файлов данных, включаемых в один резервный набор. RMAN> BACKUP AS 2> COMPRESSED BACKUPSET 3> DATABASE; ....« Файлы БД Сжатые резервные наборы L Сжатые резервные файлы RMAN> CONFIGURE DEVICE TYPE 2> DISK PARALLELISM 2 3> BACKUP TYPE T9 4> COMPRESSED BACKUPSET; ------ 3-13 Copyright © 2006, Oracle. Alt 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-12 Oracle Database 10g: Administration Workshop II 3-13
Копия образа RMAN> BACKUP AS COPY 2> DATAFILE ’ /ORADATA/users_01_db01 .dbf' 3> FORMAT '/BACKUP/usersOl.dbf’; RMAN> BACKUP AS COPY 4> ARCHIVELOG LIKE 'arch_1060.arc' 5> FORMAT 'arch 1060.bak’; Копия файла данных 3 Копия архивного журнала . ... . х.. ..>? 5» : , хж ...................., „,х • Copyright © 2006, Grade, All rights reserved. Особенности копии образа - Копия образа представляет собой копию одного файла данных, архивного журнала или управляющего файла. Копия образа может быть создана по команде 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 ’/ORADATA/users__01__db01.dbf ’ to 5> 1/BACKUP/usersOl.dbf’ tag-DF3, 6> ARCHIVELOG ’arch_l060.arc' to 7> ’ arch__1060 .bakf ; } Oracle Database 10g: Administration Workshop II 3-15
3-16 Copyright © 2006, Grade. All rights reserved. Тэги для резервных наборов и копий образов Тэгом (tag) является значимое имя, присваиваемое резервному набору или копии образа. Преимуществами пользовательских тегов являются: • предоставление полезной ссылки на коллекцию копий файла или резервный набор; • может использоваться в команде LIST для простого поиска резервных файлов: • может использоваться в командах RESTORE и SWITCH; • один и тот же тег может использоваться для нескольких резервных наборов или копий файла. Если тег, не являющийся уникальным, ссылается на несколько файлов данных, RMAN выбирает самый свежий доступный файл. Пример • Полное резервирование файлов данных 1,2, 3 и 4 осуществляется ежемесячно. Тег в управляющем файле для такого резервного набора mo n t h 1 у__ f u 11 a c kup (ежемесячное полное резервирование), хотя для физического файла генерируется имя df__DB00__863__l. dbf. RMAN> BACKUP TAG ’ moot h__full__bac kup ’ 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. AH 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. 2. Oracle Database 10g: Administration Workshop II 3-18 Ищет канал с заданным типом устройства и функциональными возможностями прокси. Если такой канал не найден, RMAN выдает предупреждение и пытается выполнить обычное (не прокси) резервирование заданных файлов. При обнаружении канала с функциональными возможностями прокси RMAN вызывает программу управления носителем и проверяет, может ли она создать прокси-копии файлов. Если программа управления носителем не может выполнить прокси-копирование, тогда RMAN использует режим обычного резервирования файлов. Чтобы RMAN не пытался выполнить обычное копирование в случае аварийного завершения прокси-копирования, задайте опцию ONLY. Поскольку копии образов создаются только на диске, нельзя указывать опцию PROXY в команде BACKUP AS COPY. Примечание: вместе с опцией PROXY в строке формата (параметр FORMAT) необходимо указывать переменную %р явно или неявно через переменную %U. жл
Резервирование архивных журналов • Автоматическое переключение оперативного журнала • Проверка архивного журнала на наличие повреждений • Можно указать резервирование архивных журналов из заданного интервала • Резервные наборы содержат только архивные журнальные файлы RMAN> BACKUP 2> FORMAT * /diskl/backup/ar_%t_%s_%p' 3> ARCHIVELOG FROM SEQUENCE=234 4> DELETE INPUT; ORACLE I 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
Копирование всей базы данных I I I I I I I Копии архивных журналов backup database PLUS ABCTIVHLOGl "i ?Управляющий Копии файл файлов данных SPFILE I i I I I 1 I । 3-21 Copyright © 2006, Oracle. All rights reserved. Копирование всей базы данных 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, где n - требуемый уровень параллелизма; • выделено несколько каналов; • одна команда BACKUP AS COPY используется для нескольких файлов. Примечание: Высокая степень распараллеливания приводи! к потреблению большего количества машинных ресурсов, но при этом выполнение команды может происходить быстрее. Oracle Database 10g: Administration Workshop II 3-21
Типы резервирования в RMAN Полный бэкап, содержит все использовавшиеся блоки файлов данных. Инкрементальный бэкап на уровне 0, как и полный бэкап, содержит все блоки файлов данных, а также отметку о том, что его уровень 0. Кумулятивный инкрементальный бэкап уровня 1 содержит только блоки, измененные с момента предыдущего инкрементального резервирования на уровне 0 Дифференциальный инкрементальный бэкап уровня 1 содержит только блоки, измененные с момента предыдущего инкрементального резервирования. Полное или инкрементальное уровня 0 Кумулятивное инкрементальное Дифференциальное инкрементальное ЭОРАсье 3-22 Copyright © 2006, Oracle. АН rights reserved. Типы резервирования в RMAN Полное резервирование Полные бэкапы (full backup) отличаются от бэкапа всей базы данных (whole database backup). Бэкап всей базы данных содержит файлы данных и управляющий файл целевой базы данных. Полный бэкап файла данных содержит все использовавшиеся в файле блоки. В ходе создания полных бэкапов RMAN читает весь файл и копирует все блоки в резервный набор или копию образа. При создании резервного набора пропускаются блоки, которые никогда не использовались. В случае полной копии образа точно воспроизводится содержимое всего файла. Полный бэкап не является частью стратегии инкрементального резервирования и не может использоваться в качестве исходного бэкапа для последующего инкрементального резервирования. Инкрементальное резервирование Инкрементальный бэкап (incremental backup) может быть либо уровня 0 (тогда в него включаются все блоки файла данных, кроме тех, которые никогда не использовались), либо уровня I (в него включаются только блоки, измененные с момента предыдущего резервирования). Инкрементальный бэкап на уровне 0 физически схож с полным бэкапом. Единственное отличие в том, что бэкап на уровне 0 может использоваться в качестве базы для резервирования на уровне 1, а полный бэкап ~ нет. Инкрементальное резервирование определяется в команде BACKUP с помощью ключевого слова INCREMENTAL. Пользователь задает INCREMENTAL LEVEL = [0 I 1]. Oracle Database 10g: Administration Workshop II 3*22
I J Типы резервирования в 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. Уров< Уровень День g энь 0 Уровен! ьО 0 Зс К 1 It Сб i IK ф ч 1 1 !т Г 0 1 1 >с Пн В 1 * >т-1С ORACl_e 3-24 Copyright © 2006, Oracle. АО rights reserved.| Выбор между дифференциальным и кумулятивным резервированием Кумулятивное инкрементальное резервирование повторяет работу по копированию тех же блоков, которые копировались при предыдущем некумулятивном инкрементальном резервировании на таком же уровне. Поэтому, если сначала выполняется инкрементальное резервирование на уровне 1, тогда последующее кумулятивное резервирование на уровне 1 копирует блоки, измененные после инкрементального резервирования на уровне 1, а также блоки, которые уже копировались в ходе этого инкрементального резервирования на уровне 1. Это означает, что только один инкрементальный бэкап такого же уровня необходим при полном восстановлении. Сравнение инкрементального и кумулятивного резервирования: * Дифференциальное инкрементальное резервирование быстрее пишет меньше блоков и создает меньшие файлы. Инкрементальные бэкапы создаются быстрее, однако при восстановлении RMAN вынужден найти и применить все инкрементальные бэкапы. • Кумулятивное инкрементальное резервирование может занять большее время, потребовать записи большего числа блоков и создать большие по размеру файлы. Кумулятивное резервирование повышает скорость восстановления, поскольку при этом применяется меньше бэкапов. На представленном графике показана стратегия резервирования компании, основанная на инкрементальном и кумулятивном резервирование. Каждое воскресенье выполняется инкрементальное резервирование уровня 0. Дважды в неделю (в среду и пятницу) производится кумулятивное резервирования с целью снижения времени восстановления БД. В остальные дни выполняется инкрементальное резервирование, чтобы уменьшить время, необходимое для резервирования, и требования к пространству хранения. Oracle Database 10g: Administration Workshop II 3-24
Команды BACKUP > Отслеж. изм. блков Инкр. обнов. LIST REPORT DELETE Отслеживание измененных блоков Включение отслеживания измененных блоков может ускорить процесс резервирования • Регистрация измененных блоков в файле для отслеживания изменений • Если режим отслеживания включен, этот файл автоматически используется утилитой RMAN • Оптимизация инкрементального резервирования за счет устранения необходимости полного просмотра файлов данных в ходе резервирования Список измененных блоков енерация данных повторного выполнения 1011001010110 0001110100101 1010101110011 Файл отслеживания изменений Оперативный журнал сг?.а.сие 3-25 Copyright © 2006, Oracle. Ail rights reserved. Отслеживание измененных блоков Цель инкрементального резервирования состоит в копировании только тех блоков, которые были изменены после предыдущего резервирования. В ходе каждого инкрементального резервирования читается весь файл данных, даже если после последнего инкрементального резервирования была изменена только очень небольшая часть этого файла. Фоновый процесс записи отслеживаемых изменений [change tracking writer - CTWR) заносит информацию о физическом расположении всех изменений, сделанных в базе данных, в файл нового типа, называемый файлом отслеживания изменений {change tracking file). После включения возможности отслеживания изменений первое инкрементальное резервирование уровня 0 все же вызывает полный просмотр всего файла данных, так как в файле для отслеживания изменений еще не отражается статус блоков. Последующие операции инкрементального резервирования используют файл отслеживания изменений для определения резервируемых блоков. В результате повышается производительность, поскольку не надо читать весь файл данных. При включенной возможности отслеживания измененных блоков для выполнения инкрементального резервирования используются обычные команды. Сам файл отслеживания изменений не требует большого сопровождения после его начального конфигурирования. Его размер пропорционален: • размеру БД и количеству включенных потоков (threads) в среде RAC; • числу старых резервных объектов, сопровождаемых с помощью такого файла. Oracle Database 10g: Administration Workshop H 3-25
Включение отслеживания измененных блоков SQL> ALTER DATABASE ENABLE 2> BLOCK CHANGE TRACKING 3> USING FILE ’/niydir/rman_change_track. f' 4> REUSE; Database instance: ord oracle-com > Backup Settings Backup Settings Device Backup Set [ Ройсу Backup Policy Г~ Automatically backup the control file and server parameter file (SPFILE) with every backup and database structural change Autobackup Disk Location |~ An sxfetir^ dim'to-y c-r diskgroyp narn? -tfhete the controi aid serv?? par?met^ file =-:4l be baU.eJ up If you de nvt tfe wil! be up to th? ffeh reix-very erva foeatet Г Optimize the whole database backup by skipping unchanged files such as read-only and offline datafiles that have been backed up _______________________________________ R Enable block change tracking for faster incremental backups Block Change Tracking File [ i Specify ? loc?.i:GTi ъяй fik-y othe: -?h»; w % '<$ h* i»-- «••«=• ./ ' '_________ ___________ . Слу/»о_е 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__TRACKING содержит текущие характеристики конфигурации функциональной возможности отслеживания измененных блоков. По умолчанию отслеживание изменений отключено, поскольку оно добавляет небольшие накладные расходы, влияющие на производительность обычных операций в базе данных. Oracle Database 10g: Administration Workshop II 3-26
Инкрементально-обновляемые резервные копии Команды BACKUP Отелем, изи. блоков. > Инкр. обнов. LIST REPORT DELETE Копия образа файла данных Файлы с инкрементальными резервными объектами RMAN> RECOVER COPY OF 2> DATAFIW {Г1| 5имя_файла? j 3> WITH TAG 1incr upd df1 * *; Копия образа файла данных, обновленная к | более близкому по * времени состоянию 1 Восстановленный файл данных . opacus 3-27 _________________________Copyright © 2006, Orade. АП 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
Команда list * Перечень резервных наборов БД RMAN> LIST BACKUP OF DATABASE; Команды BACKUP Отслеж. изм. блоков Инкр. обнов. > LIST REPORT DELETE • Перечень резервных наборов, содержащих указанный файл данных RMAN> LIST BACKUP OF DATAFILE 2» ”/db01/QRADATA/u03/users01.dbf,,;i • Список копий файлов данных указанного табличного пространства RMAN> LIST COPY OF TABLESPACE "SYSTEM"; • Список копий архивных журналов из указанного интервала времени RMAN> LIST COPY OF DATABASE ARCHIVELOG 2> FROM TIME»'SYSDATE-?';___________ r k.’RATui= 3-28 Copyright © 2006, Oracle. All rights reserved. Команда list Команда RMAN LIST используется для вывода хранимой в репозитарии информации о резервных наборах, прокси-копиях и копиях образов. Можно вывести перечень, содержащий: • резервные наборы и копии, не имеющие статус AVAILABLE в репозитарии RMAN; • резервные наборы и копии файлов данных, которые доступны и могут быть использованы в операции извлечения из бэкапа (restore); • резервные наборы и копии, содержащие указанные в списке файлы данных или заданные табличные пространства; • резервные наборы и копии, содержащие архивные журналы с заданным именем или из указанного диапазона; • резервные наборы или копии с указанным тегом, временем завершения создания, пригодные для восстановления или хранимые на определенном типе устройств • инкарнации заданной базы данных или всех баз данных, о которых есть сведения в репозитарии; • хранимые скрипты в каталоге восстановления. До выполнения команды LIST необходимо установить соединение с целевой БД. Для соединения в режиме NOCATALOG она должна быть смонтирована, а для соединения с использованием каталога восстановления необходимо, чтобы был запущен целевой экземпляр, а база данных может быть не смонтирована. Кроме того, можно задавать порядок выводимых данных (BY BACKUP или BY FILE), а также уровень их детализации (VERBOSE или SUMMARY). Oracle Database 10g: Administration Workshop II 3-28
Команда • Детальный анализ репозитария • Ответы на вопросы: - Какие файлы данных * принадлежат базе данный? - Какие файлы необходимо резервировать? - Какие резервные объекты можно удалить? - Какие файлы не восстановимы? f* Г Команды BACKUP Отслеж. изм блоков Инкр. обнов» LIST > REPORT DELETE Команда report Команда REPORT помогает выполнить детальный анализ информации репозитария RMAN. С помощью команды REPORT могут быть получены ответы на такие вопросы: • Какова структура база данных? RMAN> REPORT SCHEMA; • Какие файлы необходимо резервировать? RMAN> REPORT MEED BACKUP • Какие резервные объекты могут быть удалены (так как они устарели)? RMAN> REPORT OBSOLETE; * Какие файлы не восстановимы из-за невозможности выполнения операции восстановлен ия? RMAM> REPORT UNRECOVERABLE . . . ; Oracle Database 10g: Administration Workshop II 3-29
Команда report need backup • Список всех файлов данных, которые необходимо резервировать • Предполагается, что при восстановлении используется самый последний резервный объект • Доступны четыре опции: - Incremental - Days - Redundancy - Recovery window • Если опция не указана, принимается во внимание политика удержания ORAGUe 3-30___________________Copyright © 2006, Oracle. Al! rights reserved._ ________ Команда 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 10$: Administration Workshop II 3-30
Примеры команды 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 2> recovery window of 3 days; ORACLE 3-31 Copyright © 2006, Oracle. AH 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 II 3-31
Команды REPORT OBSOLETE И DELETE OBSOLETE Выявить устаревшие и поэтому непригодные для восстановления файлы исходя из — текущей политики удержания: RMAN> REPORT OBSOLETE; Перечень файлов, устаревших из-за того, что не требуется хранить более двух резервных копий: Команды BACKUP Отслеж. изм« блоков Инкр. обнов. LIST REPORT DELETE RMAN> REBORT OBSOLETE REDUNANCY 2; • Удалить резервный набор с ключом, равным 4: RMAN> DELETE BACKUPSET 4; • Удалить файлы, устаревшие по причине того, что имеется более двух бэкапов, пригодных для восстановления: RMAN> DELETE OBSOLETE REDUNDANCY 2; □RACLe 3-32 Copyright © 2006, Oracle. AU 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
ЩГ и 5.Э ; I. *< i wi ” I i .*4№ । • - ш-t. I » •»: 1 -W Сопровождение резервных объектов __________________________с помощью ЕМ__________________________________________ Manage Current Backups (Catalog Additional Files ( Crosscheck A0 -v Delete All Obsolete) (Deiete Aii Expired J This backup data was retrieved from the database control file, Backup Sets linage Copies Search Status [AvSiabie xl Contents F Datafile F Archived Redo Log F SPTlLE P Control File Completion Time [within a rrionth jj (Go) Results (Crosscheck^Change to Unavailable)^Delete)^validateJ< Select All | Select None ы* *МKeylLa * h rknon rime OncnU ftr/RFIyip L fl> Г 4EXAMPLE Aug 18, 2005 6:46:31 AM DATAFILE DISK AVAILABLE NO ll Г 3-USERS " Aug 18,2005 6:46:08 AMDATAFILEDISK AVAILABLENO T Подсказка по навигации: Страница Database Home > Maintenance > Manage Current Backups _____or- ' .G____ 3-33 Copyright © 2006, Oracle, All rights reserved. В ' В вй |жл..» Ж I Л Сопровождение резервных объектов с помощью ЕМ Enterprise Manager предоставляет следующие возможности сопровождения бэкапов. • Просмотр списков резервных объектов (резервных наборов и копий образов), записи о которых хранятся в репозитарии RMAN. • Перекрестная проверка репозитария: - проверка того, что резервные объекты, записи о которых есть в репозитарии, действительно существуют и доступны; - резервные объекты, недоступные во время перекрестной проверки, помечаются как устаревшие (статус EXPIRED). ♦ Удаление записей о резервных объектах со статусом EXPIRED из репозитария. RM AN • Удаление записей об устаревших резервных объектах со статусом OBSOLETE из репозитария и самих резервных файлов с диска. Для перехода в Enterprise Manager на страницу Manage Current Backups щелкните на ссылке Manage Current Backups в секции Backup/Recovery, расположенной на странице Maintenance. На странице Manage Current Backups имеется две закладки для перехода на страницы Backup Set (выводится первой) и Image Сору. Обе страницы предназначены для вывода сведений о резервных объектах, информация о которых хранится в репозитарии утилиты Recovery Manager. Примечание: когда в качестве хранилища резервных объектов используется флэш- область восстановления, уменьшается объем или совсем устраняется необходимость операций по сопровождению, поскольку Oracle автоматически сопровождает дисковое пространство и файлы в этой области на основе политики удержания. I 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 3-34 Copyright © 2006, Oracle. AH rights reserved. Динамические представления, используемые RMAN Следующие представления используются для получения информации утилиты RMAN из управляющего файла: * V$ARCHIVED__LOG; показывает, какие архивные журналы создавались, резервировались или удалялись из базы данных. • V$BACKUP__COR.RUPTION; показывает, какие блоки обнаружены искаженными в процессе записи резервного набора. • V$BACKUP_DATAFILE; используется для определения количества блоков каждого файла данных в созданных резервных наборах; на основе этих данных можно создавать в дальнейшем резервные наборы одинакового размера; это представление также содержит количество искаженных блоков для конкретного файла данных. • V$BACKUP__DEVICE; показывает информацию о поддерживаемых устройствах резервирования; тип устройства DISK никогда не возвращается при запросе к этому представлению, так как это устройство всегда доступно. • V$BACKUP__FILES; показывает сведения о всех бэкапах (копиях образов и резервных наборах), а также о зарезервированных архивных журналах. Это представление отражает сведения, выводимые по командам LIST BACKUP и LIST COPY утилиты RMAN Oracle Database 10g: Administration Workshop II 3-34
Динамические представления, используемые RMAN (продолжение) • V$ BACKU Р__Р IЕС Е; показывает фрагменты резервных наборов. • V$BACKUPJREDOLOG; показывает архивные журналы, хранимые в резервных наборах. • V$BACKUP__SЕТ; показывает созданные резервные наборы. . ,V$BACKUP_SPFILE; выводит сведения о файлах серверных параметров, хранимых в резервных наборах. • V $ СО Р Y__CORRUPT I ОМ; показывает, какие блоки обнаружены искаженными в процессе записи копии образа. . V$ DATABASE __BLOCK__CORRUPTI ON; показывает, какие блоки были помечены как поврежденные в процессе самого последнего резервирования, выполнение! о RMAN. • V $ RMAN _ С ON FIGURATI ON: выводит значени я установленных устойчивых параметров конфигурации RMAN. При использовании прокси-копирования с RMAN можно запрашивать представления: . V$ PROX Y__ARC HIVE DLOG . V$ PROXY_ DATAFILE Статистики резервирования можно запросить в представлениях: . V$BACKUP__ASYNC__IO • V$ BACKU P___SYNC__ 10 Oracle Database 10g: Administration Workshop II 3-35
Мониторинг резервирования с помощью RMAN • Свяжите серверные сеансы с каналами, используя команду set command id • Выполните запрос к представлениям V$₽ROCESS И V$SESSION ДЛЯ ВЫЯВЛ6НИЯ сеансов, соответствующих каналам RMAN • Выполните запрос к представлению V$SESSION_LONGOPS ДЛЯ мониторинга выполнения резервирования и копирования • Используйте утилиту операционной системы для мониторинга процессов или потоков i , In' ы ..... ЖЖВ OR AJCVE » 3 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-6 ’ ; 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 totalwork 0; 5. Если используется канал с типом устройства sbt и обнаруживается, что выполнение процесса приостановилось, запросите представление V$SESSION__WAIT, используя SID, полученный на шаге 3, чтобы проверить, ждет ли RMAN завершения вызванной функции* программы управления носителем. SELECT * FROM V$SESSION_WAIT WHERE event LIKE 'sbtV; Oracle Database 10g: Administration Workshop H 3-37
Итоги • Использование команды backup утилиты RMAN для создания резервных наборов и копий образов • Использование команды list для получения данных о резервных наборах и копиях, полученных с помощью RMAN • Использование команды report для получения сведений об устаревших резервных объектах RMAN и команды delete для их удаления ORAGUe 3-38_______________________________Copyright © 2006, Oracle. АН rights reserved. Oracle Database 10g: Administration Workshop II 3-38
Обзор практического занятия: резервирование базы данных • Включение архивирования оперативных журналов базы данных • Использование утилиты RMAN для получения информации о структуре* базы данных • Использование Recovery Manager для резервирования файлов данных и управляющего файла • Использование Recovery Manager для создания копий образов файлов данных • Создание сжатого резервного набора базы данных • Планирование задания по резервированию 3-39 Copyright © 2006, Oracle. All 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 li 4-2
Причины потери файла • Ошибка пользователя • Ошибка в приложении • Потеря носителя 4-3 Copyright © 2006, Oracle. АН rights reserved. Причины потери файла Файлы могут быть потеряны или повреждены вследствие следующих причин. • Ошибка пользователя. Администратор может непреднамеренно удалить или перенести необходимый для функционирования файл в операционной системе. • Ошибка в приложении. Приложение или скрипт может содержать логическую ошибку, которая при обработке файлов базы данных приводит к потере или повреждению файла. • Потеря носителя. Может произойти полный или частичный откат дисковода или контроллера, в результате чего искажаются или даже полностью теряются файлы, Oracle Database 10g: Database Administration Workshop II 4-3
Сравнение критических и некритических потерь В случае потери некритического файла база данных может продолжить свое функционирование. Для устранения проблемы выполняется одно из следующих действий: • Создание нового файла • Пересоздание файла. • Восстановление потерянного или поврежденного файла. ' A<" 4-4 Copyright © 2006, Grade. Al! 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,6,7,8,9,10,11,12j13; select * from big_table order by 1,2,3 ,дВНЯЭЕЫ-°,11,12,13 * ERROR et line 1: QRA-01565: error in identifying file___ ’/uOl/app/oracle/oradata/orcl/tempOl.dbf' QRA-27037: unable to bbtain file status Linux Error: 2: Ш such file or directory 4-5 Copyright © 2006, Oracle. AH rights reserved is. Ви । ж Потеря временного файла (tempfile) Временной табличное пространство (например, TEMP) становится недоступным, когда теряется или повреждается принадлежащий ему файл. Эта проблема обнаруживается в ходе выполнения команд SQL, которым необходимо временное табличное пространство для сортировки. Команда SQL, показанная на слайде, содержит длинный список столбцов в предложении order by, и поэтому ей при выполнении понадобится временное табличное пространство. В результате обнаружится отсутствие временного файла. База данных Oracle может быть запущена без потерянного временного файла. Если какой-либо временный файл отсутствует во время старта базы данных, он создается автоматически и база данных открывается нормально. В таких случаях в сигнальном файле при старте БД появляется сообщении, подобное приведенному ниже: Recreating tempfile /uOl/app/oracle/oradata/orcl/tempOl.dbf Oracle Database 10g: Database Administration Workshop II 4-5
Восстановление при потере временного файла 4-6 Copyright © 2006, Oracle. 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.dbf’; Tablespace altered. Oracle Database 10g: Database Administration Workshop II 4*6
Статус журнальной группы В любой момент времени статут журнальной группы имеет одно из следующих значений: а и • CURRENT: процесс LGWR в текущий момент времени пишет данные в журнальную группу. • ACTIVE: в журнальную группу больше не производится запись, но она все еще требуется для восстановления после сбоя экземпляра. • inactive: в журнальную группу больше не производится запись, и она не нужна для восстановления после сбоя экземпляра. 4-7 Copyright © 2006, Oracle. All rights reserved. Статус журнальной группы В ситуациях, когда теряется файл оперативной журнальной группы, пригодится знание возможных состояний оперативных журнальных групп. В нормально функционирующей базе данных Oracle такие группы проходят в круговом режиме через три состояния, В каждом таком цикле состояние (статус) журнальной группы изменяется в следующей последовательности. . CURRENT Процесс LGWR пишет в данную группу журнальные записи с информацией о выполняемых в базе данных транзакциях. Журнальная группа находится в таком состоянии до переключения в другую журнальную группу. • ACTIVE Данные журнальной группы все еще необходимы для восстановления после сбоя экземпляра. Этот статус сохраняется, пока не завершится выполнение контрольной точки, по которой в файлы данных записываются все измененные данные, отраженные в записях оперативной журнальной группы. . INACTIVE Выше упомянутая контрольная точка завершилась, и поэтому оперативная журнальная группа больше не нужна для восстановления после сбоя экземпляра. Такая группа свободна и может быть следующей текущей (статус CURRENT) журнальной группой. Oracle Database 10g: Database Administration Workshop II 4-7
Потеря элемента оперативной журнальной группы Потеря журнального файла отражается в сигнальном файле и трассировочном файле архивного процесса (ARCn). Brrorsin /file /u01/ap>/bracle/admin/orcl/Muj^/orcl_arcl_25739»trc: ORA-00313: open failed for members of log group Я ef thread; 1. ORA- 00312: online log 2 thread 1: 1/u01/app/oracle/oradata/orcl/redo02b.log’ ORA-27037: unable to obtainfile status Linux Error: 2: No such file or directory .. RACLe 4-8 Copyright © 2006, Oracle. AH rights reserved. Потеря элемента оперативной журнальной группы Журнальные данные повторного выполнения важны для восстановления, поскольку они содержат записи обо всех изменениях в базе данных, что позволяет выполнить подкат вперед при восстановлении после копирования из бэкапа. Группа оперативных журналов может содержать несколько одинаковых элементов. Таким образом обеспечивается избыточное хранение журнальных данных. Для продолжения функционирования БД необходимы, по крайней мере, две журнальные группы с хотя бы одним доступным элементом в каждой из них. Когда какой-либо элемент журнальной группы недоступен, сообщение об этом заносится в сигнальный файл и формируется трассировочный файл архивного процесса При потере нетекущей оперативной журнальной группы можно воспользоваться командой ALTER DATABASE CLEAR LOGFILE, чтобы пересоздать элементы этой группы. При этом не происходит никаких транзакционных потерь. В случае, когда журнальная группа была заархивирована до того, как произошла ее потеря, больше ничего не требуется делать. В противном случает необходимо немедленно выполнить полное резервирование базы данных. Резервные объекты, полученные до момента потери журнала, не пригодны для восстановления. Oracle Database 10g: Database Administration Workshop II 4*8
Пересоздание оперативных журнальных файлов SQL> ALTER DATABASE DROP LOGFILE MEMBER > '/u01/app/oracle/oradata/orcl/redo02b.log’; SQL> !rm /uOl/app/oracle/oradata/orcl/redo02b.log SQL> ALTER DATABASE ADD LOGFILE MEMBER > ’/u01/app/oracle/oradataZorcl/r«do02bAog’ > 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 II 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 VSLOG; GROUP# ARC STATUS 1 YES ACTIVE .........— 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. Следующая команда удаляет оперативный журнальный файл /uOl/app/oracle/oradata/orcl/redo02b.log: ALTER DATABASE DROP LOGFILE MEMBER */u01/app/oracle/oradata/orcl/redo02b,log’; При удалении журнальной группы или отдельного элемента всегда удаляются ссылки на них в управляющем файле, а соответствующие файлы в операционной системе остаются, кроме случая, когда используются файлы, сопровождаемые Oracle (Oracle Managed Flies - OMF). Проверьте, что операция удаления элемента или оперативной журнальной группы завершилась успешно, а затем, если не использовались OMF- файлы, удалите файлы оперативных журналов с помощью соответствующих команд ОС. При использовании файлов, сопровождаемых Oracle, удаление этих файлов в операционной системе выполняется автоматически. Oracle Database 10g: Database Administration Workshop II 4-11
Пересоздание оперативных журнальных файлов Edit Jlview), Delete Clear logfile Г g Wm UwUi & TwchjyH (KB) Current; Inactive Inactive: 1 No 2 Yes 1 Yes 51200 51200 51200 50; 1847791; 48. 1792269’ 49 182W85i Edit Redo Log Group: 2 Actions PciearTogfile I'.gD •^ShowSQl) ( Revert) (Apply) Group # 2 File size 51200 KB Status INACTIVE Redo Log Members (Select File Н^иш. Г redo02.log Э jredo02b.log ;FHe Шйс-tory ЛЮ1 /app/oracle/oradata>*‘orcl/ /u01 /app/oracle/oradata/orcl/ Oracle 4-12 Copyright © 2006, Oracle. All rights reserved. Пересоздание оперативных журнальных файлов Enterprise Manager позволяет создавать и редактировать информацию о группах оперативных журналов, связанных с текущей базой данных. Для этого на странице Administration выберите ссылку Redo Log Groups в секции Storage. На странице Redo Log Groups выводится информация о каждой журнальной группе, а также предоставляется возможность просмотра и редактирования состава группы. Выберите отдельную журнальную группу и щелкните на кнопке View. Для оперативной журнальной группы будет выведена таблица, содержащая файлы и директории, в которых они находятся. Добавить или удалить элементы группы можно, используя кнопку Edit. Oracle Database 10g: Database Administration Workshop II 4-12
IB Повторное создание индексов Используйте параметры, уменьшающие время создания индекса: • PARALLEL • NOLOGGING ? SQL> CREATE INDEX rname_idx 2 ON hr.regions (regionjname) 3 PARALLEL 4; |4-J3 Copyright © 2006, Oracle. AH rights reserved. | Повторное создание индексов При создании и пересоздании индекса можно использовать следующие ключевые слова для снижения времени выполнения операции: • PARALLEL (по умолчанию NOPARALLEL). Индекс может создаваться несколькими процессами, выполняющими одновременно совместную работу. Разделяя необходимые для создания индекса действия между несколькими серверными процессами, Oracle может создать индекс более быстро, чем это сделает одиночный процесс, создающий индекс последовательно. Из таблицы случайным образом выбираются данные, выявляются множества индексных ключей, которые равномерно разбивают индекс на части. Количество этих множеств определяет уровень параллелизма. Первый набор процессов запроса полностью просматривает таблицу, выделяет пары, состоящие из ключей и rowid и передает каждую пару процессу во втором наборе процессов запроса, исходя из значения ключа. Каждый процесс во втором наборе сортирует ключи и строит индекс обычным образом. После того, как все части индекса выстроены, координатор параллельных процессов объединяет части (которые упорядочены), чтобы окончательно сформировать индекс. Oracle Database 10g: Database Administration Workshop il 4-13
Повторное создание индексов (продолжение) ♦ NOLOGGING Индекс строится быстрее, поскольку в ходе операции создания очень небольшой объем информации заносится в журнал. Это значение также значительно минимизирует объем генерируемых журнальных данных в процессе выполнения прямой вставки (directpath insert) и производимой с помощью утилиты SQL*Loader прямой загрузки (Direct Loader). NOLOGGING - постоянный атрибут, который хранится в словаре данных. Он может быть изменен в любое время с помощью команды: ALTER INDEX NOLOGGING/LOGGING. При потере индекса может оказаться быстрее и проще его пересоздать, а не пытаться произвести восстановление (recover). Один из способов определения кода SQL для создания индекса - использование утилиты Data Pump: imp dp SQLFI LE=<mmh__ файла> В качестве имени_файла указывается выходной файл, сгенерированный при выполнении команды expdp. В результате на основе dump-файла генерируются команды SQL для создания импортируемых объектов, но сам импорт не выполняется. Команды expdp и impdp подробно рассматриваются в курсе Oracle Database 10g: А дминистрирование I. Oracle Database 10g: Database Administration Workshop II 4-14
Методы аутентификации администраторов базы данных Администрирование удаленной БД Администрирование локальной БД Copyright © 2006, Oracle. АН rights reserved. Методы аутентификации администраторов базы данных Администрирование базы данных может производиться локально на той же самой машине, на которой расположена база данных. С другой стороны, можно управлять многими различными сервера с единого удаленного клиента. В зависимости от выбранного подхода к администрированию может быть отдано предпочтение либо аутентификации на уровне ОС, либо аутентификации при помощи файла паролей. • Если есть парольный файл базы данных и пользователю предоставлена системные привилегии роли SYS DBA или SYSOPER, тогда он может пройти аутентификацию при помощи парольного файла. • Если на сервере не используется парольный файл или пользователю не предоставлены привилегии SYS DBA и SYSOPER и поэтому нет нужды в парольном файле, тогда может использоваться аутентификация на уровне ОС. В большинстве операционных систем для аутентификации администраторов необходимо разместить пользователя ОС в специальной группе, на которую обычно ссылаются как на группу OSDBA. Пользователям этой группы предоставлены привилегии SYS DBA. Группа OSOPER используется для предоставления пользователям привилегий SYSOPER. Аутентификация на уровне ОС имеет приоритет над аутентификацией при помощи парольного файла. Так, если пользователь входит в группу OS DBA или OSOPER и соединяется как SYSDBA или SYSOPER, тогда соединение устанавливается с соответствующими административными привилегиям, независимо от того, какое имя и пароль были введены. Oracle Database 10g: Database Administration Workshop li 4-15
Повторное создание файла парольной аутентификации 1. Соединитесь с базой данных, используя аутентификацию на уровне ОС. 2. Установите значение none в параметре REMOTE_LOGIN_PASSWORDFILE и перезапустите БД. 3. Пересоздайте парольный файл, используя утилиту orapwd. $ orapwd f ile=$0RACLE_H0I4E/dbs/orapw0RCL password=admin entries=5 4. Установите значение exclusive в параметре REMOTE_LOGIN_PASSWORDFILE. 5. Добавьте пользователей в парольный файл и выделите каждому необходимые привилегии. 6. Перезапустите экземпляр. .......,______________________________________________________________________________________________________ 4-16 Copyright © 2006, Oracle. All rights reserved. Повторное создание файла парольной аутентификации Для создания парольного файла Oracle предоставляет утилиту orapwd. При установлении соединения с привилегиями SYS DBA пользователь подсоединяется к схеме SYS, а не к своей собственной схеме. Как SYSOPER пользователь соединяется с схемой PUBLIC. Доступ к базе данных с использованием парольного файла предоставляется по команде GRANT, выполненной привилегированным пользователем. Обычно парольный файл не включается в резервные наборы, так как почти во всех ситуациях парольный файл можно пересоздать. При потере парольного файла для того, чтобы его пересоздать, требуется хотя бы раз остановить и повторно запустить базу данных. Чтобы не терять время на остановку БД, следует включить парольный файл в перечень резервируемых объектов. Чрезвычайно важно для обеспечения системной безопасности защищать парольный файл и переменные окружения, которые задают местоположение парольного файла. Пользователи, имеющие доступ к такой информации, потенциально могут нанести вред безопасности соединения. Примечание. Не удаляйте и не изменяйте парольный файл, если БД или экземпляр были смонтированы с параметром инициализации REMOTE_LOGIN__PASSWORDFILE, равным EXCLUSIVE (или SHARED). После таких действий нельзя удаленно переподсоединиться с использованием парольного файла. Даже если заменить этот файл, новый парольный файл нельзя использовать, так как временные метки и контрольные суммы будут неверными. * Повторное создание файла парольной аутентификации (продолжение) Использование файла паролей I. Файл паролей создается с помощью утилиты orapwd. orapwd £11е=<имя файла> password=<napcxnb> entries =<число> где: имя_файла имя файла паролей (обязательный параметр); пароль пароль для соединения с привилегиями SYSOPER или SYSDBA (обязательный параметр); число число, задающее максимальное количество администраторов базы данных, которые могут подсоединиться с привилегиями SYSDBA или SYSOPER; при превышении заданного числа необходимо пересоздавать файл паролей, поэтому рекомендуется указывать большее число; не должно быть пробелов вокруг знака равно (=)» Пример: orapwd file=$ORACLE__HOME/dbs/orapwUl5 password-admin entries-5 2. Значение параметра REMOTE_LOGIN__PASS WORDFILE установите равным EXCLUSIVE где: EXCLUSIVE указывает на то, что данный файл паролей может использоваться только одним экземпляром и что он содержит еще какие-то имена кроме SYS; когда парольный файл используется в режиме EXCLUSIVE, привилегии SYSDBA и SYSOPER могут быть выделены другим пользователям. 3. Соединение с базой данных с использованием парольного файла устанавливается следующим образом: CONNECT sys/admin AS SYSDBA Расположение файла паролей UNIX: $ORACLE__HOME/dbs NT: %ORACLE___HOME%/database Сопровождение файла паролей Удалите файл паролей и создайте новый файл с помощью утилиты ORAPWD. Oracle Database 10g: Database Administration Workshop II 4-16 Oracle Database 10g: Database Administration Workshop II 4-17
Повторное создание файла парольной аутентификации (продолжение) Использование файла паролей 1. Соединитесь с базой данных, используя аутентификацию на уровне ОС. 2. Установите значение NONE в параметре REMOTE___LOGIN___PASSWORDFILE и перезапустите БД. 3. Создайте парольный файл, используя утилиту orapwd. orapwd fИе~<имя__файла> password==<napcoib> entries =<число> где: имя файла имя файла паролей (обязательный параметр); пароль пароль для соединения с привилегиями SYSOPER или SYSDBA (обязательный параметр); число число, задающее максимальное количество администраторов базы данных, которые могут подсоединиться с привилегиями SYSDBA или SYSOPER; при превышении заданного числа необходимо пересоздавать файл паролей, поэтому рекомендуется указывать большее число: не должно быть пробелов вокруг знака равно (=:). Пример: orapwd file~$ORACLE_HOME/dbs /orapwd 15 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: %ORAC LE__HOME %\da t aba s e Сопровождение файла паролей Удалите существующий файл паролей, используя команду операционной системы, и создайте новый файл с помощью утилиты ORAPWD. Oracle Database 10g: Database Administration Workshop II 4-18
Итоги Восстановление временных табличных пространств Восстановление элемента журнальной группы Восстановление после потери индекса Пересоздание парольного файла А-СЙ С1 • . Copyright © 2006, Grade. All rights reserved. Oracle Database 10g: Database Administration Workshop II 4-19
4-20 Обзор практического занятия: восстановление после потери временного файла и оперативного журнального файла • Запуск базы данных с потерянным временным файлом • Создание нового временного табличного пространства • Изменение для базы данных табличного пространства по умолчанию • Восстановление после потери элемента оперативной журнальной группы Copyright © 2006, Oracle. АН rights reserved. 'л Oracle Database 10g: Database Administration Workshop II 4-20
Восстановление базы данных f Copyright © 2006, Oracle. Ай rights reserved.
Польз.упр. RMAN CLI EM Полное Неполное Упр.файл RO TBS Рассматриваемые вопросы • Полное и неполное восстановление, управляемое пользователем • Ситуации, в которых необходимо неполное восстановление • Выполнение полного и неполного восстановления с использованием RMAN • Неполное восстановление на основе времени, SCN, номера журнала, точек восстановления и метода прерывания процесса восстановления • Восстановление с использованием автоматически зарезервированного управляющего файла • Использование Enterprise Manage для выполнения восстановления • Восстановление табличных пространств с доступом только на чтение орлеце 5-2 Copyright © 2006, Oracle. All rights reserved. Oracle Database 10g: Administration Workshop II 5-2
Методы восстановления • Восстановление, управляемое пользователем - Необходимо вручную сопровождать и перемещать файлы в требуемое место. - Используются команды SQL*Plus. • Восстановление с помощью RMAN - Автоматическое управление файлами. - Использование функциональных возможностей RMAN, включающих сопровождение всего репозитария и получение отчетов. - Может быть произведено с использованием Enterprise Manager. - Корпорация Oracle рекомендует использовать этот метод. Copyright© 2006, Oracle. АН rights reserved Методы восстановления Восстановление, управляемое пользователем, требует большего ручного вмешательства, чем восстановление с использованием RMAN. Поэтому использование RMAN - рекомендуемый метод резервирования, и он подробно рассматривается далее в этом уроке. Oracle Database 10g: Administration Workshop II 5-3
Восстановление, управляемое пользователем: команда recover > Польз, упр. RMAN CLI ЕМ Полное Неполное Упр,файл RO TBS • Скопируйте из резерва все файлы базы данных, а затем выполните восстановление: SQL> RECOVER DATABASE • Скопируйте из резерва поврежденные файлы данных, а затем выполните их восстановление: SQL> RECOVER TABLESPACE index tbs или 5-4 Copyright © 2006, Oracle. AH rights reserved. Восстановление, управляемое пользователем: команда recover На первом шаге восстановления после потери носителя необходимо вручную скопировать файлы данных из резервных объектов. Если нельзя восстановить файл данных в его первоначальное местоположение, следует обновить в управляющем файле указатель на его местоположение, используя команду alter database rename file. Необходимо также вручную восстановить архивные журналы, требуемые для восстановления извлеченных из резерва файлов данных. При использовании RMAN новое место, в которое копируются извлекаемые из резерва файлы, задается командой SET NEWNAME. Для восстановления базы данных или файла данных может быть запущена одна из приводимых ниже команд: • RECOVER [AUTOMATIC] DATABASE Используется только для восстановления закрытой базы данных. • RECOVER [AUTOMATIC! TABLESPACE <ИМЯ> Используется только для восстановления открытой базы данных. • RECOVER [AUTOMATIC] DATAFILE <НОМЕР> | < ’имя__файла ’ > Используется для восстановления как открытой, так и закрытой базы данных. Ключевое слово AUTOMATIC задает директиву базе данных Oracle по выполнению автоматического генерирования имени следующего архивного журнального файла, необходимого для продолжения операции восстановления файлов данных. В противном случае выдаются запросы для ввода таких имен. Oracle Database 10g: Administration Workshop II 5-4
Восстановление с помощью RMAN: команды RESTORE И RECOVER Польз, упр. > RMANCLI ЕМ Полное Неполное Упр файл RO TBS run{ sql "ALTER TABLESPACE inv_tbB OFFLINE IMMEDIATE"; RESTORE TABLESPACE inv_tt>s; RECOVER TABLESPACE inv_tbs DELETE ARCHIVELOG; sql "ALTER TABLESPACE inv_tbs ONLINE"; > 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 I! 5-5
5-6 Восстановление с использованием Enterprise Manager С помощью Enterprise Manager можно создать и запустить скрипт RMAN для выполнения восстановления. Польз.упр. RMAH CLI > ЕМ Полное Неполное Упр.файл ROTBS Database Instance: orcl.oracle.com gms Performance Ar/r i ro c* 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 Rec~"“l 1 ups Manage Restore Points Backup Reports Backup/Recov e ry Settings Backup Settings Recovery Settings Recovery Catalog Settings Grade Secure Backup Oracle Secure Backup Device and Media File System Bad-up 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
Сравнение полного и неполного восстановления Два типа восстановления: • Полное восстановление переносит базу данных к настоящему моменту времени; оно включает повторение всех изменений данных до момента времени, когда возникла необходимость восстановления. Полное _ восстановление Неполное _ восстановление Копирование Потерянные транзакции-1 из бэкапа после неполного восстановления Задача восстановления появилась в этот момент Неполное восстановление переносит БД к заданному времени в прошлом, предшествовавшему моменту, в котором возникла необходимость восстановления. Copyright © 2006, Oracle. All rights reserved. 1 1 € • Сравнение полного и неполного восстановления Выполняя полное восстановления, вы переносите базу данных в состояние, полностью соответствующее текущему времени, повторяя все изменения, сделанные после получения бэкапа. Неполное восстановление переносит базу данных к какому-то моменту в прошлом. Это означает, что не производится повторение некоторых транзакций, в результате чего теряются результаты изменений, произведенных после целевого момента времени. Во многих случаях неполное восстановление выполняется для достижения желаемой цели, поскольку необходимо отменить последствия некоторых действий в базе данных. Восстановление к моменту в прошлом - это способ удаления результатов транзакций, внесших нежелательные изменения в базу данных. Oracle Database 10$: Administration Workshop П 5-7
Полное восстановление Применение изменений Польз, упр. RMAN CLI ЕМ > Полное Неполное Упр.файл RO TBS Применение данных отмены БД открыта Копирование из бэкапа файлов данных Восстановленные файлы данных Файлы данных, содержащие результаты зафиксированных и незафиксированных транзакций I Copyright © 2006, Oracle. All rights reserved. Полное восстановление Шаги полного восстановления: 1, Поврежденные и потерянные файлы восстанавливаются из резервных объектов. 2. При необходимости применяются изменения с использованием инкрементальных резервных объектов, архивных и оперативных журналов. Изменения из оперативных журналов применяются к файлам данных до самых последних записей текущего оперативного журнала и при этом повторяется выполнение самых последних транзакций. Одновременно генерируются блоки отмены. Этот шаг принято называть подкатом вперед или восстановлением кэша. 3. Скопированные из бэкапа файлы могут теперь содержать как зафиксированные, так и незафиксированные изменения. 4. База данных открывается перед применением данных отмены. Это делается для предоставления высокого уровня доступности. 5. Блоки отмены используются для отката назад любых незафиксированных изменений. Этот шаг принято называть откатом назад или восстановлением транзакции. 6. Файлы данных теперь в восстановленном состоянии и согласованы с другими файлами данных БД. Oracle Database 10g: Administration Workshop II 5-8
Неполное восстановление Польз.упр. RMAN CLI ЕМ Полное > Неполное Упр.файл RO TBS Применение изменений до момента времени (point in time - PIT) БД открыта Применение данных отмены 1 ) Копирование файлов данных из подходящего по моменту времени бэкапа Файлы данных, содержащие зафиксированные и незафиксированные данные. Транзакции до PIT Файлы данных, восстановленные до момента времени (PIT) 5-9 Copyright © 2006, Oracle. AH rights reserved. Неполное восстановление Неполное восстановление {incomplete recovery) или восстановление на момент-в-прошлом {point-in- 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
Ситуации, вызывающие необходимость неполного восстановления • Полное восстановление завершилось неудачно из-за потери архивного журнала • Потеря одного или нескольких неархивированных журналов и файла данных • Для открытия или восстановления базы данных используется резервная копия управляющего файла ORACl-G 5-11 Copyright © 2006, Oracle. Ali 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} последнего зафиксированного изменения, до которого необходимо восстановиться. Восстановление согласно этому методу прекращается после того, как в базе данных зафиксированы все изменения, внесенные до указанного системного номера изменения (SCN). Данный подход используется при восстановлении баз данных, работающих в распределенной среде. Вы можете также воспользоваться фразой UNTIL RESTORE POINT и задать псевдоним для SCN, называемый точкой восстановления (restorepoint). Точки восстановления будут рассмотрены далее в этом уроке. Восстановление до журнала с заданным номером Используя резервные объекты, сопровождаемые RMAN, можно задать номер последнего журнала, используемого для восстановления базы данных с помощью фразы UNTIL SEQUENCE. Восстановление согласно этому методу прекращается после того, как были применены все журналы до, но не включая журнал с заданным порядковым номером. Oracle Database 10g: Administration Workshop II 5-13
Выполнение неполного восстановления, управляемого пользователем • Восстановление базы данных до определенного момента времени: SQL> RECOVER DATABASE UNTIL 2 TIME ’2005-12-14:12:10:03'; • Восстановление базы данных до прерывания: SQL> RECOVER DATABASE UNTIL CANCEL; • Восстановление с использованием резервной копии управляющего файла: SQL> RECOVER .DATABASE 2 UNTIL TIME '2005-12-14:12:10:03' 3 USING BACKUP CONTROLFILE; 5-14 Copyright © 2006, Oracle. Ail 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
Выполнение неполного восстановления, управляемого пользователем 1. Остановите базу данных. 2. Скопируйте файлы данных из резервных объектов. ? 3. Смонтируйте базу данных. 4. Восстановите базу данных. 5. Откройте базу данных с опцией RESETLOGS. 5-15 Copyright © 2006, Oracle. АН 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 SQL> RECOVER DATABASE UNTIL TIME ' 2005-11-28:11:44 :00 ' ; SQL> ALTER DATABASE OREN RESETLOGS; Пример управляемого пользователем неполного восстановления до определенного момента времени (продолжение) 4. Восстановите базу данных : SQL> recover database until time ’2005-11-28:11:44:005 ORA-002T9: change 148448 ... 11/27/05 17:04:20 needed for thread ... Me d i a recovery c omp1e t e. 5. Для синхронизации файлов данных с управляющими и журнальными файлами необходимо открыть базу данных с использованием параметра RESETLOGS: SQL> alter database open resetlogs; SQL> archive log list Oldest online log sequence 0 % Next log sequence to archive 1 Current log sequence 1. Если восстановление завершилось успешно и резервирование выполнено, можно уведомить пользователей, что база данных доступна для использования, а все данные, введенные после времени, на которое выполнено восстановление (утро, 11:44), должны быть введены повторно. QlX ORACLe 5-16 Copyright© 2006, Oracle. АЙ rights reserved. Пример управляемого пользователем неполного восстановления до определенного момента времени Рассмотрим типичный сценарий применения метода восстановления 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. См оптируйте базу дан иых. Oracle Database 10g: Administration Workshop II 5-16 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. rdo): SQL> SELECT * FROM v$log__history; RECID STAMP . . . FIRST_CHANGE 1 318531466 ... 88330 47 319512880 ... 309067 FIRST_TIME 05-11-15:12:43 05-11-28:11:26 Oracle Database 10g: Administration Workshop II 5-18
to » Пример управляемого пользователем неполного восстановления до прерывания Восстановите следующим образом базу данных: 1. Остановите БД. 2. Восстановите все файлы данных из самой последней резервной копии. 3. Смонтируйте базу данных. 4. Выполните команду recover database until CANCEL. 5. Выполните команду alter database open RESETLOGS, чтобы открыть базу данных. 5-19 Copyright © 2006, Oracle. AH rights reserved. Oh i .ад Пример управляемого пользователем неполного восстановления до прерывания (продолжение) Шаги восстановления до прерывания такие же, как и при восстановлении до определенного времени, за исключением шага, на котором выполняется команда 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. АН rights reserved. Неполное восстановление БД посредством RMAN С помощью RMAN можно выполнить восстановление на момент-в-прошлом, до SCN или номера оперативного журнала. Неполное восстановление вызывает необходимость открытия БД с опцией RESETLOGS. В результате использования этой опции оперативным журналам присваивается новая временная метка и системный номер изменений, устраняя таким образом возможность повреждения файлов данных путем применения устаревших архивных журналов. Нельзя восстановить отдельные файлы данных до момента, предшествующего открытию БД с параметром RESETLOGS, а другие ~ на момент после открытия БД с параметром RESET LOGS. Необходимо восстановить все файлы данных к одному и тому же SCN. Единственное исключение составляют файлы данных, переведенные в автономное состояние с параметром normal или находящие в состоянии ‘только чтение’. Такие файлы можно оставить в состоянии ‘только чтение’ или в автономном состоянии после открытия БД с опцией RESETLOGS, так как в журналах нет транзакционных изменений для таких файлов данных. Примечание: RMAN можно использовать для восстановления файлов данных из резерва только, когда когда резервный объект был получен с помощью RMAN или же после получения резервной копии вручную она была зарегистрирована в RMAN. Пример неполного восстановления посредством 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; } IT I 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 установлены надлежащим образом : $ NL S_LANG=ameг i с an_america.we8iso8859pl5 $NLS_DATE__FORMAT=’YYYY-MM-DD:HH24:MI:SS’ 4. Запустите утилиту Recovery Manager и соединитесь с целевой базой данных. $rman target rman/rman@ORCL 5. Для повышения производительности можно выделить несколько каналов: RMAN> run {allocate channel cl type DISK; 2> allocate channel c2 type DISK; Oracle Database 10g: Administration Workshop II 5-20 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 ARCHIVELOG 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 CL2O THREAD 1; 3> ALTER DATABASE MOUNT; I 4> RESTORE DATABASE; 5> RECOVER DATABASE; # восстановление до 119 журнала включительно 6> ALTER DATABASE OPEN RESESTLOGS; ?> в QF?Aaue 5-23 Copyright © 2006, Oracle. AH rights reserved. Пример неполного восстановления посредством RMAN с использованием предложения until sequence В предложении UNTIL SEQUENCE указывается порядковый номер журнала и потока для ограничения процесса восстановления сверху. RMAN выполняет операции по восстановления до, но не включая журнал с заданным порядковым номером. В примере, приведенном на слайде, предполагается, что журнал с порядковым номером 120 потерян, и база данных должна быть восстановлена с использованием доступных архивных журналов. Oracle Database 10g: Administration Workshop II 5-23
Неполное восстановление с использованием Enterprise Manager t a xt i с ci? : " > Perform Recovery Perform Recovery Whole Database Recovery & Recover to the current time or a previous point-Mme / perform Whole Database Recovery) f ч/й? he stores? froft- the ЬэхШ» ae .. Г Restore all datafiles i tinte. SCN or l«-.u ihe hariiuj? taM-r: .3.1 or pHc-;" to L’-sl lin^ bs use-l No recovery •?/$ se peeft» m$d sn , i C Recover from previously restored datafiles Object Level Recovery Object Type |pSSte|22Z~3 Perform Object Level Recovery) Operation Type F Recover to current time v/>s he1 «лк-лО 33 reared Г Restore datafiles бревну Tiifst1, SCN ut !<;•> server», e lite haefes? 1лк^Г: <4 or ptfcr k= гш Гну:» Mi be umU hie reccvety 4- :5 be perforce; rs this oser^ket. Г Recover from previously restored datafiles Г Block Recovery _____________Ot?ACUC 5-24 Copyright ® 2006, Oracle. All rights reserved. Неполное восстановление с использованием Enterprise Manager Чтобы восстановить всю базу данных на определенный момент времени, выберите на странице Perform Recovery опцию “Recover to the current time or a previous point-in- time”. Затем щелкните на кнопке Perform Whole Database Recovery. На странице Perform Recovery также доступна опция “Restore all datafiles”. Ее использование позволяет извлечь из резервных объектов все файлы БД в том состоянии, в котором они находились во время предыдущего резервирования. Последняя опция “Recover from previously restored datafiles” позволяет выполнить подкат вперед базы данных к некоторому моменту времени. Неполное восстановление и сигнальный файл • Проверяйте сигнальный файл до и после восстановления • В сигнальном файле содержится информация об ошибках, подсказки и системные номера изменений (SCN) * • В сигнальный файл пишется подтверждение того, что процесс восстановления завершился успешно Copyright ©2006, Grade. All 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 II 5«24 Oracle Database 10g: Administration Workshop II 5-25
Точки восстановления Точка восстановления: • Служит в качестве псевдонима для SCN или заданного момента времени • Хранится в управляющем файле • Может использоваться в командах: - RECOVER DATABASE before load - FLASHBACK DATABASE - FLASHBACK TABLE Iff (T) I SQL> CREATE RESTORE POINT before Jpg^; 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 II 5-26
Неполное восстановление: указания • Заранее планируйте и проверяйте сценарии восстановления. • Изучайте и проверяйте необходимость неполного восстановления. • Точно выполняйте все шаги по восстановлению. • Выполняйте резервное копирование всей базы данных до и после восстановления. • Всегда проверяйте, успешно ли завершилось восстановление. • Используйте преимущества точек восстановления. \ -7.' 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.rdo) до 13(arch_13.rdo). * После выполнения неполного восстановления создается новая инкарнация базы данных, номер журнала устанавливается на 0. • Архивные журналы от arch__2 . rdo до arch__1.3 . rdo теперь являются частью старой инкарнации базы данных. • После нескольких переключений журнала архивный журнал arch__2 . rdo будет перезаписан и будет заархивирован вместе со всеми остальными архивами (включая старые архивные журналы, начиная с arch__3 . rdo до arch__l 3 . rdo). ♦ На более поздней стадии, если восстановление потребует архив arch_6 . rdo, то потребуется архивный журнал, полученный путем восстановления из резервной копии, соответствующей правильной инкарнации базы данных, иначе произойдет ошибка. Для предотвращения такого перемешивания архивных журналов используйте шаблон % г в параметре инициализации log_archive__format. Это: * приводит к автоматическому включению идентификатора сброса журналов (Resetlogs ID) в имена архивных журнальных файлов: * гарантирует уникальные имена архивных журналов в разных инкарнациях базы данных. nn Восстановление управляющего файла из автобэкапа RMAN> RESTORB SPFILE TO 2> ’ /oradata/spf Йе. bak * FROM AOTOBACKUF; Recovery Manager (RMAN) ----1---- i Флэш-область восстановления Управляющий файл RECOVER DATABASE; ALTER DATABASE OPEN RESETLOGS; 'ALTER TABLESPACE temp MX> TEMPFILE. . . ; Copyright © 2006, Oracle. All rights reserved. Польхупр. RMAN CLI EM Полное Неполное > Упр.файл RO TBS Восстановление управляющего файла из автобэкапа Если не используется каталог восстановления, следует сконфигурировать автоматическое резервирование управляющего файла. Это позволяет при необходимости быстро скопировать из бэкапа управляющий файл. Для такой операции применяются одни и те же команды, независимо от того, используется или нет флэш-область восстановления. Однако при использовании флэш-области восстановления RMAN неявно выполняет перекрестную проверку (crosscheck) резервных наборов и копий образов, перечисленных в управляющем файле, а также заносит (catalog) в извлеченный из бэкапа управляющий файл сведения об отсутствующих в нем файлах, которые он находит во флэш-области восстановления. В результате управляющий файл лучше подходит для восстановления остальной части базы данных. Примечание. Резервные объекты на ленте не подвергаются перекрестной проверке после копирования из бэкапа управляющего файла. При использовании резервных объектов на ленте для них необходимо выполнить перекрестную проверку после копирования из бэкапа управляющего файла и монтирования базы данных. Oracle Database 10$: Administration Workshop II MB Oracle Database 10$: 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; При выполнении этой операции экземпляр должен быть в состоянии NOMOUNT и RMAN должен быть подсоединен к каталогу восстановления. Восстанавливаемый управляющий файл будет копироваться во все места расположения, перечисленные в параметре инициализации CONTROL_F1 LES. При потере SPFILE процедура его восстановления схожа с процедурой восстановления управляющего файла из автобэкапа. Сначала требуется задать DBID базы данных, а затем воспользоваться командой RESTORE SPFILE FROM AUTOBACKUP. После запуска экземпляра с восстановленным файлом серверных параметров можно с помощью RMAN извлечь из автобэкапа управляющий файл. Затем смонтировать экземпляр с восстановленным управляющим файлом, в котором содержится информация, позволяющая выполнить операции restore и recover для базы данных. После восстановления из бэкапа управляющих файлов необходимо выполнить полное восстановление после потери носителя, а затем открыть базу данных с опцией RESETLOGS. Oracle Database 10g: Administration Workshop II 5*30
Создание нового управляющего файла Создание нового управляющего файла Необходимость пересоздания управляющего файла может и не возникнуть, если сконфигурировано автоматическое резервирование управляющего файла. По команде alter database backup controlfile to trace генерируется пользовательский трассировочный файл, содержащий команды SQL для повторного создания управляющего файла. Скопируйте трассировочный файл в скрипт-файл, например, new__control. sql, удалите в нем заголовок с информацией о выполненной трассировке (до строки перед командой startup NOMOUNT), а также внесите требуемые изменения, например, увеличьте значения параметров maxdatafiles, maxlogfiles и т.д. В этом файле два варианта скрипта для создания управляющего файла, отличающиеся опциями NORESETLOGS (сохранение старых оперативных журналов) и RESETLOGS (сброс и начало нумерации оперативных журналов с 1). Обычно выбирается первый вариант (до строки с комментарием начала второго варианта скрипта: - Set #2. RESETLOGS case). Выполните скрипт, создающий новый управляющий файл. Для этого вы должны подсоединиться как пользователь с привилегиями SYS DBA к опущенной базе данных с правильно установленным параметром окружения ORACLE_SID, в котором задается имя запускаемого экземпляра. Oracle Database 10g: Administration Workshop II 5-31
Создание нового управляющего файла Database instance; orcl.arade.cam > Control Files Control Files General Advanced Record Section Backupjo Trace) 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. =Valid ,rr. Harner VALID controlOt.ctl VALID controioictl VAUD controios.cti File Director/ ,JM /uO 1/app/oracle/oradata/orci/ /uD 1 /app/oracie/oradata/orcl/ /u01 /app/oracle/oradata^orcl/ General \ Advanced Record Section 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
'! Ж? Восстановление табличных пространств 5-33 Польз.упр. RMAN CLI ЕМ Полное Неполное© Упр.файл > ROTBS с доступом только на чтение Только чтение Случай 1 Случай 2 Случай 3 В случае потери управляющего файла для восстановления будет использоваться Только чтение Только чтение Резервирование состояния Отказ и табличного восстановления зарезервированный в ДЗННО6 ВрсМЯ пространства ? управляющим файл I... ORACLE V Copyright © 2006, Oracle. AM rights reserved. Восстановление табличных пространств с доступом только на чтение Перевод табличного пространства в состояние ‘только чтения’ препятствует записи в файлы данных этого табличного пространства, независимо от уровня привилегий пользователя для проведения изменений. Главное - устранить необходимость резервирования и восстановления больших, статических порций информации БД. Табличные пространства ‘только чтения’ также защищают данные за прошлый период от изменений пользователей. Так как такие табличные пространства никогда не изменяются, их можно разместить на устройствах CD-ROM или WORM (write once, read many; однократная запись и многократное чтение). Метод восстановления табличного пространства ‘только чтения’ зависит от того, какие резервные объекты доступны, а также от того, переводилось ли табличное пространство в состояние ‘только чтения’ или чтение-запись в рассматриваемом периоде. Случай 1. Восстанавливаемое табличное пространство является доступным только на чтение, кроме того оно находилось в этом же состоянии при проведении последнего резервирования. В этом случае можно просто выполнить копирование табличного пространства из резервной копии. Нет необходимости в применении журнальной информации.
Восстановление табличных пространств с доступом только на чтение (продолжение) Случай 2. Восстанавливаемое табличное пространство является доступным для чтения - записи, но находилось в состоянии доступном только на чтение при проведении последнего резервирования. В этом случае может возникнуть необходимость выполнить копирование табличного пространства из резервной копии и применить информацию журнала с того момента времени, когда табличное пространство было переведено в состояние чтение-запись. Случай 3, Восстанавливаемое табличное пространство является доступным только на чтение, но находилось в состоянии доступном на запись при проведении последнего резервирования. Так как всегда следует проводить резервирование табличного пространства после его перевода в состояние ‘только чтения’, такая ситуация не должна возникнуть. Тем не менее, если это случилось, нужно обязательно выполнить копирование табличного пространства из резервной копии и произвести его восстановление вплоть до момента времени, когда табличное пространство было переведено в состояние ‘только чтения*. Во всех трех случаях, когда недоступен текущий управляющий файл, звездочка означает, какой бэкап управляющего файла следует использовать для восстановления. Это необходимо, поскольку, когда используется бэкап управляющего файла, процесс восстановления требует открытия базы данных с параметром RESETLOGS. При таком открытии обновляются заголовки файлов данных, а писать в файлы данных в состоянии ‘только чтение* нельзя. Oracle Database 10g: Administration Workshop II 5-34
Вопросы восстановления табличных пространств с доступом только на чтение Табличным пространствам с доступом только на чтение необходимо уделить специальное внимание при: • Повторном создании управляющего файла • Переименовании файловданных • Использовании резервной копии управляющего файла С‘ । а « ’Я 1:.Ц w' ё € •ш 5-35 Copyright © 2006, Grade. АН rights reserved.> Вопросы восстановления табличных пространств с доступом только на чтение Повторное создание управляющего файла Если требуется заново создать управляющий файл по команде CREATE CONTROL FILE, а БД имеет табличные пространства с доступом только на чтение, нужно выполнить специальные действия. Поскольку табличное пространство находится в состоянии ‘только чтение’, в него не вносятся изменения и поэтому предполагается, что его не надо восстанавливать. Файлы такого табличного пространства не включаются в создаваемый управляющий файл. Вследствие этого, когда база данных запускается с новым управляющим файлом, производится перекрестная проверка с файлами, сведения о которых хранятся в словаре данных. Обнаруженные в словаре данных файлы, отсутствующие в управляющем файле, добавляются в управляющий файл с именами вида: MISSINGnnnrm. После открытия базы данных такие файлы необходимо переименовать в управляющем файле, используя команду 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 при наличии табличного пространства 'только чтения’ на носителе, доступном только на чтение, может отличаться низкой производительностью и сопровождаться ошибками. Такая ситуация происходит, если в управляющем файле табличное пространство отражается как доступное на чтение-запись, так как таким оно было, когда выполнялось резервирование управляющего файла. В ходе операции восстановления после потери носителя будет сделана попытка записи в файлы табличного пространства. Для носителя, доступного только на чтение, база данных выдаст ошибку, в которой будет сообщено о невозможности записи в файлы. Ниже приведены альтернативные решения проблемы восстановления файлов на носи геле, доступном только на чтение, с использованием резервной копии управляющего файла: * Переведите файлы данных табличного пространства ‘только чтения’ в автономное состояние перед восстановлением с использованием резервной копии управляющего файла, а затем верните файлы в оперативное состояние в конце операции восстановления после потери носителя. • Используйте корректную версию управляющего файла для восстановления. Если табличное пространство должно быть в состоянии 'только чтения’ по завершению операции восстановления, тогда необходим управляющий файл, полученный на момент времени, когда табличное пространство было в состоянии ‘только чтения’. Напротив, если табличное пространство должно быть в состоянии чтения-запись в конце операции восстановления, тогда необходим управляющий файл, полученный на момент времени, когда табличное пространство было доступно для чтения-записи. Восстановление базы данных Database Если файл в состоянии 'только чтение’ в момент времени, к которому восстанавливается база данных, тогда RMAN не восстанавливает этот файл. Чтобы изменить такое функционирование и сделать так, чтобы RMAN проверил заголовки существующих в данное время файлов данных, задайте в команде RECOVER DATABASE опцию CHECK READONLY. Итоги • Выполнение полного и неполного восстановления, управляемого пользователем • Выполнение полного и неполного восстановления с использованием RMAN • Ситуации, в которых необходимо неполное восстановление « • Неполное восстановление на основе времени, SCN, номера журнала, точек восстановления и метода прерывания процесса восстановления • Восстановление с использованием автоматически зарезервированного управляющего файла • Использование Enterprise Manage для выполнение восстановления • Восстановление табличных пространств с доступом только на чтение |5-37 Copyright © 2006. Oracle. АН rights reserved. о~'чсие Oracle Database 10g: Administration Workshop II 5-36 Oracle Database 10g: Administration Workshop II 5-37
5-38 Обзор практического занятия: выполнение неполного восстановления • Восстановление на момент времени в прошлом с использованием RMAN а,», J#i.11st В 1 BBraclMI Copyright © 2006; Oracle. All rights reserved Флэшбэк Copyright © 2006, Oracle. Alt rights reserved. Oracle Database 10g: Administration Workshop II 5-38
Рассматриваемые вопросы Корзина Flashback БД Конфиг. FB DB Монит. FB DB Гаран. т.восст. • Запрос к корзине удаленных объектов • Конфигурирование Flashback Database • Выполнение операции Flashback Database для отката БД к определенному моменту времени • Мониторинг статистик журнала flashback • Включение и отключение функциональной возможности Flashback Database • Использование мастера восстановлений Enterprise Manager для выполнение операции Flashback Database • Использование гарантированных точек восстановления в операции Flashback Database 6-2 Copyright© 2006, Oracle. AH rights reserved.j Обзор технологии флэшбэк Уровень объекта Примеры сценариев Технологий; флэшбэк . Используется Влияние н< данные База данным Truncate table; Выполнены нежелательные многотабличные изменения Database Журналы флэшбэк Да Таблица 1 ! Drop table J . //’Ж' L ... j Корзина Да Jable 1» « s ? _ у поо-данные: Да Query Нет 1 1 |У^нзакцмн~ *с след о ва н Ue^MeocKibKMxj состояниях данных в | J а—е—d Copyright © 2006, Oracle. All rights reserved. ORACLG 6-3 Обзор технологии флэшбэк Технологию отката или использования данных об изменениях в прошлом (Flashback, флэшбэк) следует применять при возникновении логических искажений в базе данных Oracle, когда требуется простое и быстрое их устранение. В случае человеческих ошибок трудно выявить объекты и строки, на которые оказала воздействие неверная транзакция. Технология флэшбэк помогает диагностировать то, как ошибочные данные были внесены в базу данных. После этого вы можете устранить последствия искажения данных. Вы можете просмотреть транзакции, в которых были выполнены изменения определенной строки, просмозреть все версии данной строки в указанном периоде времени, а также просмотреть данные в том виде, в каком они отображались в определенный момент в прошлом. Вышеприведенная таблица показывает типичные случаи использования технологий флэшбэк. Операция Flashback Database использует журнал возврата [flashback logs),. F lashback Drop корзину удаленных объектов (recycle Ын). Все остальные методы используют данные отмены (undo data). Не все возможности флэшбэк изменяют базу данных. Некоторые из них - это просто методы запроса версий данных. Они помогают исследовать проблему и определить цель восстановления. В результате таких запросов можно выполнить одно из двух: • определить, какой тип операций flashback следует произвести в БД для устранения проблемы; * направить результаты запросов в команду INSERT. UPDATE или DELETE, что позволит простым образом исправить ошибочные данные. Oracle Database 10g: Administration Workshop II 6-3 Oracle Database 10g: Administration Workshop II 6*2
Flashback Drop и корзина удаленных объектов 6-4 _________Copyright © 2006, Oracle. All rights reserved. Flashback Drop и корзина удаленных объектов В предыдущих версиях базы данных Oracle после ошибочного удаления таблицы требовалось восстановление базы данных к предыдущему до удаления таблицы моменту времени. Эта процедура часто занимала много времени и приводила в результате к потере изменений, выполненных в других транзакциях. В Oracle Database 10g введена возможность восстановления удаленных объектов {flashback drop), которая позволяет отменить команду DROP TABLE без помощи традиционного метода восстановления на момент времени. Примечание. Параметр инициализации RECYCLEBIN используется для включения (ON) или отключения (OFF) функциональной возможности Flashback Drop. Если параметр имеет значение OFF, тогда удаленные таблицы не попадают в корзину (recycle bin), Если же значение этого параметра ON, тогда удаляемые таблицы помещаются в корзину и могут быть восстановлены. По умолчанию для параметра RECYCLES IN установлено значение ON. Корзина удаленных объектов Если отключена функциональная возможность ведения корзины (RECYCLEBIN-OFF), тогда при удалении таблицы немедленно освобождается пространство, занимаемое таблицей и зависимыми от нее объектами (т.е., оно может быть использовано для других объектов). Когда корзина активна (RECYCLEBIN-ON), тогда при удалении таблицы пространство, занимаемое таблицей и зависимыми от нее объектами, немедленно не освобождается, хотя появляется в словаре DBA__FREE_SPACE. Вместо этого удаленные объекты временно помещаются в корзину (recycle bin) и все еще принадлежат своему владельцу. Пространство, занимаемое объектами корзины никогда автоматически не освобождается, если только не возникнет проблема нехватки пространства. Это позволяет восстановить объекты из корзины в течение максимально возможного отрезка времени. При удалении и перемещении таблицы в корзину она и связанные с ней объекты и ограничения получают новые имена, сгенерированные системой. Это необходимо для устранения конфликтов имен, которые могут возникнуть, если позднее создать новую таблицу с таким же именем. Корзина сама по себе представляет собой таблицу словаря, в которой сопровождаются связи между первоначальными именами удаленных объектов и имена, сгенерированными для них системой. Запросить содержимое таблицы можно с помощью представления DBA__RECYCLEBIN. Oracle Database 10g: Administration Workshop II 6-4 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 TABLES <имя_таблицы> ТО BEFORE DROF [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
Автоматическое использование пространства корзины Авторасширение (з) - RACLC 6-8 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
Г- 1 x' f ...I.. i f Автоматическое использование пространства корзины (продолжение) Предположим создается новая таблица в табличном пространстве TBS1. Если в этом табличном пространстве есть свободное место, не занимаемое корзиной, тогда сначала используется это свободное пространство. Если его недостаточно, тогда занимается место, используемое в табличном пространстве TBS1 объектами корзины. При использовании свободного пространства корзины соответствующие объекты автоматически удаляются их корзины. После этого их нельзя восстановить по команде flashback drop. Если все таки места для таблицы недостаточно, база данных применяет автоматическое расширение табличного пространства TBS1, если это возможно. -SC»x.. * Й" I has i ящ W*w>? жж*’'' ftJ 1 л'"< Й- ’ iTt W g,. '" ай Ws a' i -c
Ручное освобождение пространства корзины PURGE {TABLE <имя_таблицы>| INDEX <имя_иидаекса >} PURGE TABLESPACE < имя_табличного 1гространства>; [USER <имя пользователя >] PURGE [USER_|DBA_] RECYCLEBIN Database instance: ard.oraole.ccm > Tables > Recycle Bin Recycle Bin Results |, FumeДFtehback Drop Select Ail | Select None [ Expand Ah j Collapse All “Д2Г | . s. ' ................................ iSeltet Object Hama Sahcum Type Tablespace lime Ойдае i n»a Size Operation Г T Recycle Bin Г >EMPLOYEESHR2 TABLE USERS 2005-08-31:17:44:17 2005-08-31:17:40:45 8 View Cofflemj :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, тогда из корзины первым удаляется объект, который дольше всего находится в корзине (First In First Out - первым пришел, первым ушел). Oracle Database 10g: Administration Workshop II 6*10
Г . ?.ш ,...3»-::- ?:* иг * €- j ™ * г ж 1 ;«^'- -^ОИОЛ/ - ' •Г ж Зв: и и « < *w* W: ^«й^- . *" “ •лм&й^ •L' " • Когда удаляемые объекты не переносятся в корзину DROP TABLE <имя_таблицы > [PURGE] ; DROP TABLESPACE <имя_табличного пространства> [INCLUDING CONTENTS] ; DROP USER <имя пользователя> [CASCADE] ; |____6-11___________________Copyright © 2006, Oracle. Alt rights reserved___________ Когда удаляемые объекты не переносятся в корзину Команда DROP TABLE PURGE окончательно удаляет таблицу и зависимые от нее объекты из базы данных. При использовании этой команды соответствующие объекты не попадают в корзину. Она действует так же, как и команда DROP TABLE в предыдущих версиях. При выполнении команды DROP TABLESPACE . . . INCLUDING CONTENTS объекты табличного пространства не перемещаются в корзину. Более того, объекты, находящиеся в корзине и принадлежащие табличному пространству, удаляются из нее. Для успешного выполнения такой команды без фразы INCLUDING CONTENTS необходимо, чтобы табличное пространство было пустым. Однако при этом объекты, принадлежащие удаляемому табличному пространству, могут находиться в корзине. Они в этом случае из нее удаляются. Команда DROP USER . . . CASCADE удаляет пользователя и все его объекты навсегда из базы данных. Объекты удаляемого пользователя, находящиеся в корзине, также удаляются. Oracle Database 10g: Administration Workshop II 6»11
Запрос сведений о содержимом корзины SELECT owner, original_name r object^name, type, ts^name drop time, related, space FROM dba^recyclebin WHERE can undrop 'YES’ ; 'SELECT or iginaljname, object_name, type, tsjtiame, droptime, related, space FROM userjrecyclebin WHERE can_undrop = ‘YES’; SQL> SHOW RECYCLEBIB 6-12 Copyright © 2006, Oracle. AH rights reserved. Запрос сведений о содержимом корзины Можно просмотреть все сведения об объектах, которые были удалены, запросив для этого представление USERJRECYCLEBIN или RECYCLEBIN. Представление DBA___RECYCLEBIN показывает все объекты, которые были удалены всеми пользователями и все еще находятся в корзине. Кроме того можно воспользоваться командой SQL* *Plus SHOW RECYCLEBIN. По этой команде выводятся только такие объекты, которые можно восстановить. В приведенных примера показывается, как получить следующую сведения об объектах корзины: • OR IGINALJNAME; как назывался объект перед удаление; * OBJECT_NAME; сгенерированное системой имя для объекта после его удаления; • TYPE; тип объекта: • TS__NAME; имя табличного пространства, которому принадлежит объект: • DRO PT I ME; дата удаления объекта; • RELATED; идентификатор объекта (столбец ob j ect__id в dba__objects) для удаленного объекта; SPACE; количество блоков, используемых объектом в настоящее время. Можно также просмотреть содержимое корзины с помощью Database Control. Примечание: дополнительную информацию о представлении DBA RECYCLEBIN см. в документу Oracle Database Reference. Oracle Database 10g: Administration Workshop II 6-12
# A Copyright © 2006, Oracle, AH rights reserved Oracle Database 10g: Administration Workshop II 6-13 : : : > v -«x-Sz»" I I I *< 6-13 Запрос данных из удаленных таблиц Когда таблица удаляется, она перемещается в корзину и ей присваивается уникальное сгенерированное системой имя. Так как удаленная таблица все еще находится в схеме пользователя-владельца, сведения о ней можно просмотреть в представлениях, например, DBA___TABLES, DBA__OB JECTS и DBA_SEGMENTS. Для того, чтобы можно было отличить таблицы, находящиеся и не находящиеся в корзине, в представление DBA_ТABLES был добавлен новый столбец DROPPED, значение в котором равно YES для таблиц, которые были удалены, но все еще находятся в корзине. Вследствие этого в команде SELECT и запросам флэшбэк можно указывать объект, имеющий сгенерированное системой имя, пока он находится в корзине. Но операции DML и DDL над такими объектами производить нельзя.
Обзор операции Flashback Database Корзина > Flashback БД Конфиг. FB DB Монит. FB DB Тарам, т.восст. Операции Flashback Database: • Выполняются подобно действию кнопки обратной прокрутки для БД • Могут использоваться в случае логических повреждений, сделанных пользователями о । Ms & * —• Пользователи совершают ошибки Поврежденная база данных Нажмите кнопку прокрутки назад Copyright © 2006, Oracle. All rights reserved. Обзор операции Flashback Database Flashback Database позволяет быстро иеренести вашу БД к предыдущему моменту времени путем отмены всех изменений, сделанных после этого момента времени. Это быстрая операция, поскольку не надо производить восстановление из резервы ых копий БД. Flashback Database можно использовать для отмены изменений, приведших к логическим повреждениям данных. Когда в базе данных обнаруживаются физические повреждения или происходит потеря носителя, тогда вы должны применять традиционные методы восстановления. Oracle Database 10g: Administration Workshop II 6-14
Описание процесса Flashback Database Периодическая Откат назад изменений Восстановление в БД с помощью носителя путем предыдущих образов подката вперед блоков данных [ запись в журнал старых образов RVWRJ Flashback logs Журнал Copyright © 2006, Oracle. All 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 ~ ~ va VALID I О TIP И .s recommended that amhH lag fm be v-nhten tu sp>ead acre?* the drives MliP Vее ее,?'- specify up 10 йгеЬп® destest-ehs Flash Recovery Area It is highly recommended that you use Hash recovery area to automate your disk backup management. Flash Recovery Ares Location pX?l/app/oracle/fesh„recoyery_area Flash Recovery Area Size |2 | GB ,Д %'.??.&-ы w. K'e-tAi the fe set Used Flash Recovery Area Size (MB) 124.195 к-gs, you шу :«w?sr >w tmhm osvo-rrie t-J > yh- SAJUt-fii-Tir; «’ig ;feS F :•».?!/&«•; Г U it:V pr-i=«! ' tv 1ЖН-!Г:-^Ж rOCOV&l С ГШПОС ГОСО^ Й '< ¥«ГеЙ 3 АЧЙО .«dL-iv-ji :- Specify how far back you wish to hash the database in the future Flashback Retention Time p4 । Hours jJ ...........................................................I.там— Copyright © 2006, Oracle. AH rights reserved.j Конфигурирование возможности 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. Примеры Flashback Database RMAN> FLASHBACK DATABASE TO TIME « 2> "TO_DATE(12004-05-27 16:00:00’, 3>^JYYY-MM-DD HH2 4: MI: SS ’) ’’; BMAN> FLASHBACK DATABASE TO SCN«23565f RMAN> FLASHBACK DATABASE ! 2> TO SEQUENCE=223 THREAD=1; SQL> FLASHBACK DATABASE 2 T^^I|ffiST^lBXSYSDATE-l/24) ; SQL> FLASHBACK DATABASE TO SCN 5394ТЛВ SQL> FLASHBACK DATABASE TO RESTORE POINT b4_load; Примеры Flashback Database Команда RMAN FLASHBACK DATABASE используется для выполнения операции восстановления. В ней можно с помощью параметров SEQUENCE и THREAD задать в качестве ограничения сверху на номер журнала и номер потока. RMAN выбирает только те журналы, которые могут быть использованы для подката вперед, но не применяет журнал с заданным в команде номером. Другие способы отката с помощью команды FLASHBACK DATABASE - возврат базы данных на момент времени в прошлом или к определенному SCN. При использовании фразы ТО SCN необходимо указать номер. Если задается фраза ТО TIMESTAMP, следует ввести значение временной метки. Примечание: база данных должна быть смонтирована в монопольном режиме перед выполнением команды FLASHBACK DATABASE, а после завершения выполнения команды открыта с опцией RESETLOGS. Oracle Database 10g: Administration Workshop II 6-18 Oracle Database 10g: Administration Workshop I! 6-19
Конфигурирование Flashback Database Корзина Flashback БД > Конфиг. FB DB Монит. FB DB Гаран. т.восст. 1. Конфигурирование 2. Задание retention flash recovery area target 3. Включение Flashback Database SQL> SHUTDOWN IMMEDIATE; SQL> STARTUP MOUNT EXCLUSIVE; SQL> ALTER SYSTEM SET 2 DB_FLASHBACK_RETENTION_TARGET=2880 SCOPE=BOTH; SQL> ALTER DATABASE FLASHBACK ON; SQL> ALTER DATABASE OPEN; ORACLE' 6-16 Copyright © 2006, Oracle. All rights reserved.| Конфигурирование возможности отката базы данных Возможность отката базы данных конфигурируется следующим образом: 1. Сконфигурируйте флэш-область восстановления. 2. Задайте время удержания с помощью параметра инициализации DB__FLASHBACK__RETENTION__TARGET. Оно определяет максимальное время, на которое возможно удастся от катить назад базу данных. В примере задается 2880 минут, что эквивалентно двум дням. Этот параметр задает только целевое значение, но не дает полных гарантий. Реальный интервал времени отката назад зависит от того, сколько данных для отката сохранится во флэш-области восстановления. 3. Включите возможность отката базы дан ных: ALTER DATABASE FLASHBACK ON; Перед тем, как выполнить эту команду, необходимо перевести базу в режим архивирования и запустить ее в режиме MOUNT EXCLUSIVE. Проверить, включена ли возможность отката БД, можно, выполнив запрос: SELECT flashback__on FROM v$database; Выключить возможность отката БД можно по команде ALTER DATABASE FLASHBACK OFF. В результате весь существующий журнал отката БД будет автоматически удален. Примечание: включить возможность флэшбэк БД можно только, когда база данных смонтирована в режиме MOUNT EXCLUSIVE, но не открыта. Конфигурирование возможности Flashback Database с помощью EM Проверьте, находится ли БД в режиме archivelog. Media Recovery - The database is currently in ARCHIVELOG?mode, In ARCHiVELOG mods, ho space for logs. If you change the database to ARCHIVELOG mode, you shout cold backups and data may be lost in the event of database corruption. ARCHIVELOG Mode'’ Log Archive Filename Format* Ine nsnsng ' fha? archives fifes. log - < ' 6-17 Copyright © 2006, Oracle. All rights reserved. Конфигурирование возможности 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 0 6-17 Oracle Database 10g: Administration Workshop II 6-16
Flashback Database с помощью EM Perform Recovery: Type Выберите тип объекта и операции -г Warning The down IU п \ (фШ31ЧИ Орегайеду -I rtmwt 'еО,:* о? п* wit Ла d>-?a .г -ла «Ли? a/d in ‘U MU’ 1TC^ |v Type Object Type [whole Database "а Oper ation <♦ Recover из the current time or a previous point-in-time Type Г;^атй.$ be restore tro-n ilw ietes? u.ssi&fe кжкир se required Г Restore all datafiles •Meed to specify Trne, SCN o< log sequence. The jsackup taken M =;= prior io ihai hns упй he used Recover from previously restored datafiles Hast Credentials To perform recovery, supply operating system login credentials. * Username pmcle 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, чтобы перейти к следующему шагу подготовки, операции отката базы данных. Flashback Database с помощью EM Запуск мастера восстановления Q^aCLS Copyright © 2006, Oracle. All rights reserved. Flashback Database с помощью ЕМ (продолжение) После того, как был выбран тип операции восстановления, запускается соответствующий мастер (Recovery Wizard). Вы получаете сообщение о том, что база данных будет остановлена и повторно запущена в режиме монтирования. Эта операция займет несколько минут и вам будет выдана информация о временной задержке. После ожидания в течение некоторого времени вам предлагается щелкнуть на кнопке Refresh, чтобы продолжить действия. Oracle Database 10g: Administration Workshop II 6-21 Oracle Database 10g: Administration Workshop II 6-20
Flashback Database с помощью EM (продолжение) Теперь мастер восстановления запущен. База данных останавливается, а затем запускается в режиме MOUNT. Щелкните на кнопке Refresh. Вы попадаете на страницу Perform Recovery: Point-in-time. На этой странице выберите опцию Recover to a prior point-in-time, а затем задайте либо дату, либо SCN. После этого щелкните на кнопке Next. Появляется страница Perform Recovery: Flashback, на которой можно выбрать либо откат назад, либо обычное восстановление. Выберите соответствующую опцию, а затем щелкните на кнопке Next. Вы перейдете прямо на страницу Perform Recovery: Review, пример которой приведен на слайде. Чтобы выполнить откат базы данных, щелкните на кнопке Submit. Исключение табличных пространств из операции Flashback Database ALTER TABLESPACE <ts_name> FLASHBACK {ON|OFF} 1 " .»..' 1.11 «-1- " --- 1 »!» ЧП SQL> SELECT name, flashback_on 2 FROM v$tablespace; • Переведите табличное пространство в автономное состояние перед выполнением восстановления путем отката базы данных. • Удалите табличное пространство или восстановите автономные файлы с помощью обычного восстановления на момент-в-прошлом. [6-23 Copyright © 2006, Oracle. Ail rights reserved Исключение табличных пространств из операции Flashback Database В базе данных может быть табличное пространство, для которого нет необходимости вести журналы флэшбэк. Команда ALTER TABLESPACE позволяет исключить табличное пространство из процесса флэшбэк. Этот атрибут может быть также установлен, когда табличное пространство создается. По умолчанию значение атрибута “ON. Перед выполнением операции флэшбэк необходимо перевести такое табличное пространство в автономное состояние. Затем его можно удалить или же восстановить его автономные файлы данных, используя традиционные методы восстановления на момент времени в прошлом. Чтобы выяснить возможность отката табличного пространства при откате БД, выполните запрос к представлению V$ TABLE SPACE и выведите значение столбца f lashback__on. Примечание. После пересоздания управляющего файла все табличные пространства переводятся в режим FLASHBACK ON. Необходимо повторить команды ALTER TABLESPACE, чтобы исключить табличные пространства из операций Flashback Database. Oracle Database 10g: Administration Workshop II 6-22 Oracle Database 10g: Administration Workshop II 6*23
Рассмотрение функциональной возможности Flashback Database • После завершения операции Flashback Database откройте базу данных: - В режиме ‘только чтение" для проверки того, что использовалось правильное целевое значение времени или SCN - С опцией RESETLOGS, чтобы разрешить изменения • Обратная операция для flashback - операция recover * Нельзя применять откат БД в следующих ситуациях: - Управляющий файл был скопирован из резерва или пересоздан - Было удалено табличное пространство - Файл данных был сжат • Используйте фразу то before resetlogs для отката к моменту, предшествующему последнему открытию БД с опцией resetlogs - - m'".1 < 6-24 Copyright © 2006, Oracle. AU 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. Когда во флэш-области восстановления требуется пространство для файлов, журналы флэшбэк могут автоматически удаляться. 1 Oracle Database 10g: Administration Workshop II 6-25
Мониторинг Flashback Database (продолжение) Мониторинг Flashback Database Корзина Flashback БД Конфиг. FB OB > Монит. FB DB Таран, т.восст. Мониторинг возможности отката БД в соответствие с заданным целевым временем удержания: • Просмотрите квоту дискового пространства во флэш-области восстановления:__________________, SQL> SELECT estimated_flashback_size, '2' flashback_size 3 FROM V$FLASHBACK_DATABASE_LOG;___________ • Выясните текущее окно флэшбэк:_______________ SQL> SELECT oldest_flashback_scn, 2 oldest_flashback_time 3. FROM V$FLASHBACK DATABASE LOG; ...• ••••••• . ... : ' ' . Представление V$FLASHBACKJDATABASE_STAT позволяет вести мониторинг накладных расходов, связанных с ведением журнала данных для флэшбэк БД. Представление содержит информацию за последние 24 часа и каждая строка отражает интервал в один час. Представление можно использовать для определения того, как меняется скорость генерации данных для отката БД. SQL> SELECT begin__time, end__time, flashback__dat.a, db_data, 2 redo data, estimated__flashback size AS EST__FB_SZE 3 FROM ~V$ FLASHBACK- DATABASE-STAT; BEGINJTIM END__TIME FLASHBACK-DATA DB^DATA REDO DATA EST_FB_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 . Ведите наблюдение за журналом флэшбэк : SQL> SELECT * • 2 FROM V$FLASHBACK_DATABASE_STAT; Па основе этих данных возможно потребуется скорректировать время удержания или размер флэш-области восстановления. FLASHBACK__DATA и REDO_DATA отражают размер (в байтах) данных для флэшбэк и журнальных данных, записанных в соответствующем временном интервале, a DB_DATA показывает число байтов в прочитанных и записанных блоках данных. Это представление также содержит’ оценку пространства для данных отката в указанном интервале времени. Л1: _______________________vPpACLfc. 6-26 Copyright © 2006, Oracle. AH rights reserved. Чтобы получить сведения, касающиеся флэш-области восстановления, можно выполнить запрос к представлению V$RECOVERY_FILE__DEST, имеющему следующие столбцы: « NAME; имя флэш-области восстановления, показывающее ее местоположение; • SPACE^LIMIT; ограничение на размер дискового пространства, заданное параметром инициализации DB__RECOVERY__FILE__DEST__S IZE; . SPACEJJSED; используемое пространство (в байтах) во флэш-области Мониторинг Flashback Database Необходимо осуществлять мониторинг использования пространства флэш-области восстановления, чтобы знать, насколько достижимо заданное целевое время для отката БД.. Представление V$FLASHBACK__DATABASE_JLOG позволяет вести мониторинг целевого времени удержания информации для флэшбэк. • ESTIMATED__FLASHBACK__SIZE; оценка размера области дискового пространства во флэш-области восстановления, необходимого для журнала отката БД, в соответствие с текущим целевым значением удержания данных для флэшбэк. Чтобы оценить эту величину используются ранее записанные в журнал данные для отката БД. Оценка основывается на рабочей загрузке с момента запуска экземпляра или в течение самого последнего временного интервала, равного целевому значению удержания данных флэшбэк, если этот интервал меньше времени работы экземпляра. • FLASHBACK_S I ZE; текущий размер в байтах, занимаемый во флэш-области восстановления данными для флэшбэк. • OLDEST__FLASHBACK_SCN И OLDEST___FLASHBACK__TIME; приблизительное значение для наименьшего xSCN и момента времени, к которому можно восстановить данные. Столбец CURRENTJSCN в представлении V$ DATABASE показывает текущий SCN базы данных. восстановления; SPACE_RECLAIMABLE; размер пространства, которое может освободить алгоритм управления пространством после удаления устаревших, избыточных и других неважных файлов • 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$recovery_file_dest ; NAME QUOTA USED RECLAIMABLE FILES /u01/flash recovery area 5368709120 250980/104 203386880 226 Oracle Database 10g: Administration Workshop II 6-26 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 tile type that is not reclaimable by Oracle. Performing backups to a tertiary storage is one way to make space reclaimable. Usable Flash Recovery Area includes free and reciaimable space. Flash Recovery Area Location |tooi/app/oracle/flash„recovery„area Flash Recovery Area Usage Flash Recovery Area Size p |7JeFJ Ftew л» &>? w&l set when th Reclaimable Flash Recovery™ „ Area (MB) £ Free Flash Recovery Area^ 6 P Enable Flashback. Database - flashback logging can be used database point-in-time recovery* 1Ы Лат ; area wal he set ta «mhis Льтъ&еЬ < ям When '-;&& fcHidck I. j f «cover yo».s entee к< а рног Mhout ге«*сппе{ ь H рсо-гНгп? recovery ;-d in the recovery %:гч« ч-лж*. Specify how far back you wish to flash the database in the fi Flashback Retention Time p4~~ [Hour Current size of the flashback logs(MB) 196.383 Lowest SCN in the flashback data 1252302 Flashback Time Oct 4,2005 10:31 A-^m- ® image Copy - 0.48GB (24.2%) В Backup Piece -0.22GB (11%) H Archive Log - 0.1GB (4.8%) ® Control File - OGB (0%) H Online Log - OGB (0%) И Flashback Log - 0.01GB (0.7%) В Usable - i.o 1GB (59 3%) •% ORACl€ 6-28 Copyright © 2006, Oracle. All rights reserved. Мониторинг Flashback Database с помощью EM Большинство упомянутых на предыдущих страницах статистик флэшбэк можно просмотреть на странице Recovery Settings. В их число входят следующие метрики: текущий размер всех журналов отката БД, наименьший SCN и момент времени, соответствующий этому наименьшему системному номеру изменений данных для флэшбэк. Oracle Database iO<gp: Administration Workshop II 6-28
Гарантированные точки восстановления Корзина Flashback БД Конфиг. FB DB Монит. FB DB > Гараи. т.восст. Гарантированные точки восстановления обеспечивают возможность в любой момент времени восстановиться по команде flashback database к соответствующему SCN. ! 6 »И» Copyright © 2006, Oracle. All nghts reserved. □RAOje SQL> CREATE RESTORE POINT before_load ’ GUARANTEE FLASHBACK DATABASE; t f.SB Гарантированные точки восстановления Подобно обычным точкам восстановления {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 6-30 Copyright © 2006, Oracle. AH rights reserved Обзор практического занятия: откат базы данных • Выполнение операции Flashback Database для отмены ненужных транзакций • Мониторинг удержания данных для операции Flashback Database • Определение размера журналов флэшбэк Oracle Database 10g: Administration Workshop II 6-31 Oracle Database 10g: Administration Workshop II 6-30

Обнаружение и устранение повреждений информации в базе данных OPACUt Copyright © 2006, Oracle. All rights reserved.
Рассматриваемые вопросы • Причины возникновения повреждений в базе данных: - аппаратное обеспечение - программное обеспечение • Обнаружение повреждений в базе данных с помощью: - ANALYZE — dbverify ™ DBJBLOCKJ2HECKING - DBMS_REPAIR • Использование RMAN для устранения повреждений ORACUe 7-2 Copyright © 2006, Oracle. Al! rights reserved. Oracle Database 10g: Administration Workshop II 7-2 Что такое повреждение блока? • При каждом чтении и записи блока производится проверка его согласованности: - Версия блока - Значение DBA (data block address,адрес блока данных) в кэше сравнивается со значением DBA в буфере блока - Подсчет контрольной суммы блока, если такая возможность включена • Два типа повреждений блоков: - Повреждение носителя - Логические (программные) повреждения 7-3 Copyright © 2006, Grade. All rights reserved. Л'У .. i-SACLC Повреждение блоков Поврежденный блок данных {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 О. f AC Lt: 7~4 Copyright © 2006, Oracle. All rights reserved. Симптомы: ORA-1578 Обычно ошибка ORA-1578 возникает в результате аппаратных проблем. Ошибка ORA-1578, постоянно возвращаемая с одними и теми же параметрами, почти всегда означает искажение блока на носителе. Если параметры в сообщении о возвращаемой ошибке всегда отличаются, тогда это может отражать аппаратную проблему. Следует проверить память и страничное пространство, а также подсистему ввода-вывода с целью обнаружения плохих контроллеров. Как обнаруживать и устранять влияние повреждений • Проверяйте сигнальный файл и системный журнал операционной системы. • Используйте доступные инструменты диагностики для выявления типа повреждений. • Выясните, постоянно ли-возникает ошибка, выполнив проверку несколько раз. • Восстановите данные поврежденного объекта, если это необходимо. 7-5 Copyright © 2006, Oracle. All rights reserved. .. > j .. _ Как обнаруживать и устранять влияние повреждений Всегда пытайтесь выяснить, постоянно ли возникает ошибка. Выполните команду ANALYZE несколько раз. Если это возможно, остановите и запустите снова базу данных, а затем повторите операцию, приводившую раньше к ошибке. Выясните, есть ли еще повреждения. Другие блоки также могут быть повреждены, если обнаружен один искаженный блок. В подобной ситуации воспользуйтесь утилитой DBVERIFY. Oracle Database 10g: Administration Workshop II 7-4 Oracle Database 10g: Administration Workshop II 7-5
Как обнаруживать и устранять влияние повреждений • Разрешите аппаратные проблемы - Платы памяти - Дисковые контроллеры - Диски • Восставите или извлеките данные из поврежденного объекта, если это необходимо. Функциональные возможности, имеющие отношение к обнаружению и устранению повреждений Функциональная возможность Обнаруживаемое повреждение Исправление повреждения DBVERIFY Физическое Нет ANALYZE Логическое « Нет DBJBLOCKJ^HECKING Логическое Нет DB_BLOCK_CHECKSUM Физическое Нет exp Физическое Нет Flashback Логическое Да । DBMSJREPAIB Логическое Да Восстановление на уровне блоков (BMR) Никакое Да Copyright © 2006, Oracle. All nghts reserved. ORACLE' 1 Н Copyright © 2006, Oracle. All rights reserved. Как обнаруживать и устранять влияние повреждений (продолжение) В случае отказа аппаратуры работа должна быть остановлена. Следует обратиться к поставщику оборудования для проведения проверки и устранения неисправности машины. Необходимо провести полную диагностику аппаратного обеспечения. Возможные типы аппаратных сбоев: • отказ аппаратуры или программно-аппаратных средств ввода-вывода; • проблемы, связанные с кэшем и подсистемой ввода-вывода операционной системы; * проблемы памяти и страничного обмена; • ошибочное выполнение утилит восстановления после дисковых сбоев (disk repair utilities). Функциональные возможности, имеющие отношение к обнаружению и устранению повреждений Имеется много инструментальных средств, предназначенных для обнаружения, диагностирования и устранения повреждений в базе данных Oracle. На слайде представлена краткая сводка таких инструментов, рассматриваемых в этом уроке. Oracle Database 10g: Administration Workshop II 7-6 Oracle Database 10g: Administration Workshop II 7-7
Утилита DBVERIFY • Проверяет только файлы данных, с ее помощью нельзя протестировать оперативные журнальные файлы. • Проверяет целостность блоков. • Может применяться при открытой базе данных. • Имя программной утилиты: dbv $ dbv file=/u01/oradata/users01.dbf \ blocksize=8192 Утилита DBVERIFY DBVERIFY - это внешняя утилита с интерфейсом командной строки, выполняющая физическую проверку структурной целостности информации автономной базы данных. Она может использоваться для проверки копий образов и оперативных файлов данных (или их части). Применяйте утилиту DBVERIFY главным образом, если необходимо удостовериться в корректности копии базы данных (или файла данных) перед восстановлением, а также как средство диагностики, если были зафиксированы симптомы повреждения данных. Поскольку утилита DBVERIFY может работать, когда база данных в автономном состоянии, проверка целостности выполняется значительно быстрее. Ограничения использования утилиты DBVERIFY: • DBVERIFY не выявляет проблемы несоответствия индексов и таблиц, которые могут быть обнаружены по команде analyze table .. .validate structure cascade. DBVERIFY не проверяет ни оперативные журналы, ни управляющие файлы. • DBVERIFY проверяет блоки только изолированно, она не выясняет, является ли блок частью существующего объекта или нет. • Для "чистых” устройств (raw devices, "чистых” дисковых секций) необходимо задавать параметр END, чтобы устранить просмотр блоков, размещенных за границей пространства файла данных: dbv FILE=/dev/rdsk/rl.dbf ЕТО=последний_блок_данных# Oracle Database 10g: Administration Workshop II 7-8
Интерпретация выходных данных утилиты DBVERIFY • Число страниц- это число блоков в файле данных. • При несовпадении контрольной информации в заголовке блока (head) и его конечной части (tail) утилита dbverify перечитывает блок. Если при повторном чтении контрольная информация совпадают, о таком блоке сообщается как о “плывущем** (influx), если нет - как о поврежденном (corrupt) блоке^________________________ Total Pages Examined : 12800 Total Pages Processed (Data) : 4408 Total Pages Failing (Data) : 0 Total Pages Processed (Index): 1264 Total Pages Marked Corrupt : 4 Total Pages Influx ffl Highest block SON :• 654836 (0.654836) ...................................... 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 Processed (Data) : 4409 Total Pages Failing (Data) : 0 Total Pages Processed (Index): 1264 Total Pages Failing (Index): 0 Total Pages Processed (Other): 153 9 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) Команда analyze • Выполняет логическую проверку блоков • Не помечает блоки как поврежденные (soft corrupted), а только сообщает о них • Проверяет индексные и табличные записи SQL> ANALYZE TABLE имя_габлшш VALIDATE 2 STRUCTURE CASCADE; SQL> ANALYZE INDEX жмя_ивдекса VALIDATE 2 STRUCTURE; .. .....x.'/ ...... 7-11 Copyright © 2006, Oracle, All rights reserved. Команда analyze Команда ANALYZE используется для проверки структуры таблицы или секций таблицы, а также индекса или индексных секций. Анализируемый объект должен быть локальным и находиться в собствен ной схеме пользователя, выполняющего команду, либо пользователь должен иметь системную привилегию ANALYZE ANY. Если задан параметр CASCADE, выполняется проверка указанного объекта и всех связанных с ним объектов. Такую команду можно запускать несколько раз в сеансе SQL*PIus с параметром CASCADE, чтобы выяснить, постоянно ли при этом обнаруживаются ошибки целостности данных. Для секционированных таблиц команда ANALYZE также проверяет принадлежность строки к соответствующей секции.Значение ROWID неверно расположенной строки заносится в таблицу INVALIDJROWS. SQL> ANALYZE TABLE секционированная^таблица PARTITION (pl) 2 VALIDATE STRUCTURE INTO invalid_rows; Простая команда выбора (SELECT * FROM table) полностью просматривает таблицу, читая все блоки до отметки максимального заполнения. Такую команду можно использовать для быстрой проверки наличия повреждений в текущих данных таблицы. Кроме того, можно воспользоваться утилитой Data Pump для экспорта объектов; в этом случае также производится полное сканирование каждой таблицы. Примечание: команда ANALYZE проверяет битовые матрицы, используемые при автоматическом управлении пространством сегментов (auto segment space management - ASSM), но не принимает во внимание неразмеченные блоки ниже отметки максимального заполнения. Oracle Database 10g: Administration Workshop II 7-10 Oracle Database 10g: Administration Workshop II 7-11
Проверка целостности блока в реальном времени:db_block__checking Параметр инициализации db_block_checking: • Управляет уровнем проверок непротиворечивости, производимых над каждым блоком во время его обработки • Может помочь предотвратить повреждения памяти и данных • Может быть установлен с помощью команд alter SESSION ИЛИ ALTER SYSTEM DEFERRED |7-12 Copyright © 2006, Oracle. All rights reserved.| Проверка целостности блока в реальном времени: db_block_checking Когда значение параметра равно TRUE, осуществляется проверка всех блоков данных. Производя такие проверки Oracle, читает данные блока, чтобы убедиться в их согласованности. Включенная проверка блоков часто предотвращает повреждения памяти и данных. Дополнительные накладные расходы, которые обычно при этом возникают, составляют от 1 до 10%, в зависимости от рабочей нагрузки. Чем больше изменений и вставок, тем дороже обходится включение этого режима проверки. Параметр DBJBLOCK__CHECKING может иметь одно из следующих значений: • OFF; никакие проверки блоков не производятся ни в каком табличном пространстве, за исключением SYSTEM. . LOW; производятся основные проверки заголовка блока после изменения содержимого блока в памяти (например, после команд UPDATE и INSERT, а также чтений с диска). • MEDIUM; производятся все проверки, определяемые значением LOW, а также проверки блоков, не принадлежащих индекс-таблицам. * FULL; производятся все проверки, определяемые значениями LOW и MEDIUM, а также проверки индексных блоков. Для параметра DB JBLOCK_CHECKING следует устанавливать значение FULL, когда с точки зрения производительности допустимы возникающие накладных расходы. Для обратной совместимости по умолчанию установлено значение FALSE, что эквивалентно OFF. Даже если эта возможность отключена, табличное пространства SYSTEM всегда проверяется. Проверка целостности блока в реальном времени: db_block_checksum Параметр инициализации db_block_checksum: • Определяет, сопровождается и проверяется ли контрольная сумма для каждого блока • Может предотвратить повреждение, причиной которого являются базовые системы ввода- вывода г %.. ORACLe Д <:: : :: : << :' 7 \ > X'S- ... ' |7-13 Copyright © 2006, Oracle. All rights reserved. Проверка целостности блока в реальном времени: dbjblockj?hecksum Когда параметр DB_BLOCK__CHECKSUM установлен в TRUE, процесс DBWn и операция прямой загрузки подсчитывают контрольную сумму и сохраняют ее в заголовке (cache header) каждого блока во время записи его на диск. Контрольная сумма - это число, подсчитываемое по всем байтам блока. При последующем чтении блока контрольная сумма пересчитывается и сравнивается с хранимым в блоке значением. Так как контрольные суммы позволяют обнаружить повреждения дисков, систем хранения и систем ввода-вывода, вызывая при этом небольшие накладные расходы (от 1% до 2%), корпорация Oracle рекомендует устанавливать в TRUE значение параметра DBJBLOCK__CHECKSUM Oracle Database 10g: Administration Workshop II 7-13 Oracle Database 10g: Administration Workshop II 7-12
Использование утилиты EXP для обнаружения повреждения Обычный режим экспорта можно использовать для обнаружения повреждения. $ exp hr/hr tables=departments About to export specified tables via Conventional Path . . exporting table DEPARTMENTS EXP-00056: ORACLE error 1578 encountered ORA-01578: ORACLE data block corrupted (file # S-, block # 51) ORA-01110: data file 5: ’/uOl/app/oracle/oradata/orcl/exaittpleOl.dbf' Использование утилиты exp для обнаружения повреждения Другая возможность обнаружения поврежденных блоков предоставляется утилитой экспорта (ЕХР). Поскольку утилита ЕХР полностью сканирует каждый блок экспортируемого объекта, она выдает сообщение об ошибке при обнаружении поврежденного блока. ШШ Использование flashback в случае логических повреждений АБД Flashback Versions Query Найдены поврежденные данные Пользователь Flashback Transaction Query Отмена t кода SQL или откат Г;.' таблицы Ж' 7-15 Copyright © 2006, Oracle. All rights reserved. Использование flashback в случае логических повреждений После исключения причин появления физических повреждений можно воспользоваться возможностями технологии ретроспективных данных для выяснения того, когда появилось логическое повреждение. Например, можно сначала просмотреть строки, полученные с помощью Flashback Versions Query . Затем, используя полученные идентификаторы транзакций, просмотреть все объекты, на которые оказала воздействие одна и та же транзакция. Для восстановления поврежденных данных можно воспользоваться кодом, возвращаемым в столбце UNDO__SQL, или же откатить таблицу назад к моменту времени (SCN) перед началом транзакции. Примечание: подробно выполнение Flashback Versions Query рассматривается в курсе Oracle Database 10g: Администрирование I. ЭДЦ I у Oracle Database 10g: Administration Workshop II 7-15 Oracle Database 10g: Administration Workshop II 7-14
Пакет DBMS_REPAIR Процедуры пакета: • CHECK_OBJECT • FIX_CORRUPT_BLOCKS • DUMP_ORPHAN_KEYS • REBUILD_FREELISTS • SEGMENT_FIX_STATUS • SKIP_CORRUPT_BLOCKS • ADMIN_TABLES 7-16 Copyright © 2006, Oracle. Ail rights reserved. Пакет DBMS_REPAIR Другой способ устранения влияния повреждений блоков данных состоит в использовании пакета DBMS_REPAIR. Пакет применяется для обнаружения и устранения поврежденных блоков таблиц и индексов. Он позволяет найти место повреждения и. не прекращая использования объекта, выполнять действия по его перестройке или устранению повреждений. Пакет содержит следующие процедуры: • CHECKjOBJECT; обнаружение и выдача информации о повреждениях в таблице или индексе; FIX^CORRUPT^BLOCKS помечает блоки, ранее обнаруженные процедурой СНЕСК_ОВ JECT, как программно (или логически) поврежденные; » DUMP_ORPHAN_KEYS заносит в таблицу сведений о зависших ключах индекса, ссылающихся на поврежденные блоки данных; REBUILD^FREELISTS; перестройка списков свободных блоков объекта;. • SEGMENT_FIX_STATUS; предоставляет возможность устранения поврежденного состояния входа битовой матрицы, используемой при автоматическом управлении свободным пространством сегмента; * SKIP_CORRUPTJBLOCKS; при полных просмотрах таблицы или индекса игнорируются блоки, отмеченные как поврежденные; когда поврежденные блок не отмечен, возникает ошибка 0RA- 01578. • ADMINJTABLES; возможности сопровождения (создание, удаление, очистка) таблиц с данными о табличных повреждениях или orphan keys (записи индекса, указывающие на несуществующие строки таблицы); такие таблицы всегда создаются в схеме SYS. Примечание: зависшие ключи индекса (orphan keys) ~~ записи индекса, указывающие на несуществующие строки таблицы. Oracle Database 10g: Administration Workshop II 7-16 -X-Xv.. f* Использование пакета dbms_REPAIR 1. Обнаружение и отчет о повреждениях. SET SERVEROUTPUT ON DECLARE num_corrupt INT; BEGIN DwI_REPAIR.CHECK_OBJECT ( > schexna_name -> 'HR’ > objectjname »> 'DEPARTMENTS repatriable j&anie ’ REFAIRJTABLE’ f corrupt rupt) ; «ЯИИ 2. Оценка преимуществ и издержек, связанных с использованием пакета dbms_repair. |7-17 Copyright © 2006, Oracle. All rights reserved. Использование пакета dbms_repair Первая задача, которую следует решить до использования пакета DBMS_REPAIR, - обнаружение и получение сведений о повреждениях. Это предполагает не только установление того, что неверно в блоке, но также и определение соответствующих директив исправления (repair) повреждений. После использования инструментов, представленных ранее в этом уроке, можно рассмотреть возможность применения пакета DBMS__REPAIR для исправления повреждения. Процедура CHECK__OBJECT проверяет заданный объект и заполняет служебную таблицу сведениями о повреждениях и директивах по их устранению. Перед выполнением любой процедуры пакета DBMS_REPAIR необходимо иметь созданную таблицу результатов проверки. Для этого используется процедура ADMIN__T ABLES: BEGIN DBMS__REPAIR. ADMINJTABLES ( t ab 1 e_na.me => ’RE PA I R_TAB LE ’, table__type -> DBMS_REPAIR.REPAIR JI ABLE, action ==> DBMS JREPAIR. CREATE__ACTION, tablespace => ’USERS’); END; До применения пакета DBMS__REPAIR следует оценить преимущества и связанные с ним искажения результатов обработки данных. Следует также оценить возможность использования других средств обнаружения поврежденных объектов. Oracle Database 10g: Administration Workshop II 7-17
Использование пакета dbmsjrepair (продолжение) На первом шаге необходимо ответить на следующие вопросы. • Насколько велики повреждения? Выполните процедуру CHECK OBJECT, чтобы занести сведения о повреждениях и указания по их устранению в таблицу результатов. Затем выполните запрос данных из этой таблицы. • Какие другие возможности доступны для обнаружения и устранения поврежденных блоков? • Какие логические повреждения отмечаются с помощью пакета DBMS—REPAIR и каковы последствия такого подхода, в результате которого можно использовать объект? Можно ли добиться удовлетворительных результатов при таком подходе? • Если при устранении последствий повреждений теряются данные, можно их все таки как-то получить? Данные можно выбрать из индекса, когда блок данных отмечен как поврежденный. Процедура DUMP-ORPHAN KEYS может помочь выбрать эту информацию. Конечно такой способ получения данных в значительной степени зависит от объема информации таблицы, не хранимой в индексе. В ниже приводимом примере показывается, как создается таблица ORPHAN-KEY-TABLE, используемая для получения сведений о зависших ключах и размещаемая в табличном пространстве U S Е RS. BEGIN DBMS—REPAIR.ADMIN_TABLES ( table__name -> ’ORPHAN-KEY-TABLE’f table-type -> DBMS REPAIR.ORPHAN-TABLE, action -> DBMS—REPAIR.CREATE—ACTION, tablespace -> ’USERS'); END; Использование пакета dbms_repair 3. Переведите объект в состояние, позволяющее его использовать» SET SERVEROOTPOT ON DECLARE num_fxx -ЮТ-) BEGIN num_fix 0; DBMSJREPAIR. FIXJ^ORRUPTJBLOCKS ( schema_name -> 5 HR' f object_name ’ DEPARTMENTS'., object_type ~> DBMSJREPAIR. TABLEJ3B0ECT, repair^tablejame => ’ REPATRIABLE J fix^count «> nxuxjfix) ; END; f-19_______________________________Copyright © 2006, Oracle. All rights reserved. Использование пакета dbmsjrepair (продолжение) Пакет DBMS—REPAIR возвращает объект в состояние, позволяющее его использовать. Для этого выполняются процедуры 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-18 Oracle Database 10g: Administration Workshop II 7-19
Использование пакета dbms_repair 4. Устранение повреждений и перестройка потерянных данных. SET SERVEROUTPOT ON ^DECLARE nwn_orphans ЮТ; BEGIN ? mmjjrphans 0; DBMS_REPAIR.DUMP_ORPHAN_KEYS ( schema_name —> * * SCOTT’, Г- object_name object_type => DBMS_REFAIB-I®SX_OB JECT z repair_tablejname => 8 REPATRIABLE ’ f gr^an_table_name => ’ ORPHAN_KEY_TABLE8 r key_count -> num_orphans); DBMS_OUTPOT«POT_LINE(’orphan key count: ' || TOjCHAR (num_orphans) ) ; END; 7-20 Copyright © 2006, Oracle. AH rights reserved. Использование пакета dbmsjrepair (продолжение) После перевода объекта в пригодное для использование состоянии можно восстановить данные, используя процедуру DUMP__ORPHAN__KEYS. Она сообщает об индексных входах, которые указывают на поврежденные блоки данных. Сведения о всех таких индексных входах (ключ и ROWID) вставляются в таблицу зависших ключей (orphan key table). Таблица зависших ключей должна быть предварительно создана. После просмотра информации об индексных входах можно перестроить индекс, используя команду ALTER INDEX ... REBUILD ONLINE. Восстановление блоков после сбоя носителя (BMR) • BMR уменьшает среднее время восстановления • BMR сохраняет доступность информации - Файл данных остается в оперативном состоянии во время восстановления - Недоступны только восстанавливаемые блоки • Команда RMAN BLOCKRECOVER запускает BMR - Из доступных резервных объектов копируются отдельные блоки - Сервер выполняет их согласование |7-21 Copyright © 2006, Grade. All rights reserved. Восстановление блоков после сбоя носителя Восстановление блоков после сбоя носителя (Block Media Recovery ~~ BMR} позволяет вместо файла данных восстанавливать наименьшую структуру единицу:- один блок. Если известно, что необходимо восстановить небольшое число блоков, тогда наиболее эффективный путь - скопировать из резерва и восстановить эти блоки. В ходе восстановления только восстанавливаемые блоки недоступны, остальная часть базы остается открытой для оперативного доступна. BMR имеет два главных преимущества по сравнению с восстановлением на уровне файла: • меньшее среднее время восстановления (mean time to recover - MTTR)\ • более высокая степень доступности информации во время восстановления, поскольку файл данных остается в оперативном состоянии. В ходе BMR используются существующие механизмы восстановления и применяются потоки данных из журналов повторного выполнения к версиям блоков, скопированным из подходящих резервных объектов. Выполняя BMR, утилита RMAN копирует из доступных резервных объектов отдельные блоки данных и согласовывает их с помощью серверного процесса Oracle. Без восстановления на уровне блока, даже если поврежден только один блок, весь файл данных должен быть скопирован из резерва и все изменения из журналов должны быть применены к файлу для восстановления. Уменьшение MTTR при использовании восстановления на уровне блока достигается за счет снижения как времени копирования из резервов, так к и времени восстановления. Отметим, что возможно только полное восстановление. Неполное восстановление приведет базу данных в логически несогласованное состояние. Oracle Database 10g: Administration Workshop II 7-20 Oracle Database 10g: Administration Workshop II 7-21
Команда blockrecover • Команда blockrecover выявляет резервные объекты, содержащие восстанавливаемые блоки. • Команда читает резервные объекты и аккумулирует требуемые блоки во входных буферах оперативной памяти. • Команда blockrecover управляет сеансом восстановления поврежденных блоков, считывая при необходимости архивные журналы из резерва. • Не может быть использована для неполного восстановления. RMAN> BLOCKRECOVER DMAFILE 6 BLOCK 3; 7-22 Copyright © 2006, Oracle. AH rights reserved. огёАссе ...| Команда RMAN BLOCKRECOVER RMAN поддерживает BMR с помощью команды BLOCKRECOVER. Пользователь обнаруживает поврежденные блоки, когда получает сообщение об ошибке или просматривает сигнальный и трассировочные файлы. После этого АБД может воспользоваться командой BLOCKRECOVER, чтобы восстановить из резервного объекта только требуемый блок. В результате система не простаивает в течение большого промежутка времени и данные остаются доступными. Команда BLOCKRECOVER выполняет следующие действия: • Выявляет резервные объекты, из которых будут извлекаться блоки для восстановления. * Читает резервные объекты и аккумулирует требуемые блоки во входных буферах оперативной памяти. Если какой-либо из требуемых блоков поврежден (вследствие повреждения носителя или логического искажения), RMAN читает предыдущую резервную копию, содержащую необходимый файл. Выбор резервных наборов или копий файлов ограничивается опцией UNTIL, в которой задается момент времени, SCN или номер журнала, до которых включительно должно было быть выполнено резервирование. При использовании в команде BLOCKRECOVER опции UNTIL может использоваться не самый последний по времени зарезервированный объект. • Запускает и управляет сеансохм восстановления поврежденного блока, читает архивные журналы из резерва, когда это необходимо. • Всегда производит полное восстановление. По команде BLOCKRECOVER нельзя выполнить восстановление на момент-в-прошлом. Oracle Database 10g: Administration Workshop II 1-22 Примеры использования команды BLOCKRECOVER • Восстановление группы поврежденных блоков. • Ограничение типа резервных объектов, используемых в команде восстановления на уровне блоков. - • Ограничение на используемые при восстановлении резервные объекты, задаваемое тэгом. • Ограничение на используемые при восстановлении на уровне блока резервные объекты, задаваемое в виде момента времени, SCN или номера журнала. ________________ ____ I I 7-23 Copyright © 2006, Oracle. All 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 f’weekly__backup”; * В следующем примере восстанавливаются два блока табличного пространства SYSTEM и при этом используются резервные объекты, с момента получения которых прошло хотя бы два дня: BLOCKRECOVER TABLESPACE SYSTEM DBA 4194404, 4194405 RESTORE UNTIL TIME 'SYSDATE-2’; 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 хранит перечень поврежденных блоков БД. Ш> BLOCKRECOVER CORRUPTION LIST 2> RESTORE UNTIL TIME 'sysdate - 10'; • Представление v$backup_corruption отражает перечень поврежденных блоков файлов данных в резервных наборах. • Представление v$copy__corruption отражает перечень поврежденных блоков в копиях образов файлов. 7-25 Copyright © 2006, Oracle. All rights reserved. Интерфейс BMR, предоставляемый утилитой RMAN Используя фразу CORRUPTION LIST, можно восстановить блоки, которые перечисляются в представлении V$DA.TABASE_BLOCK_CORRUPTION. Это представление заполняется в ходе операции резервирования при обнаружении поврежденных блоков. Когда в процессе резервирования обнаруживается большее, чем допустимо количество поврежденных блоков, представление совсем не заполняется. Вам следует в таком случае выполнить команду BACKUP. . .VALIDATE, чтобы полностью заполнить это представление сведениями о всех поврежденных блоках. После устранения повреждения в результате восстановления на уровне блока (или обычного восстановления после потери носителя) представление V$DATABASE_BLOCK__CORRUPTION не изменяется до тех пор, пока не будет произведено новое резервирование. Фраза UNTIL определяет, какие резервные наборы и копии могут быть использованы для извлечения блока. В ней указывается время, SCN или номер журнала. Резервный объект, полученный до момента, задаваемого одним из этих параметров, может быть использован для извлечения и восстановления блока. При использовании возможности BMR всегда выполняется полное восстановление до текущего момента времени. Два типа повреждений отражаются в строках представлений V$BACKUP__CORRUPTION и V$COPY__CORRUPTION после выполнения команд BACKUP и COPY. • Физические повреждения (иногда называемые повреждениями носителя). Сервер Oracle совсем не распознает блок: контрольная сумма неправильная, блок содержит одни нули или заголовок (header) и конечная часть (footer) блока не соответствуют друг другу. Проверка физических повреждения по умолчанию включена (ON) и может быть отключена с помощью опции NOCHECKSUM, * Логические повреждения. Контрольная сумма блока правильная, заголовок и конечная часть блока соответствуют друг другу и т.д. Однако содержимое блока логически противоречиво. По умолчанию логическая проверка отключена (OFF) и может быть включена с помощью опции CHECK LOGICAL. Oracle Database 10g: Administration Workshop II 7-25
Альтернативные действия Таблица: данные в поврежденном блоке потеряны - Удалите таблицу, создайте ее повторно и импортируйте данные из экспортного файла - С помощью SQL и PL/SQL извлеките данные из таблицы и перенесите в новую созданную таблицу Индекс: удалите и повторно создайте индекс Copyright © 2006, Oracle. АН rights reserved. 7-26 Альтернативные действия Если вы не собираетесь выполнять для файлов данных операции restore и recover, тогда можете с помощью приведенного ниже запроса выяснить, какой объект был поврежден. В сообщении об ошибке, вызванной обращением к поврежденному блоку, выводится абсолютный номер файла и номер блока. Пусть, например, это файл с абсолютным номером 5 и блоком 2: ORA-01578: ORACLE data block corrupted (file #5, block # 2) Выполните следующую команду: SQL> SELECT segment_name, segment__typer relative_fno 2 FROM dba__extents 3 WHERE file_id = 5 4 AND 2 BETWEEN block__id AND block__id + blocks - 1; SEGMENT_NAME SEGMENT_TYPE RELATIVE__FNO EXAMPLE TABLE PARTITION 5 После выявления поврежденного объекта можно попробовать другие варианты восстановления. Воспользуйтесь dump-файлов, полученным путем экспорта, чтобы восстановить таблицу. Или же напишите код SQL для создания таблицы из поврежденной. При этом могут потребоваться знания о бизнес-данн ых. Для поврежденного индекса наиболее эффективный способ - просто удалить и пересоздать индекс. Oracle Database 10g: Administration Workshop II 7-26
Итоги * Причины возникновения повреждений в базе данных: - аппаратное обеспечение - программное обеспечение • Обнаружение повреждений в базе данных с помощью: - ANALYZE - dbverify - DBJBLOCKJ2HECKING - DBMSJREPAIR * Использование RMAN для устранения повреждений f A % Sss- V ' 'i.‘ : - ORACLE " I | 7-27 Copyright © 2006, Oracle. All rights reserved. Oracle Database 10g: Administration Workshop II 7-27
Обзор практического занятия: восстановление блоков после сбоя носителя • Обнаружение повреждений • Выявление месторасположения повреждения • Устранение повреждений с помощью восстановления на уровне блока 7-28 Copyright © 2006, Oracle. All rights reserved Мониторинг и управление памятью Copyright © 2006, Oracle. All rights reserved. сгелсие L—___— Oracle Database 10g: Administration Workshop II 7-28
Рассматриваемые вопросы • Описание компонентов, размещаемых в SGA • Реализация автоматического управления разделяемой памяти • Ручное конфигурирование параметров SGA • Конфигурирование автоматического управления PGA ORAClJE 8-2 Copyright © 2006, Oracle. All rights reserved. Oracle Database 10g: Administration Workshop II 8-2
Обзор управления памятью Управление памятью должно рассматриваться АБД как важная часть его работы: • Размер доступной памяти ограничен • Выделение большей памяти для использования определенными видами функций может повысить общую производительность • Автоматическое выделение памяти - наиболее подходящая конфигурация. Однако в определенных средах или при одних и тех же коротких условиях может потребоваться дополнительное рассмотрение. 8-3 Copyright © 2006, Oracle, All rights reserved. Обзор управления памятью Память сервера баз данных имеет определенный размер. Поэтому пространство, доступное экземпляру базы данных Oracle, ограничено. Необходимо уделять внимание тому, как распределяется память. Когда слишком много памяти под определенную область, а в этом нет необходимости, тогда существует вероятность того, что функционирование неоптимально, так как другим областям недостаточно места. Использование автоматического выделения памяти значительно упрощает задачу. Но даже в таком случае в целях оптимизации необходим мониторинг и может потребоваться ручное конфигурирование размеров некоторых частей памяти. В курсе Oracle Database 10g: Администрирование 1 было представлено введение в вопросы настройки памяти. В этом уроке описывается, как функционирует автоматическая настройка памяти, когда производить ручную настройку, что представляет из себя программная глобальная область (Program Global Area - PGA), а также предоставляются подробные сведения о каждой структуре памяти экземпляра Oracle. Oracle Database 10g: Administration Workshop II 8-3
Структуры памяти Oracle 8-4 Copyright © 2006, Oracle. AH 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 MachineJVMy, • streams пул - используется опцией Oracle Streams; • keep пул - необязательный дополнительный пул буферов для объектов, чьи блоки должны оставаться в памяти как можно дольше; • recycle пул - для блоков, которые не должны задерживаться в памяти; Oracle Database 10g: Administration Workshop II 8-4
Структуры памяти Oracle (продолжение) • кэши буферов для блоков размера яК; кэшируют блоки данных, размер которых отличается от стандартного размера блока базы данных; используются для поддержки перемещаемых табличных пространств (transportable tablespaces}. В динамической инфраструктуре SGA размеры кэша буферов базы данных, разделяемого пула, большого пула, Streams-пула и Java-пула изменяются без остановки экземпляра. Кроме того, размеры таких структур памяти, как удерживающий кэш буферов (keep buffer cache), рециклирующий кэш буферов (recycle buffer cache), а также кэши буферов для блоков размера нК, могут быть изменены без остановки экземпляра. Преконфигурированная база данных предваритегьно настроена и для нее установлены соответствующие параметры использования памяти. Однако по мере расширения использования может возникнуть необходимость изменить установки таких параметров. Oracle предоставляет сигнальные сообщения и рекомендации для выявления проблем, связанных с размерами структур оперативной памяти и определению подходящих значений параметров использования памяти. Программная глобальная область (Program Global Area - PGA) - область памяти, содержащая данные и управляющую информацию для каждого серверного процесса. Серверный процесс (serverprocess) - это такой процесс, который обслуживает запросы по выполнению команд, поступающие от клиента. Каждому серверному процессу принадлежит своя собственная приватная область PGA, которая создается, когда запускается серверный процесс. Доступ к этой области предоставляется исключительно этому серверному процессу и все действия по чтению и записи в эту область производятся только путем вызова соответствующего кода сервера Oracle. Размер памяти, используемой PGA, и ее содержимое зависит от того, сконфигурирован ли экземпляр в режиме разделяемого сервера. Обычно PGA содержит следующее. • Приватная область SQL (private SQL area) В этой области находятся такие данные, как информация привязки и структуры памяти, используемые при выполнении команды. Каждый сеанс, в котором вводится команда SQL, имеет приватную область SQL. • Память сеанса (session memory) В памяти сеанса находятся переменные сеанса и другая информация, связанная с сеансом. Oracle Database 10g: Administration Workshop II 8-5
Кэш буферов SGA Файлы данных Список Очередь LRU контрольной точки Кэш буферов БД Ж W ORACLC Copyright © 2006, Oracle. АН rights reserved. Кэш буферов Для конфигурирование кэша буферов используется параметр DB__CACHE__SIZE. Кэш буферов содержит копии блоков данных из файлов данных. Размер этих блоков равен значению параметра DBJBLOCKJSIZE. Поскольку кэш буферов является частью 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_2K_CACHE__S I ZE . DB_4 К_С ACHE__S IZ Е • DB___8K__CACHE__SIZE . DB__16K_CACHE__SI ZE • DB_3 2 K_CACHE_S1Z E Параметры DB__nK_CACHE_SIZE не могут использоваться для задания размера кэша с буферами, равными стандартному размеру блока. Если значение параметра DBJBLOCKJSIZE равно пК, тогда нельзя задать параметр DB__nK__CACHE__SIZE. Размер кэша с буферами стандартного размера всегда определяется параметром DB_CACHE_SIZE. Любой кэш буферов ограничен по размеру. Поэтому не все данные, хранимые на диске, могут разместиться в кэше. Когда кэш заполнен полностью, последующие непопадания в кэш (cache misses) заставляют Oracle производить запись “грязных” (измененных) данных из кэша на диск для того, чтобы освободить место для новых данных. Если буфер “негрязный”, то не требуется писать его содержимое на диск перед чтением нового блока в буфер. Последующее обращение в данным, которые уже были записаны на диск, вызове! дополнительное неудачное чтение из кэша (cache misses). Размер кэша влияет на вероятность того, что запрос данных обнаружит их в кэше (попадание в кеш - cache hit). Когда кэш большой, больше вероятность того, что в нем содержатся запрашиваемые для обработки данные. С увеличением размера кэша возрастает процент удачных обращений к кэшу (cache hits). Oracle Database 10g: Administration Workshop II 8-7
Использование нескольких пулов буферов SGA Кэши буферов БД ORACLE 8-8 Copyright © 2006, Oracle. All rights reserved. Использование нескольких пулов буферов АБД может повысить производительность кэша буферов базы данных, создавая несколько буферных пулов. Объекты назначаются буферному пулу в зависимости от того, как осуществляется доступ к этим объектам. Существует три буферных пула: • KEEP (удерживающий); используется для удержания в памяти объектов, вероятность повторного использования которых велика - это позволяет уменьшить количество операций ввода-вывода. Удержание буферов в этом пуле обеспечивается за счет задания такого размера пула, который больше чем общий размер сегментов, размещаемых в этом пуле. В результате не возникнет необходимость выгрузки буферов из оперативной памяти на диск. Удерживающий пул конфигурируется путем задания значения параметра DB__KEEP__CACHE__SIZE. • RECYCLE (повторно используемый); используется для удаления из памяти блоков, если вероятность их повторного использования мала. Размер повторно используемого пула меньше, чем общий размер размещаемых в нем сегментов. Поэтому блоки, читаемые в этот пул, часто выгружаются на диск.Данный пул конфигурируется путем задания значения параметра DB_RECYCLE__CACHE_SIZE. • DEFAULT (стандартный пул по умолчанию); этот пул существует всегда - он эквивалентен единственному кэшу буферов для экземпляра без удерживающего и рециклирующего пулов и конфигурируется с помощью параметра DB_CACHE_SIZE. Примечание: память пулов keep и recycle не выделяется из пространства пула default. Oracle Database 10g: Administration Workshop II 8-8
Использование нескольких пулов буферов CREATE INDEX cust_idx ... STORAGE (BOFFER_₽OpL KEEP ...) ; ALTER TABLE oe.customers STORAGE (BUFFERJPOOL RECYCLE); ALTER INDEX oe.cust_lname_ix STORAGE (BUFFER POOL KEEP); ORACLE 8-9 Copyright © 2006, Oracle. AH rights reserved. Использование нескольких пулов буферов (продолжение) Фраза BUFFERJPOOL определяет буферный пул, который используется объектом по умолчанию. Она является частью предложения STORAGE и допустима в командах CREATE и ALTER для таблиц, кластеров и индексов. Блоки объекта, для которого явно не задан буферный пул, будут помещаться в пул DEFAULT. Синтаксис: BUFFERJPOOL [KEEP j RECYCLE | DEFAULT] . Если в команде ALTER для объекта изменяется пул буферов по умолчанию, то все блоки, которые уже кэшированы в текущем пуле, остаются в нем до тех пор. пока они не будут выгружены обычным образом. Блоки, читаемые с диска, будут размешаться в новом буферном пуле, заданном для данного сегмента. Пулы буферов назначаются сегменту, поэтому объекты с несколькими сегментами могут иметь блоки в нескольких буферных пулах. Например, индекс-таблица может иметь разные буферные пулы, определенные для индексного сегмента и сегмента переполнения. Oracle Database 10g: Administration Workshop II 8-9
Разделяемый пул ♦ Размер определяется SHARED_POOL_SIZE * Библиотечный кэш содержит текст команд, разобранный код и план выполнения» Кэш словаря данных содержит определения таблиц, столбцов и привилегии из таблиц словаря данных. UGA содержит информацию о сеансах пользователей, когда используется архитектура разделяемого сервера. Разделяемый пул Библиотечный кэш и« » S! ж » Ж % Щ Кэш словаря данных UGA -A 8-10 Copyright © 2006, Grade. Ail 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 10g: Administration Workshop II 8-10
ж Большой пул W • Может быть сконфигурирован как отдельная область памяти в SGA • Размер устанавливается iarge_pool_size • Предназначен для хранения в памяти: - UGA - данных, используемых операциями резервирования и восстановления - данных сеансов, используемых разделяемыми серверами - сообщений при выполнении параллельного запроса Разделяемый пул Библиотечный кэш UGA Copyright © 2006, Oracle, All rights reserved. Журнальный Кэш Кэш словаря данных Большой пул Й Большой пул Наличие большого пула Размер большого пула должен быть явно указан. Память для большого пула выделяется непосредственно в SGA, но отдельно от разделяемого пула. Поэтому возрастает потребность в разделяемой памяти сервера Oracle, необходимой для запуска экземпляра. Преимущества большого пула Большой пул используется для выделения памяти, необходимой сеансам: • серверных процессов ввода-вывода; • при выполнении операций резервирования и восстановления; • разделяемых серверных процессов Oracle и интерфейсу Oracle ХА (используется, когда в транзакции происходит взаимодействие с несколькими базами данных других производителей) Выделяя память для сеансов разделяемых серверных процессов в большом пуле, сервер Oracle может использовать разделяемый пул непосредственно для кэширования разделяемых команд SQL. Это позволяет устранить дополнительную конкуренцию за доступ к разделяемому пулу, которая уменьшает доступное пространство для кэширования команд SQL и снижает производительность. Oracle Database 10g: Administration Workshop II 8-11
Java-пул • Может быть сконфигурирован как отдельная область внутри SGA • Размер задается параметром java_₽ool_size • Используется для хранения в памяти Java-кода всех сеансов и данных внутри JVM Журнальный Кэш Разделяемый пул Библиотечный кэш Java-пул Copyright © 2006, Oracle. All rights reserved Память, используемая 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
Журнальный буфер Журнальный Кэш Разделяемый пул Библиотечный кэш Кэш словаря данных WHERE employeeJLd^736; Архивные журналы Оперативные журналы Файлы данных SQL> UPDATE employees 2 3 Серверный процесс Управляющие файлы 8-13 Copyright © 2006, Oracle. АП rights reserved. Журнальный буфер Серверные процессы Oracle для каждой команды DML или DDL копируют журнальные записи из пользовательской памяти в журнальный буфер. Журнальные записи содержат информацию, необходимую для реконструкции или повторения на уровне блока данных изменений, произведенных в базе данных командами DML и DDL. Журнальные записи используются для восстановления файлов базы данных. Журнальный буфер ~ циклический. Это означает, что серверные процессы могут копировать новые записи, перезаписывая старые, если они уже были записаны на диск. Обычно процесс LGWR выполняет запись достаточно быстро, чтобы в буфере было достаточно пространства для новых записей. Процесс LGWR записывает журнальный буфер на диск в текущий оперативный журнальный файл (или в элементы текущей группы). Он записывает все журнальные записи, которые были скопированы в буфер со времени предыдущей записи в журнальный файл. Когда процесс LGWR выполняет запись в журнал? • При фиксации транзакции (команда commit) в журнал заносится запись об фиксации и все предыдущие записи, так как LGWR пишет в журнальные файлы записи в порядке их поступления в журнальный буфер • Каждые зри секунды или когда журнальный буфер заполнен на зреть. • Перед записью процессом DBWn модифицированных буферов на диск, если соответствующая информация повторного выполнения еше не была записана на диск. Oracle Database 10g: Administration Workshop II 8*13
Обзор автоматического управления разделяемой памятью • Автоматическая адаптация к изменениям в рабочей нагрузке • Максимальное использование памяти • Помогает устранить ошибки нехватки памяти Пример: Кэш буферов 1 1 Кэш буферов Большой пул Большой пул Разделяемый пул Разделяемый пул Java-пул Java-пул Stream-пул Stream-пул Оперативные пользователи ——- Пакетные задания 8-14 Copyright © 2006, Oracle. All rights reserved. ORACUE1 Обзор автоматического управления разделяемой памятью Автоматическое управление разделяемой памятью (Automatic Shared Memory Management) - это одно из ключевых расширений функциональных возможностей но обеспечению самоуправляемое™ базы данных Oracle. Эта функция автоматизирует управление большинством основных разделяемых структур памяти, используемых экземпляром базы данных, и освобождает от необходимости их конфигурирования вручную. Кроме более эффективного использования доступной памяти и связанного с этим снижения затрат на приобретение дополнительных аппаратных ресурсов, автоматическое управление разделяемой памятью значительно упрощает администрирование базы данных Oracle за счет введения более динамической, гибкой и адаптивной схемы управления памятью. Например, в системе, в которой задачи оперативной обработки транзакций (online transactional processing - OLTP) выполняются в течение дня (необходим большой кэш буферов), а ночью - пакетные задания (например, требуется расширить большой пул), администратор вынужден своевременно конфигурировать эти структуры, чтобы они соответствовали задачам, выполняемым в часы пиковой загрузки. При включении автоматического управления разделяемой памятью, когда выполняются задачи OLTP, под кэш буферов захватывается большая часть памяти, что позволяет достичь хорошей производительности операций ввода-вывода. Позднее, когда начнут запускать пакетные задания анализа данных и подготовки отчетов, память автоматически передается большому пулу для того, чтобы использовать его для параллельных запросов, не вызывая при этом ошибок переполнения. Oracle Database 10g: Administration Workshop II 8-14
8-15 Copyright © 2006, Oracle. All rights reserved. Преимущества автоматического управления разделяемой памятью Автоматическое управление разделяемой памятью упрощает конфигурирование системной глобальной области (System Global Area ~ SGA). В прошлом необходимо было вручную задавать размеры памяти, выделяемой для кэша буферов БД. разделяемого пула, Java-пула, большого пула и Stream-пула. Часто трудно задать такие размеры оптимально. Недостаточный размер вызывает плохую производительности и появление ошибок нехватки памяти (ORA-4031), напротив слишком большие размеры могут привести к ненужному расходованию памяти. Новая возможность позволяет задать общий объем памяти, используемый всеми компонентами SGA. База данных Oracle периодически перераспределяет память между компонентами, параметры которых показаны на слайде так, чтобы они соответствовали требованиям рабочей загрузки. В более ранних версиях администратор не мог точно контролировать общий объем SGA. Память для фиксированной части SGA (fixedSGА) и других внутренних метаданных выделялась с избытком, и поэтому превышался общий размер SGA, который получался на основе значений параметров, заданных пользователем. Такое дополнительное пространство обычно составляло от 10 до 20 Мб. Значение нового параметра инициализации SGA (SGA__TARGET) учитывает всю память SGA, включая компоненты с автоматически устанавливаемым размером, компоненты с размерами, задаваемыми вручную, а также внутренние структуры, пространство под которые выделяются при запуске. Oracle Database 10g: Administration Workshop SI 8-15
Как функционирует ASMM • ASMM основывается на рабочей нагрузке, статистики которой периодически собирает фоновый процесс mman. • mman использует консультантов по пространству памяти. • Пространство передается туда, где оно более всего необходимо. • Рекомендуется использовать SPFILE: - Размеры компонентов сохраняются после перезапуска - Сохраненные значения задают размеры первоначального распределения компонентов - Нет необходимости повторного поиска оптимальных значений для размеров компонентов 8-16 Copyright © 2006, Oracle. Alt rights reserved. Как функционирует ASMM Функциональная возможность автоматического управления разделяемой памяти использует фоновый процесс MM.AN (Memory Manager, .менеджер памяти). MMAN выступает в роли посредника, координирующего размеры компонентов в памяти. MMAN отслеживает размеры компонентов и наблюдает за незаконченными операциями изменения размеров компонентов SGA. MMAN следит за системой и рабочей загрузкой, чтобы выявить идеальное распределение пространства памяти. Проверки выполняются через несколько минут, поэтому пространство всегда выделяется, когда это необходимо. Без автоматического управления разделяемой памятью необходимо предвидеть наихудшую ситуацию и соответствующим образом изменять размеры компонентов в памяти. На основе информации о рабочей загрузке функция автоматического управления разделяемой памятью: • периодически собирает статистики в фоновом режиме; • использует различных консультантов по пространству памяти; • производит анализ возможных вариантов распределения памяти и выявляет лучший; • передает пространство туда, где это необходимо; * сохраняет размер компонентов после перезапуска, когда используется SPFILE (размер до момента последней остановки может быть воспроизведен при запуске). Oracle Database 10g: Administration Workshop II 8-16
Конфигурирование ASMM c использованием Database Control O?£A£X.« iirfatfime Wg ' fernery Parameters Memory Parameters S&& ^.?.tsss.ss t.fes L-sa^i _^Gsa “ sg* Ps’fs^-ar pac f>t ^0-33 0;54Л5 Д& . Pgfrgsn) The System Global Area (SGA) is a group cf shared tnemoty structures that cuntsins data and control »:forrf:=i<sn far one Oracle database system The SGA is alloc ated in memory when an Grat la database tnsiance is started eej Я Automatic Snared Memory Management Disahi Enable Ji Shared Foci $0[меГ*| , Ше) Buffer Cache ) Large Pool [m£ j3 J3.-3 Pool (48 |ЙёЗ Other iMB) 1 Total SGA (MS) Ш SGA И Shared Pcdi(49.S'<> ® buffer C3che(14.M%> ® targe Poo45%3 ® lava PoolCG* 84) ® Ctt;er(O.8%) Moknutn SGA Size The Maximum SGA Size specifies sew much memoryafiocatec when -he database starts up !f you specify the Maximum SGA Size, you can later dynamically change SGA. component sizes (provided the total SGA size does not exceed the Maximum SGA Size) Masimum SGA Size4 (MB) |1&4 ORACLE' 8-17_______________________________Copyright © 2006, Oracle. АЙ rights reserved. Конфигурирование ASMM с использованием Database Control Чтобы сконфигурировать автоматическое управление разделяемой памятью с помощью Database Control, выполните следующие шаги: 1. Щелкните на закладке 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 вводится значение параметра инициализации SGA__TARGET. Oracle Database 10g: Administration Workshop II 8-17
Ручное конфигурирование ASMM Конфигурирование вручную автонастраниваемых компонентов памяти выполняется, что задать их минимальный размер. • По каким-либо причинам автоматически рассчитываемые размеры не соответствуют вашим целям • Короткие пики или впадины, требуемого размера памяти, не обнаруживаются с помощью ASMM • Для определенного компонента существует необходимость в установке гарантированного минимального размера гассс' Copyright © 2006; Oracle. All rights reserved. Ручное конфигурирование ASMM ^Автонастройка i Разделяемый i • пул ! । Java-пул । Автонастройка Автонастройка । Кэш буферов । Фиксированная часть SGA —— ...., Журнальный буфер АвтонастройкаХ । Потоковый । [ пул I । Большой । i _ _ HXfL _ J Автонастройка Общий размер SGA ~ 8 Гб SGAJTARGET 8G STATISTICSJLEVEL ~ TYPICAL Copyright © 2006, Oracle. All rights reserved. Удерживаю- щий кэш буферов Ручное конфигурирование ASMM Автоматическое управление разделяемой памятью конфигурируется с помощью параметра инициализации SGA__TARGET. По умолчанию значение параметра SGA__TARGET установлено в 0, что означает отключение автоматического управления разделяемой памятью и необходимость конфигурирования памяти базы данных вручную. Oracle Database 10g: Administration Workshop II 8-19 Oracle Database 10g: Administration Workshop II 8-18
Ручное конфигурирование ASMM (продолжение) Если для параметра SGAJTARGET задано ненулевое значение, тогда автоматически настраивается размер для следующих пяти пулов: кэша буферов БД (пул DEFAULT), разделяемого пула, большого пула, потокового пула и Java-пула. Параметры, используемые для конфигурирования этих пулов оперативной памяти (например, SHARED__POOL__SIZE), теперь называют автонастраиваемыми. Компоненты, размер которых изменяется вручную, следующие: • журнальный буфер; • другие кэши буферов (KEEP/RECYCLE, кэши с нестандартным размером буфера); • фиксированная часть SGA (fixedSGA) и другие внутренне выделяемые структуры, Примечание: функция автоматического управления разделяемой памятью требует установки значения TYPICAL или ALL для параметра STATISTICS_LEVEL. Oracle Database 10g: Administration Workshop II 8-20
Использование автонастраиваемых параметров SGA • Когда SGA JTARGET не установлен или равен нулю: - Автонастраиваемые параметры действуют как обычные параметры - Возможно потребуется увеличить значение SHAREDJ^Oljsize по сравнению с применяемым в предыдущих версиями БД. SELECT SW (bytes)/1024/102'4 sxzejmb FROM v$sgastat WHERE pool - ’.shared pool ’ ; * Когда для SGAJTARGET установлено ненулевое значение: - По умолчанию значения автонатраиваемых параметров равны нулю - Установленное значение автонастраиваемого параметра определяет минимальный размер компонента SELECT component, current_size/1024/1024 sizejnb FROM v$sga_dynamic_components; z Fz ........ я Ж , . . z — ; . z J . .л * > . i v Ol .e I 8«21 Copyright © 2006, Oracle. All rights reserved. i й I r« Использование автонастраиваемых параметров SGA Когда параметр SGA_TARGET не установлен или его значение равно нулю, тогда автонастраиваемые параметры SGA используются так же, как и обычные параметры и задают фактический размер компонентов. При включенном автоматическом управлении разделяемой памятью можно также задавать значения автонастраиваемых параметров SGA. Ненулевое значение такого параметра используется алгоритмом автонастройки в качестве нижней границы размера компонента. Например, если SGA__TARGET равно 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 настраиваются вручную: • DECREEР CACHE__SIZE » DB__RECYCLE__CACHE__SIZE . DB^?K__CACHE_SIZE (/7 = 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 Гб, так как эта величина задана в соответствующем параметре. Использование представления V$PARAMETER SGA_TARGET = 8G SELECT name, value, isdefault FROM v$parameter WHERE name LIKE ’%size'; Copyright © 2006, Oracle. All rights reserved. Использование представления v$parameter Когда для параметра SGA_TARGET задано ненулевое значение и параметры для автоматической настройки SGA не установлены, значения этих автонвстраиваемых параметров в представлении V$ PARAMETER равно нулю, а в столбце IS DEFAULT выводится TRUE. Если значение для какого-либо параметров автоматической настройки SGA было задано, тогда оно выводится по запросу к представлению V$ PARAMETER. Oracle Database 10g: Administration Workshop II 8-23 Oracle Database 10g: Administration Workshop II 3-22
Изменение значения SGA target * Параметр инициализации sga_target: - динамический - может быть увеличен до величины параметра SGA_MAX_SIZE - может быть уменьшен, пока все компоненты не достигнут своего минимального размера • Изменение величины параметра SGA_TARGET влияет только на размер автоматически настраиваемых компонентов __________________. У- ' _______ OfospU* 8-24_______________________________Copyright © 2006, Oracle. All rights reserved. Изменение значения SGAJTARGET SGA TARGET - динамический параметр, значение которого можно изменить с помощью Database Control или но команде alter system. Параметр SGA_MAX SIZE задает максимальный размер памяти, который может быть выделен SGA. Его нельзя изменить без перезапуска базы данных. Параметр SGA__TARGET может быть увеличен до величины параметра SGA__MAX_SIZE. Его можно снижать до тех пор, пока любой из автоматически настраиваемых параметров не достигнет своего минимального размера (заданного пользователем или внутренне определенного минимума). • При увеличении параметра SGA_TAR.GET дополнительная память распределяется между автонастраиваемыми компонентами в соответствии с политикой автоматической насгройки. • При снижении параметра SGA__TARGET пространство отбирается от одного или нескольких автонастраиваемых компонентов в соответствии с политикой автоматической настройки. Предположим для параметра SGA__MAX__SIZE установлено значение К) Гб и для SGAjTARGET - 8 Гб . Если величина DB_KEEP__CACHE__SIZE равна 1 Гб и параметр SGA_TARGET увеличивается до 9 Гб, тогда дополнительный 1 Гб распределяется между компонентами, управляемыми с помощью параметра SGA__TARGET. При этом не происходит никакого влияния на параметр DB___KEEP___CACHE SIZE. Подобным образом, когда SGA TARGET снижается до 7 Гб, пространство в 1 Гб отбирается только у компонентов, управляемых с помощью параметра SGAJTARGET. Такое снижение не оказывает влияния на установки параметров, контролируемых вручную, например, на DBJKEE Р_ С ACHE__S I ZE. Oracle Database 10g: Administration Workshop II 8-24
8-25 Copyright © 2006, Oracle. AH rights reserved. Отключение автоматического управления разделяемой памятью Можно динамически отключить автоматическую настройку разделяемой памяти, установив параметр SGA__TARGET в ноль. В этом случае значения всех автоматически настраиваемых параметров будут установлены равными текущим размерам соответствующих компонентов, даже если администратор раньше задавал другие, ненулевые значения для таких параметров. В примере, приведенном на слайде величина параметра SGAJTARGET равна 8 Гб и SHAREDjPOOLjSIZE - 1 Гб. Если система внутренне настроила размер разделяемого пула и изменила его размер на 2 Гб, тогда после перевода параметра SGAJTARGET в ноль значение параметра SHARED_POOL__SIZE станет равным 2 Гб, что переопределит первоначально установленное значение. Oracle Database 10g: Administration Workshop II 8-25
Ручное изменение динамических параметров, влияющих на размер SGA • Ручное изменение автоматически настраиваемых параметров: - Приводит к немедленному изменению размера компонента, если новое значение больше текущего размера - Изменяет минимальный размер, если новое значение меньше текущего размера • Изменение размера для параметров, настраиваемых вручную, влияет только на автоматически настраиваемую часть SGA. | 8-26 Copyright © 200бТогас1е. All rights reserved.| Ручное изменение динамических параметров, влияющих на размер SGA Если установлен параметр SGA__TARGET и изменяется значение какого-то автоматически настраиваемого параметра, тогда это немедленно сказывается на размере соответствующего компонента, если только новое значение больше, чем текущий размер. Например, если параметр SGA__TARGET равен 8G и для параметра SHARED__POOL_SIZE устанавливается значение 2G, тогда таким образом гарантируется, что разделяемый пул будет не менее 2 Гб в любой момент времени. Последующее изменение параметра SHARED_POOL_SIZE на 1G не окажет никакого немедленного влияния на размер разделяемого пула. Такое изменение позволит алгоритму автоматической настройки памяти позднее уменьшить размер разделяемого пула до 1 Гб, если это будет необходимо. С другой стороны, если разделяемый пул имеет размер 1 Гб, тогда установка для параметра SHARED__POOL_SIZE значения, равного 2G, приведет к немедленному увеличению разделяемого пула до 2 Гб. Необходимое для такой операции пространство отбирается у одного из автоматически настраиваемых компонентов, и при этом никакого влияния на компоненты, настраиваемые вручную, не оказывается. Параметры компонентов, размеры которых настраиваются вручную, могут быть динамически изменены. Однако в отличие от автонастраиваемых параметров новые величины задают точный размер компонентов и действуют немедленно. Поэтому, когда размер компонента, настраиваемого только вручную, увеличивается, пространство отбирается у компонентов, настраиваемых автоматически. При уменьшении компонентов, настраиваемых вручную, освобождаемое пространства передается компонентам с автоматической настройкой размера. Oracle Database 10g: Administration Workshop II 8-26
ж Программная глобальная область (PGA) •В* PGA PGA ...ли PGA J Copyright © 2006, Oracle. All rights reserved. Oracle Database 10g: Administration Workshop II 8-27 ORACLH Выделенные соединения Рабочая область Серверный процесс Память сеанса Область курсоров и SQL Приватные области SQL Разделяемый пул или большой пул 1 Разделяемый сервер е 05^ Соединения с j разделяемыми серверами ' I ЙЙЙЙЖ 8-27 Программная глобальная область - Программная глобальная область (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,. В результате много
Программная глобальная область (продолжение) приватных областей SQL может быть связано с одной и той же разделяемой областью SQL. Расположение приватной области SQL зависит от типа соединения, установленного в сеансе. Если в сеансе используется выделенный серверный процесс, приватная область SQL располагается в PGA серверного процесса. Однако, если сеанс был установлен с помощью разделяемого серверного процесса, тогда часть, относящаяся к приватной области SQL, хранится в SGA. Курсорные области и SQL-области Разработчик приложения, использующий прекомпилятор Oracle или ОС1 для разработки программ, может явно открывать курсоры (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) и другой информации, связанной с сеансом. Для разделяемого серверного процесса память сеанса является совместно используемой, а не приватной. "JS& ••• Автоматическое управление пространством PGA • Динамическая настройка размера памяти PGA, выделенной рабочим областям, на основе параметра pga_aggregate_target • Помогает максимизировать производительность всех операций SQL, интенсивно использующих память • Включено по умолчанию I 8-29 Copyright © 2006, Oracle. АН rights reserved. Автоматическое управление пространством PGA В идеале размер рабочей области должен быть достаточно большим, чтобы вместить входные данные и вспомогательные структуры памяти, создаваемые при выполнении соответствующего оператора SQL. Такой размер называют оптимальным размером (optimal size) рабочей области. Когда размер рабочей области меньше оптимального, время ответа увеличивается, поскольку производится дополнительный проход (extra pass) над частью входных данных. Автоматическое управление памятью PGA упрощает и улучшает способ выделения пространства. По умолчанию управление памятью PGA включено. В таком режиме Oracle динамически настраивает размер части PGA, выделенной для рабочих областей, основываясь на величине, составляющей 20% от размера памяти SGA. Минимальная величина PGAJ\GGREGATE_TARGET равна 10 Мб. В режиме автоматического управления памятью PGA размер всех рабочих областей устанавливается динамически и параметры *__AREA__SIZE (например, SORT_AREA__SIZE) игнорируются во всех сеансах, выполняемых в этом режиме. В любой момент времени совокупный объем PGA, доступный для активных рабочих областей в экземпляре, автоматически получается исходя из параметра инициализации PGA__AGGREGATE__TARGET. Из параметра PGA__AGGREGATE__TARGET вычитается размер памяти PGA, выделенной другим компонентам системы (например, область PGA, выделенная сеансам). Затем остальная память PGA предоставляется отдельным активным рабочим областям, исхода из их требований к памяти. Oracle Database 10g: Administration Workshop II 8-28 Oracle Database 10g: Administration Workshop II 8-29
Средства поддержки управления PGA • Статистики, помогающие задавать параметр инициализации pga_aggregate_target (например, PGA cache hit percentage) • Представления для мониторинга рабочей области PGA: - v$sql_workarea_histogram ~~ v$pgastat - v$sql_workarea_active ““ v$sql_workarea - v$tempseg_usage • Представления, помогающие задавать размер рабочей области PGA: - v$pga_target_advice - v$pga_target_advice_histogram 8-30 Copyright © 2006, Oracle. AH rights reserved. Средства поддержки управления PGA При конфигурировании нового экземпляра сложно точно установить подходящую величину параметра PGA_AGGREGATE__TARGET. Это можно сделать, выполнив следующие три шага: 1. Провести первую оценку значения параметра PGA_AGGREGATE_TARGET, основываясь на эвристическом правиле. По умолчанию Oracle использует 20% от размера SGA. Однако такое первоначальное значение может быть слишком низким для систем поддержки принятия решений (Decision Support System - DS5), 2. Создать типовую рабочую нагрузку на экземпляр и провести мониторинг производительности, используя статистики PGA, собранные Oracle, чтобы выявить, является ли максимальная величина PGA слишком большой или недостаточной. 3. Настроить значение параметра PGA_AGGREGATE__TARGET, используя рекомендации Oracle, основанные на статистиках PGA. Для обратной совместимости возможность автоматического управления памятью PGA может быть отключена путем установления равным нулю значения параметра PGA__AGGREGATE __TARGET. Если эта возможность отключена, максимальный размер рабочей области может быть задан с помощью соответствующих параметров *_AREA__SIZE, например: • SORT_AREA__SIZE • HASH_AREA__SIZE • ВI TMAP_MERGE_AREA_S I ZE • CREATE_B ITMAP_AREA__S I ZE Oracle Database 10g: Administration Workshop I! 8«30
Использование консультанта памяти для задания размера SGA Database тгесак > Memory P^emters Memory Parameters Page Refreshed September 13, W5 i1:16:4S AM POT (Refresh) SGATBf The System Global Area (SGA) Is a group of shares memory structures cmrol mfoiwicn tor one Oracle database- The SGA Is located In w database instance is started. Buffer Cache Size Advice 12.63 Shared Feoir^ Merr^r Cache*’*5 Large Pool fT™ Java Pool [T* Other (MS) 14 -2.00 |W3 F®1 cache Size (MB) Change in physical reads tor various cache sizes Cache Size (MB) 156 OIF Vou can click on the curve in 4ns trap*'' *c set ?6\v value. Auteado Shared MemstyManagement Disabled ^Enable 8 00 g co - 4 86 - 2.86 - 8.C0 - j s I oraliiil : E 8-31 Copyright © 2006, Oracle. All 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 PGA Aggregate Target Advice The Program Globa! Area (PGA) is a memory buffer that contah for a server process. A PGA Is created by Oracle when a serv Aggregate PGA Target pb Current PGA Allocated (KB) 56842 Maximum PGA Allocated (KB) 75475 Cache Hit Percentage (%) 78.49 PGA Memory Usage Details J Aggregate PGA Target I 8-32 Copyright © 2006, Grade. Ail 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. At! rights reserved. Указания по эффективному использованию памяти SGA лучше всего, если это возможно, располагать в физической памяти для наиболее быстрого доступа. Операционная система может предоставить дополнительную виртуальную память. Однако сама природа виртуальной памяти может вызвать частую выгрузку данных на диск. Для закрепления SGA в физической памяти можно на некоторых платформах воспользоваться параметром инициализации LOCK__SGA. При выполнении команды 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 II 8-34
Указания по настройке библиотечного кэша • Создайте для разработчиков правила форматирования кода SQL, способствующие нахождению соответствующих команд в кэше. • Используйте связанные реременные. • Устраняйте ненужный дублирующий код SQL. • Рассмотрите возможность использования параметра инициализации cursor sharing. • Используйте PL/SQL, когда это возможно. • Используйте кэширование номеров последовательностей. * Закрепляйте объекты в библиотечном кэше. ~ 5-’ - ORACLE 1 8-35 Copyright © 2006, Oracle. All rights reserved. Указания по настройке библиотечного кэша Библиотечный кэш, часть разделяемого пула, - место, где база данных Oracle хранит весь исполняемый код SQL и PL/SQL, а также некоторую часть Java-кода. Такое централизованное расположение позволяет многим пользователям совместно использовать код. Выигрыш в том, что все пользователи могут воспользоваться результатами обработки кода SQL. Поэтому такие задачи, как синтаксический разбор команды и определение путей доступа к данным (т.е. создание плана выполнения) решаются один раз для команды, независимо от того, сколько раз она выполняется и сколькими пользователями. Если библиотечный кэш слишком мал и не хватает места для всех выполняемых команд, тогда нельзя воспользоваться преимуществами совместного использования некоторых команд. Если библиотечный кэш слишком большой, тогда возникает дополнительная системная нагрузка, связанная с управлением этого кэша. Библиотечный кэш может переполнится командами, которые внешне отличаются друг от друга, а на самом деле являются копиями одной и той же команды. Общая причина- небольшие обличия в форматировании каждой команды. В результате нет точного совпадения строк фактически одинаковых команд. Другая причина - использование литералов вместо связанных переменных. Когда две команды отличаются только значениями литералов, в большинстве случаев каждое выполнение таких команд и система в целом выиграют, если заменить литералы связанными переменными. Oracle Database lOtgr Administration Workshop II 8-35
Указания по настройке памяти библиотечного кэша (продолжение) Параметр инициализации CURSOR_SHARING может быть установлен таким образом, чтобы система автоматически замещала литералы связанными переменными, когда в остальном команды совпадают друг с другом. Обычно следует использовать такую установку в качестве временной меры, пока в приложение, где это необходимо, не будут будут внесены связанные переменные. Как и другие указания, рекомендация по использованию связанных переменных может иметь обратные последствия, которые необходи мо исследовать. Вместо того, чтобы вызывать один и тот же код SQL из различных мест приложения поместите такую команду или команды в хранимую процедуру, используя PL/SQL. Затем просто вызывайте эту процедуру. Это гарантирует совместное использование команд SQL, поскольку они располагаются только в одном месте. Кроме того, при таком подходе код SQL будет синтаксически разобран, а также создан план его выполнения в уже откомпилированной хранимой процедуре. Номера последовательностей можно кэшировать. Поэтому, когда к некоторым последовательностям имеется большое обращение., задайте подходящие установки для количества кэшируемых значений. Для закрепления объектов в библиотечном кэше воспользуйтесь пакетом DBMS SHARE D__POOL. С его помощью можно уменьшить количество перезагрузок и повторных компиляций объектов. Дополнительные сведения об использовании этого пакета см. в документе PL/SQL Packages and Types Reference, Итоги • Описание компонентов, размещаемых в SGA • Реализация автоматического управления разделяемой памяти • Ручное конфигурирование параметров SGA • Использование автоматического управления PGA I Copyright © 2006, Grade. All nghts reserved. Oracle Database 10g: Administration Workshop II 8-36 * » Zi I ii Oracle Database 10g: Administration Workshop II 8-37
Обзор практического занятия: использование ASMM для устранения проблем распределения памяти • Диагностирование проблем выделения памяти • Включение автоматического распределения разделяемой памяти 8-38 Copyright © 2006, Oracle, Alt rights reserved. Эй 11 Автоматическое управление производительностью Copyright © 2006, Oracle. All rights reserved. ORACLE Oracle Database 10g: Administration Workshop II 8-38
Рассматриваемые вопрось Настройка Статистики Доступ к SGA AWR Консультанты Асинх. Commit • Диагностика проблем производительности базы данных • Конфигурирование репозитария автоматической загрузки • Доступ к консультантам базы данных • Использование консультанта доступа к данным из кода SQL для повышения производительности базы данных • Эффективное использование асинхронной операции commit ORACLE 9-2 Copyright © 2006, Oracle. AH rights reserved. Oracle Database 10g: Administration Workshop II 9-2
Проведение настройки Работы по настройке затрагивают три аспекта: планирование производительности, настройку экземпляра и настройку кода SQL. • Планирование производительности - это процесс определения среды, включающей аппаратное обеспечение, программное обеспечение, операционную систему, сетевую инфраструктуру и т.д. • Настройка экземпляра - текущая регулировка параметров базы данных и параметров операционной системы для достижения лучшей производительности базы данных Oracle. • Настройка кода SQL должна сделать эффективным код SQL. исполняемый в приложении. Для этого требуется рассмотреть как приложение в целом, так и его отдельные команды. С точки зрения всей системы необходимо быть уверенным в том, что различные части приложения используют преимущества функционирования друг друга и не конкурируют без надобности за ресурсы. В этом уроке вы познакомитесь с некоторыми общими возможными действиями по настройке определенных команд SQL. Примечание: дополнительные сведения о настройке производительности см. в документе Oracle Database Performance Tuning Guide, Oracle Database 10g: Administration Workshop II 0-3
Планирование производительности • Варианты инвестирования • Системная архитектура • Масштабируемость * Принципы проектирования приложения • Тестирование, моделирование и реализация рабочей нагрузки • Развертывание новых приложений 1 Ив" I Планирование производительности (продолжение) Любое приложение необходимо тестировать с учетом типовой производственной нагрузки. Для этого надо оценить размер базы данных и рабочую нагрузку, а также сгенерировать тестовые данные и смоделировать загрузку системы. Анализ производительности должен проводиться при развертывании новых приложений (или их версий). Иногда для массового продвижения продукта принимаются проектные решения, обеспечивающие совместимость с предыдущими версиями системы. Новую базу данных следует конфигурировать специально для использующих ее приложений на основе параметров производственной среды. PI “ ||В f Bi 9-4 Copyright © 2006, Oracle. АП rights reserved. | Планирование производительности При планировании производительности учитывается много аспектов. Так аппаратно- программная инфраструктура должна соответствовать вашим требованиям. Поэтому рассматриваются различные варианты инвестирования в системную архитектуру. Например, на скорость доступа к данным влияет количество аппаратных драйверов и контроллеров. Расщепление и расположение данных на многих устройствах часто позволяет достичь целей производительности. При этом, конечно, необходим анализ важности каждого аспекта для вашей среды, приложения, а также для соответствия требования м производительности. Также важна масштабируемость приложения. Она означает возможность обслуживания все большего числа пользователей, клиентов, сеансов или транзакций без существенного влияния на общую производительность системы. Очевиднььм препятствием для масштабирования является последовательное выполнение операций пользователей. Если все пользователи должны одновременно пройти по одной и той же ветви алгоритма обработки, тогда добавление новых пользователей, без сомнения, окажет неблагоприятное влияние на производительность. Плохо написанный код SQL также влияет на масштабируемость. Он приводит к тому, что многие пользователи вынуждены ждать завершения выполнения неэффективного кода; при этом каждый пользователь конкурирует с другим за большое количество ресурсов, которое им иа самом деле не требуется. Принципы проектирования приложений могут оказать значительное влияния на производительность. Простота проекта, использование представлений и индексов, а также моделирование данных все это очень важно при планировании производительности. © Oracle Database 10g: Administration Workshop II 9-4 Oracle Database 10g: Administration Workshop II 9-5
Настройка экземпляра Наличие хорошо определенных целей Выделение памяти под структуры базы данных Рассмотрение требований ввода-вывода каждой части базы данных Настройка операционной системы для оптимизации производительности базы данных. ORACLE 9-6 Copyright © 2(Ю6, Oracle. All rights reserved. Настройка экземпляра Приступая к настройке, необходимо иметь определенные цели. Например, цель может быть поставлена следующим образом: обработка 500 транзакций о продажах в минуту. А может быть поставлена и так: сделай это так быстро, как это возможно, и в результате мы узнаем, что будет достаточно хорошо. Конечно, первая цель ясно и определенно формулирует поставленную задачу. Для достижения оптимальной производительности вы должны выделить память базе данных в соответствие с потребностями вашего приложения. Память ограничена в своем размере. Если выделить определенным частям базы данных Oracle слишком малую память, это может повлечь за собой выполнение неэффективных фоновых операций, о которых вы даже можете не узнать, если не провести анализ. Дисковый ввод-вывод часто является узким местом базы данных. Поэтому он требует большого внимания в самом начале реализации любой базы данных. Конфигурация операционной системы может также повлиять на производительность базы данных Oracle. Дополнительные сведения см. в документе Oracle Database Installation Guide для конкретной платформы. Oracle Database 10g: Administration Workshop II 9-6
Методология настройки производительности Шаги настройки: • Настраивайте сверху вниз: - проект перед настройкой кода приложения - код перед настройкой экземпляра • Настраивайте область с наибольшим потенциальным выигрышем. - Выявляйте наиболее длительные ожидания - Выявляйте службы с наибольшим временем использования. • Останавливайте настройку, когда цель достигнута. .........* *“"*»'** 9-7 Copyright © 2006, Oracte. All rights reserved. Методология настройки производительности Oracle разработал методологию настройки, основываясь на многолетнем опыте. Основные шаги следующие: • Проверьте статистики ОС и общее состояние машины перед настройкой экземпляра, чтобы быть уверенным в том, что проблема в базе данных. • Проводите настройку сверху вниз. Начните с проекта, затем настраивайте приложение и потом экземпляр. Например, попытайтесь устранить полные просмотры таблиц, вызывающие конкуренцию ввода-вывода перед настройкой размещения табличных пространств на диске. • Настраивайте область с наибольшей потенциальной отдачей. Методология настройки, представленная в этом курсе, проста. Выявите наиболее узкое место и настраивайте его. Повторите этот шаг. Все различные инструменты настройки имеют возможности обнаружения команд SQL, ресурсной конкуренции, служб, выполняемых наибольшее время. База данных Oracle предоставляет временную модель и метрики для автоматизации процесса обнаружения узких мест. • Останавливайте настройку, когда цель достигнута. Этот шаг подразумевает, что цели настройки были вами определены. Это общий подход к настройке экземпляра. При его использовании может потребовать несколько раз повторить указанные действия. Oracle Database 10g: Administration Workshop II 9-7
• • Сбор статистик Настройка производительности зависит от сбора аккуратных статистик. Различные типы статистик: - Статистики оптимизатора - Системные статистики Различные методы сбора статистик: - Автоматический, производимый работой GATHER__STATS_JOB - Ручной, выполняемый с помощью пакета DBMS_STATS - Сбор статистик, задаваемый параметрами инициализации базы данных - Импорт статистик из другой базы данных 9-8 Copyright © 2006, Oracle. All rights reserved. । Сбор статистик Статистики оптимизатора используются сервером для выбора наиболее эффективного плана выполнения каждой команды SQL. В этих статистиках отражаются детальные сведения о базе данных и хранимых в ней объектах. Системные статистики отражают необходимые оптимизатору показатели работы аппаратуры, например, производительность ввода-вывода и использование ЦП. При выборе плана выполнения оптимизатор оценивает ресурсы ввода-вывода и ЦП, требуемые каждому запросу. Системные статистики позволяют оптимизатору запросов более точно оценить стоимость операций ввода-вывода и использования ЦП и в результате выбрать лучший план выполнения. Системные статистики собираются с помощью процедуры DBMS__STATS . GATHER_SYSTEM__STATS. Когда сервер Oracle осуществляет сбор таких статистик, он анализирует системную активность в заданном периоде времени. Системные статистики не собираются автоматически. Корпорация Oracle настоятельно рекомендует использовать для этого пакет DBMS_S TATS. Рекомендуется разрешить серверу Oracle автоматически собирать статистики оптимизатора. Задание GATHER_STATS__JOB автоматически создается вместе с базой данных. Управляет этим заданием планировщик (Scheduler). Задание собирает данные обо всех объектах базы данных, статистики которых либо утеряны, либо устарели. Oracle Database 10g: Administration Workshop II 9-8
Сбор статистик (продолжение) Если принято решение не использовать автоматический сбор статистик, тогда необходимо вручную собирать статистики для всех схем, включая системные схемы. Когда данные в БД изменяются регулярно, также регулярно необходимо собирать статистики, чтобы быть уверенным в том, что они точно отражают характеристики объектов базы данных. Для ручного сбора статистик используется пакет DBMSES TATS. Он также применяется для обновления, просмотра, экспорта, импорта и удаления статистик. Кроме того, можно управлять сбором системных статистик и статистик оптимизатора с помощью параметров инициализации. Например: ♦ Параметр OPTIMIZERJDYNAMICSAMPLING контролирует уровень динамической выборки статистик, собираемой оптимизатором. Динамическая выборка может использоваться для оценки статистик таблиц и соответствующих индексов, если статистики недоступны или слишком устарели, чтобы им можно было доверять. Динамическая выборка также оценивает селективность предиката для единственной таблицы, когда собранные статистики не мЬгут быть использованы или с большой вероятностью приводят к значительным ошибкам при оценке плана выполнения. • Параметр STATISTICS-LEVEL управляет сбором всех основных статистик и влияет на работу консультантов базы данных. В нем задается уровень сбора статистик, производимого в базе данных. Значения этого параметра - BASIC, TYPICAL или ALL. * Параметр TIMED—STASTICS приводит к тому, что сервер Oracle не только подсчитывает события ожиданий (что он выполняет всегда), но и также собирает данные о времени ожиданий. Такие данные применяются для сравнения того, как меняется соотношение общего времени ожидания какого-либо события и общего времени обработки между моментами сбора статистик производительности. • Параметр TIME D__0 S _S Т AT IS ТIС 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—LEVEL, чтобы выяснить, на какие параметры оказывает воздействие значение, установленное в параметре STATISTICAL-LEVEL. Oracle Database 10g: Administration Workshop II 9-9
События ожиданий в Oracle Настройка > Статистики Доступ к SGA AWR Консультанты Асинх. Commit • События ожиданий отражают информацию о сеансах и процессах, которые были вынуждены или должны были ждать по различным причинам. • Перечень таких событий содержит представление V$EVENT_NAME. Sessions: Waiting and Working I I User I/O W Schedule? Network Configuration В Concurrency В Commit Ж Application И Administrative pCPU Used Wait Events fe>r Top Sessions нм» 'tW'1* Activity 1%) db fife sequential read Program» 77.78 ur3cle@EDRSR12P1? (mC'OO) i 22.22 oracle@EDRSR12Pl| (n-f000) 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
Статистики системы Статистики системы Для эффективной диагностики проблем производительности необходимы статистики. Oracle генерирует кумулятивные статистики многих типов, относящиеся к системе, сеансам и отдельным командам SQL, Oracle также собирает кумулятивные статистики по сегментам и сервисам. При анализе проблемы производительности обычно учитываются изменения соответствующих статистик (их дельта) в течение рассматриваемого периода времени. Статистики событий ожиданий Все возможные события ожиданий отражаются в представлении V$EVENT_NAME. Кумулятивные статистики для всех сеансов хранятся в представлении 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 tables) 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__WAIT_CLASS. Пример (результат отформатирован): SQL> SELECT * FROM V$SYSTEM__WAIT_CLASS 2 WHERE wait__class LIKE ’%I/O%’; CLASS__ID CLASS# WAIT__CLASS TOTALJWAITS TIMEJaAITED 1740759767 4108307767 Общие статистики SGA 8 User I/O 9 System I/O 1119152 39038 296959 27929 Сервер отражает все подсчитанные статистики использования оперативной памяти в представлении V$SGASTAT. Его можно использовать для просмотра кумулятивных итогов использования компонентов SGA с начала запуска экземпляра. Пример: SQL> SELECT * FROM v$sgastat; POOL NAME BYTES shared pool shared pool f ixed__sga bu f f e r___c a che log__buf fer sessions sql area 7780360 25165824 262144 1284644 22376876 В примере показана только часть выходных результатов. Oracle Database 10g: Administration Workshop II 9-12
Вывод статистик, связанных с сеансом Copyright © 2006, Oracle. All rights reserved. 9-13 Вывод статистик, связанных с сеансом Информация о текущих сеансах пользователей может быть получена с помощью представления V$SESSION. Например V$SESSION позволяет выяснить, это сеанс пользователя или же сеанс, созданный серверным процессом БД (BACKGROUND). Для того, чтобы выявить ресурсы или события, которые ждет активный сеанс, можно запросить либо представление V$SESSION, либо V$SESSION__WAIT. Сервер Oracle показывает статистики пользовательских сеансов в представлении V$SESSTAT. Сведения о событиях ожидания сеанса отражаются в представлении V$SESSION__EVENT. Кумулятивные значения статистик в основном доступны через динамические представления производительности, например, V$SESSTAT и V$ SYS STAT. Следует отметить, что кумулятивные данные в динамических представлениях сбрасываются во время остановки экземпляра базы данных. В представлении V$MYSTAT выводятся статистики текущего сеанса. Дополнительно можно запросить через представление VSSESSMETRIC значения метрик производительности всех активных сеансов. В этом представлении отражается использование ЦП, количество физических чтений, число полных разборов (hard parses) и коэффициент логических чтений (logical read ratio). Oracle Database 10g: Administration Workshop II 9-13
Вывод статистик, связанных с службой Для n-уровневых сред статистики сеансов не так полезны. Статистики, связанные с службой, можно просмотреть в таких представлениях: • v$service_event; общее число и время ожиданий событий для каждой службы • v$service_wait_clasS; общее число и время ожиданий по классам событий для каждой службы 9-14 Copyright © 2006, Oracle. All rights reserved. Вывод статистик, связанных с службой В и-уровневой среде на сервере приложений используется пул соединений с базой данных. Поэтому просмотр данных о сеансах может не предоставить сведений, необходимых для анализа производительности. Использование имен служб (сервисов) позволяет вести мониторинг производительности более аккуратно. Два представления отражают информацию на уровне службы, похожую на ту, которая доступна на уровне сеанса в соответствующих представлениях вида V$ SЕS SION_*. Представление V$SERVICE_WAIT_ CLASS показывает статистики для каждой службы и класса ожиданий. Представление V$ SERVI CE__EVENT показывает такую же информацию, как и V$SERVICE_WAIT CLASS, за исключением того, что данные детализированы по идентификатору события (event_ID). ? jgF ИГ I ж I Представления, используемые при поиске и устранении неисправностей, а также при настройке Instance/Database V$DATABASE V$ INSTANCE V$ PARAMETER V$SPPARAMETER V$ SYSTEM___PARAMETER V$PROCESS V$BGPROCESS V$PX_PROCESS_SYSSTAT V$SYSTEM_EVENT Memory V$BUFFER_POOL_STATISTICS V$LIBRARYCACHE V$SGAINFO V$ PGASTAT Disk V$DATAFILE V$FILESTAT V$LOG ?V$LOG_HISTORY (V$DBFILE V$TEMPFILE V$TEMPSEG_USAGE V$SEGMENT_STATISTICS Contention V$LOCK V$UNDOSTAT V$WAITSTAT V$LATCH /Т JfiL?* в ' fa/ j 9-15_ Copyright © 2006 Oracle. All rights reserved. Представления, используемые при поиске и устранении неисправностей, а также при настройке На слайде показаны некоторые представления, к которым можно обратиться, чтобы выявить причину проблем производительности, а также для того, чтобы проанализировать текущее состояние базы данных. Полное описание этих представлений см. в документе Oracle Database Reference Manual. Oracle Database 10g: Administration Workshop II 9-14 Oracle Database 10g: Administration Workshop II 9-15
Представления словаря • Следующие представления словаря отражают полезные статистики, получаемые в результате применения пакета dbms_stats: - DBA_TABLES, DBA_TAB_COLUMNS - DBA_CLUSTERS - DBAJENDEXES, INDEXjSTATS - INDEXJHISTOGRAM, DBA_TAB_HISTOGRAMS • Статистическая информация не изменяется до тех пор, пока не будет повторно выполнены соответствующие процедуры пакета dbms_stats. Copyright© 2006, Oracle. Ail rights reserved. Представления словаря Для получения детальных сведений о хранении данных используйте пакет DBMS__STATS, который собирает статистики и заполняет столбцы в представлениях вида DBA_xxx. DBMS__STATS заносит информацию в столбцы представлений, имеющую отношение к: • хранению табличных данных в экстентах и блоках: - DBA__T ABLES - DBA_TAB__COLUMNS * хранению данных кластера в экстентах и блоках: DBA__CLUSTERS • хранению индексных данных в экстентах и блоках, а также к степени пригодности индексов: - DBA__INDEXES - INDEX__STATS • Распределению неиндексированных и индексированных данных внутри столбцов: - DBA_TAB__HISTOGRAMS Дополнительные сведения об использовании пакета DBMS_STATS см. в документе Oracle Database Performance Timing Guide. Представления INDEX_STATS и INDEX__HISTOGRAM, содержащие индексные статистики, заполняются после выполнения команды ANALYZE INDEX ... VALIDATE STRUCTURE. Oracle Database 10g: Administration Workshop II 9-16
if цмиж | жжм Ж Ьжжж В ЖЖЖЖ В ЖЖЖЖ Ж ЖЖЖЖ ж ЖЖЖЖ ж ЖЖЖЖ Ж МШ Ж ШШ fl ЖЖЖЖ ж жжжд Ж ММЩ* i Диагностика подвисаний или крайне медленное функционирование БД Настройка Статистики > Доступ к SGA AWR Консультанты Асинх. Commit Используйте средства анализа проблемы, если база данных функционирует очень медленно или зависла: • Прямой доступ к SGA для мониторинга производительности (в режиме доступа к памяти) - V$SESSION - V$SESSION_WAIT - V$SYSTEM_EVENT - V$SYSSTAT • Анализ подвисаний (Hang Analysis) с помощью Enterprise Manager ... _ .......................... ......... 9-17 Copyright © 2006, Oracle. AH rights reserved. Диагностика подвисаний или крайне медленное функционирование БД сУЙ Если база данных работает очень плохо или на самом деле зависла, используйте для анализа проблемы доступные функциональные возможности. Система поддерживает сбор статистик реального времени, получая их непосредственно из I । 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
Использование режима доступа к памяти Использование страницы анализа Ноиге Performance iL-AlXI.I Performance monitoring in Memory Access Mo Click on an area of a graph or legend to get more di Most Rahted Links Advisor Central AH Metrics Metric Collection I «Г < 00 ________ I 1050am § --------— 11:0Саш 11.10а?! Errors SQL Histoiy A tert History Blackouts Manage Metrics Monitoring 7 Configuration * Alert Log Content BqFp&~ ' 1130am Mode Performance monitoring in Memory Access Mode is currently disabled for this database instance. User-Defined Metrics 11.30am 114&Й1 lode * I S Click the Enable Memory Access Mode button to enable this feature now 2) гэг < Enable ooT 1650am Confirmation You are about to enable the performance monitoring in memory access mode. Are you sure you want to enable it for this target? 9-18 Copyright © 2006, Oracle. All rights reserved. \ instance- crclc-acie cem > Hang Analysis > Session Summary Logged In As STS Session Summary SID’ 127 Blocker SID 148 SQL Address 28ebed<14 Fite Number 1415053318 Session Serial Number SQL Hash Event Name Program 0х32аев5е8 145 3734343326 enq: IX - row lock contention sqlplus.exe UserID 55 OS FID 28724 Copyright © 2006, Oracle. All rights reserved. Использование режима доступа к памяти На страницу с графиками, получаемыми в режиме доступа к памяти, можно перейти по ссылке 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). Использование страницы анализа подвисаний Для анализа подвисаний и медленной работы системы можно воспользоваться страницей Hang Analysis, на которую можно перейти в секции Additional Monitoring Links, расположенной в ЕМ на странице Performance. Можно также использовать страницу Blocking Sessions для вывода списка всех сеансов, блокирующих в текущий момент времени другие сеансы. Страница Hang Analysis используется для: • выяснения того, какие сеансы являются причиной узких мест; • проверки итоговой информации о блокирующих и блокируемых сеансах. На этой странице отображается графическая топология находящихся в ожидании сеансов системы. Блокируемые сеансы выводятся ниже блокирующих. Enterprise Manager представляет ситуацию, используя хронологию операций. Он обнаруживает, какие сеансы “висят” или, вероятнее всего, “подвисли”, а не находятся в состоянии ожидания с незаметной продолжительностью . Чтобы просмотреть итоговую информацию о сеансе, щелкните в выводимой топологии на идентификаторе сеанса. В результате на странице Session Summary отображаются общие сведения о выбранном сеансе. Находясь на этой странице, можно щелкнуть на ссылке View Session Details, чтобы получить дополнительную информацию о сеансе и решить, стоит ли аварийно завершать сеанс. Oracle Database 10g: Administration Workshop II 9-18 Oracle Database 10g: Administration Workshop II 9-19
Использование страницы анализа подписаний (продолжение) Выводимые сеансы выделяются зелеными, желтыми и красными цветами в зависимости от тяжести состояния сеанса, представленного в топологии. С учетом размера топологии можно также выбрать подходящий масштабный коэффициент (Zoom Factor), задаваемый в процентах. В случае большого количества блокируемых сеансов можно использовать меньший коэффициент для отображения информации об ожиданиях в системе в целом. Зачем можно увеличить масштаб для просмотра существенных частей топологии и получения дополнительных сведений (drill down). Вы можете перемещать щелчком мыши микро-окно в прямоугольной области, расположенной ниже поля Zoom Factor. В результате происходит перемещение в нужную область топологии. Например, если щелкнуть в левой части прямоугольной области, топология сдвинется вправо, что позволит полностью увидеть левую сторону топологической схемы. 4 Автоматический репозиторий рабочей загрузки Настройка Статистики Доступ к SGA > AWR Консультанты Асинх. Commit SYSAUX SGA 6:00 7:00 8:00 9:00 ADDM обнаруживает наибольшие Г- проблемы 9:30 Моментальный снимок Моментальный снимок Моментальный снимок 3 МоментаЖИЕШ снимок 4 Copyright © 2006, Oracle. АП rights reserved. Статистики в памяти Автоматический репозиторий рабочей загрузки Автоматический репозиторий рабочей загрузки (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-20 Oracle Database 10g: Administration Workshop II 9-21
Автоматический репозиторий рабочей загрузки (продолжение) Для изменения параметров, управляющих сбором моментальных снимков, используется хранимая процедура DBMSJ^RKLOADJRE POST TORY. MODI FY_SNAPSHOT__SETT INGS или Database Control. В Database Control щелкните на ссылке Automatic Workload Repository, расположенной в секции Statistics Management на странице с закладкой Administration. Затем щелкните на кнопке Edit, чтобы выполнить изменения. Хранимая процедура позволяет более гибко задавать значения параметра INTERVAL по сравнению с тем. как это можно сделать, используя Database Control. Моментальные снимки можно получать вручную с помощью Database Control или хранимой процедуры DBMS__WORKI.OAD_RE POST TORY. CREATE__SNAPSHOT. Они дополняют автоматически получаемые снимки и фиксируют поведение системы в двух определенных точках, которые не совпадают с моментами запланированных сборов статистик, выполняемых автоматически. Базовые показатели, получаемые на основе моментальных снимков из AWR W. I ж start_snap_id IN NUMBER , en<Tsnap_id IN NUMBER f baselinejriame IN ; 9-23 Copyright © 2006, Oracle. Al! rights reserved. ____________________________- • v-: I t ..w I I Базовые показатели, получаемые на основе моментальных снимков из AWR Механизм получения базовых показателей (baseline) позволяет пометить наборы моментальных снимков, полученные в существенные периоды времени. Базовые значения показателей определяются на основе пары моментальных снимков; эти снимки идентифицируются с помощью последовательных номеров (snap__id). Каждый набор базовых значений соответствует одной и только одной паре моментальных снимков. Для идентификации базовых показателей используются имена, назначаемые пользователем или генерируемые системой. Базовые показатели можно подсчитать, выполнив процедуру DBMS __WORKLOAD_RE PCS I TORY . CREATE_BASELINE, при вызове которой задается имя набора базовых показателей и пара идентификаторов моментальных снимков. Имя набора базовых показателей (baseline) должно быть уникальным для всего периода жизни базы данных. Базовые показатели используются для удержания данных моментальных снимков. Моментальные снимки, принадлежащие наборам базовых показателей, удерживаются до тех пор, пока не будут удалены соответствующие базовые показатели. Обычно базовые показатели за некоторый репрезентативный период времени в прошлом используются для сравнения с текущим функционированием системы. Кроме того, в Database Control можно настроить получение сигналов на основе пороговых значений (threshold-based alerts), полученных с использованием базовых показателей (baseline). Получить номера snap_id можно прямо из представления DBA__HIST__SNAPSHOT или с помощью Database Control. Примечание: дополнительную информацию о пакете DBMS__WORKLOAD REPOSITORY см. в документе Oracle Database PL/SQL Packages and Types Reference Guide. Oracle Database 10g: Administration Workshop II 9-22 Oracle Database 10g: Administration Workshop II 9-23
9-24 Copyright © 2006, Oracle. All 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); выдает рекомендации по решению проблем, связанных с пространством объектов, а также анализирует тенденции увеличения размера объектов. • Консультант управления информацией отмены (Undo Advisor); выдает рекомендации по заданию параметра времени удержания информации отмены, а также предоставляет сведения о размере дополнительного пространства, которое может потребоваться для операций отката назад к определенному моменту времени. Основные преимущества инфраструктуры применяемых консультантов: ♦ все консультанты используют унифицированный интерфейс; • все они могут быть вызваны и результаты их работу не противоречат друг другу. Oracle Database 10g: Administration Workshop II 9-25
Использование консультантов с помощью Database Control Copyright © 2006, Oracle, Ali rights reserved. Использование консультантов с помощью Database Control Advisor Central - это главная страница для доступа ко всем консультантам. Перейти на нее можно, щелкнув на ссылке Advisor Central в секции Related Links на странице Database. Однако это не единственное место внутри Database Control Console, откуда можно вызвать консультантов. На странице Advisor Central можно просмотреть все задачи консультантов, зарегистрированные в автоматическом репозитории рабочей загрузки (Automatic Workload Repository - A WR). Можно вывести сведения о задачах, соответствующих предопределенному типу и периоду времени. Oracle Database 10g: Administration Workshop II 9-26
Типичный сеанс настройки с использованием консультанта T.*............ 9-27 Copyright © 2006, Oracle. AH rights reserved. Типичный сеанс настройки с использованием консультанта 1. Создание задачи для консультанта. Задача - это описание в области рабочих данных (executable data area) в репозитории, управляющее анализом при настройке. 2. Настройка соответствующих параметров задачи. Параметры задаются для главной задачи консультанта и управляют его работой. 3. Выполнение анализа. Выполнение задачи - это синхронная операция; управление не возвращается до тех пор, пока операция не будет завершена или же пока пользователь не прервет ее выполнение. В любой момент времени операцию можно остановить и просмотреть результаты до точки прерывания процесса анализа Если результаты не удовлетворяют пользователя, он может продолжить выполнение задачи и получить дальнейшие рекомендации. Можно также изменить параметры задачи и перезапустить ее выполнения. 4. Просмотр результатов. Результаты анализа просматриваются с помощью встроенных представлений или же с помощью Database Control. Можно принять, отвергнуть или проигнорировать рекомендации. Если рекомендация отвергается, пользователь может перезапустить выполнение анализа, используя отвергнутые рекомендации в качестве подсказки для следующей операции анализа. Oracle Database 10g: Administration Workshop II 9-27
Ручной вызов ADDM Z_....'... . .--к.м;д1И|;№ [Q-28 Copyright © 2006, Oracle. Ali rights reserved. Ручной вызов ADDM По умолчанию каждый моментальный снимок, полученный в базе данных Oracle и хранимый в AWR, обрабатывается задачей ADDM. Кроме того, можно создать собственную задачу для ADDM, чтобы выполнить анализ в представляющем интерес интервале времени, задав начальный и конечный моментальные снимки. Чтобы создать задачу ADDM, выполните следующие шаги: 1. Перейдите на домашнюю страницу базы данных. В секции Related Links щелкните на ссылке Advisor Central. 2. Под заголовком Advisors выберите ссылку ADDM. 3. Выберите опцию Period Start Time, а затем щелкните на моментальном снимке, который вы хотите использовать в качестве начала интервала времени. После этого выберите опцию End Time и щелкните на моментальном снимке, показывающем окончание интервала времени. 4. На странице ADDM Task просмотрите результаты выбранной задачи ADDM. Обзор применения консультанта настройки кода SQL • Используйте консультант по настройке кода SQL для анализа команд SQL и получения рекомендаций по производительности. • Консультант по настройке кода SQL использует следующие источники дГ|я анализа: - Top SQL (анализ активного в настоящее время кода SQL, потребляющего наибольшие ресурсы) - SQL Tuning Sets (анализ списка команд SQL, предоставленного пользователем) - Snapshots (анализ моментального снимка) - Baselines (анализ результатов базового измерения) 9-29 Copyright © 2006, Oracle. All rights reserved. \ ..... . Обзор применения консультанта настройки кода SQL Консультант по настройке кода SQL используется для анализа команд SQL и получения рекомендаций по производительности. Обычно этот консультант запускается автоматическим диагностическим монитором базы данных (Automatic Database Diagnostic Monitor - ADDM) при обнаружения проблем производительности (finding). Дополнительно можно запустить консультант по проверке кода SQL, когда необходимо проанализировать команды SQL {top SQL), потребляющие наибольшее время ЦП, сильно нагружающие ввод-вывод и расходующие большое пространство в оперативной памяти. Консультант по настройке кода SQL подробно рассматривается в Oracle Database 10g: А дминистрирование 1. Oracle Database 10g: Administration Workshop II 9-28 Oracle Database 10g: Administration Workshop II 9-29
Обзор применения консультанта доступа к данным из кода SQL Спецификация рабочей нагрузки - Команда SQL - SQL Tuning Set - SQL, находящийся в кэше - Статистики - Имя схемы Рекомендации - Индексы - Материализованные представления - Журналы материализованных представлений Консультанта доступа к данным из кода SQL 9-30 Copyright © 2006, Grade. All 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 * SGL Access Advisor Intfisl Options SQL Access Adviser: Initial Options Seieci з set e? initial options Г4 Dfsmult Dphc-ns л.-й ’ •=Ct-Kfe4<Oiri--s?rde? a>. »«?»$?* 1W; & Inhsrtt Options from a Task or Template tSSfc z^S.-rtC: i ::«.>',Пе tail w ’.ечСЙ-г "!-‘4 4W«iiSt>.<« b?“- 1 Ч$;«&ИП r| The parformsnee of SQL queries can often be improved by creating *'• adoitieiia! structures, Me indexes end Materialized Views,, that hels in data retrieval The SQL Access Advisor evaluates SQL statements <n a ; work lead. and can suggest indexes, materialized views and materialized view logs Uvat will improve penorrnsnee cf the workload as a whole 11F' < ou are sewc-tins the Stirling pc:nt fcr th» wizor« Ali erhams cat? ce cnenaed tram wh:;>n the w>zard Tasks and Ttmtplafsrs View [TemplatesOnly 3 C SQIACCESS.EMTASK Г :SQLACCESS:. GENERAL SGLAGCESSjGLTP r ^LAL’CESS^WAREHOUSE Default Enterprise Manager test. template Genetai puioase database template OLTP database template Data Warehouse database template . Las? Fd&dirierf Feb 17.2005 IC> 10 55 AM Feb 17,2005 10 IO 51 AM Feb 17..Z^10:W 52 AM FmhtZ.SuSlG 10 53 AM :ДЖ............. Default Tempfeie Template Template i'empiate 9-31 Copyright © 2006, Oracle. All 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: Workload Source Dsteitets EDRSR14FI_wel.«wacfe.com f Cancel J ?i-;s I » Г NeT) Select the seurce oi the wwfitead that vuu wmt io use for the ari.rlysts. The best woiklcad is cne that fully teuresents all -he SQL statements that access the underlying tables Г' Cuireni and Pec.snl SOL Act>wty J .•• S &? -*-‘•'•'it'-.i •• '/< > i>- » ipisori WatMoad t»m SCI Repository •’.: <v.e 6 ?_ tW «'/, Ы •:'" - --'Л- Г «X rC J , . ........... SOI. Tuning Set ;SYS MY..STS jVOfrKLOAD T' Usat refined Wwkload, import SC'Clrem a Table ot View Г Cieate a Hypothetical Wcrkisad worn the FollMng Schemas and Tab-ea У Fitter Options ........ You can appN fillet? to reduce the scope of the statements found in the wotMosd Using filters has ъж advantages Fust, it directs the assorts mahe recommend «tons based on a specific subset of statements from ;he woikfoad. which troy lead to better quality recammendatians. Second, remwngextraneous s-ateinenrs from tne wniL-ltad may greatly reduce precessing t=me 9-32 Copyright © 2006, Oracle. All rights reserved. 9-33 Рабочая нагрузка Используйте страницу 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 с наибольшим потреблением ресурсов; • пользователи, идентификаторы модулей и действия; • таблицы. Опции получения рекомендаций SQL Access AcMsor: Recommendation options Database FDRSR14P1_ord.aracte.c8m Legged As Z -: L Types The adweot :Y:3j recommend indexes ar materialized «lews to reduce the time it takes -o llad date However you must baiatice this benefit against the cost to maintain the additional sirueiutes Select the type of structures to be recommended by the advisoi. О Indexes 9; О Materialized Views t» Both Irirtesas anil Materialized Views Eyaluatiuri Only Aste&sst Fslode । he advisoi can run in one of two rr-aass. Limited or €c-mprdhensive Limited Маса is meant to return дик Fly a-ter precessing the statements with the highes- cost, potentially ignoring statements «Sth a cost be-ow a certain threshold Comprehensive Mode will penarro an exhaustive analysis. ’* *♦ Limited Mode .-Sir.:..':..; ЗГ. nr:U’«..4-;4 ««iil-ift: ='" Comprehensive Mode < :«. •'. w S U; Г- U’sXiSlic.; Od^stt-u^ Options Werktefed Categorisation Wc-kioad Volatility 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-32 Oracle Database 10g: Administration Workshop II 9-33
Опции получения рекомендаций V Advsn-ii d Options Wc’t'-iaS Vc4t"lsty •; AitM A&iSSF io tensidei the .aiatihiy sf rets.-swsd vvjscts '«te>n lornwc tec<wn'ieiid5t:wi<; ’-г-.'- у !?* '«» W'i--s' <' -X> ::Cl y$6 J3l.: M :*;-i! ftlOKimwiifstiwis Wcrt- JM ScCfje <• РАз.й: -.VwMbid <" Couigiele Wf-ikicas 5p*«s indexes a><v iiwwrslued wsrn-» ncim fteitorwanca si :hs cost cf sp»<« wWi -he SOL Across ASwu-r :s *a л-eh < •;< |:ггв1«1»зп.; ;• wdl nwks she t?'»i £>3>5ltfe ssdcwsnc.? iWdSU!-.«r4S!*r-ia W'.eri fSrfS-Wfig >Ш reSc-itS yCc can d« Z«ii -<>:Cb 1вССГЛГЛа14ЖФ? {•! 4>-f»«Cle« L’<3 '/dU WiSh ths sum ct the ieCfcmr-.safi.itxtn spaie t-3 frt -xdhi--- : »>..<><.£ hmil.’ '•' jntz-me all iwsmrhsrxfsac-iis *' '<.>. 4-ла is limited Sit-sce Limit i Г; ,,J Turning cti<44i;-o :..l::infj of SCI -SV • Optlm:7«Jl '. i:-il I* As-л-; Axsvt w cunsufer cfoahsn casts wh«t E-iu-kw recsmmer.daHviis : -1 —•.•. ‘»•«•»-> w/.i'.l >« -:i - • • «ч r — •• '•' I?» tt-tejil :nJ« ci-xnlt Le plaesd in the « an-.a апл !зЬ:«расе of ths table thee eCieio.e. taalwioii.v-.l лет-» "it: bo plsct'd ::: ths schema and tafctfcipor.s of the tirst tiite tsfeisnced in me y^-i »»<f ms;et«:iJSd eet" "Ф bo placed «< the ueisolt tablespace cd ins schema of the taste l'«y inference these holds site*- you to tthatwe these osfa-.tll ScotiOhs Index Tafetespacs 1 rf tbite-Schema f festeuatuedX-iew'lablespa--.- \ ,3? frittK-naiised view Scnema f Materialized •/•s-ч Loy Tai-iescace | 9-34 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 позволяет переопределить установки по умолчанию для схем и табличных пространств. По умолчанию индексы размещаются в тех же схемах и табличных пространствах, что и соответствующими им таблицы. Материализованные представления размещаются в схеме и табличном пространстве пользователя, который выполнял один из запросов, на основе которого была получена рекомендация но созданию материализованного представления. После определения выше описанных параметров можно запланировать выполнение и просмотреть сведения о созданной вами задаче настройки. • % « 9-35 Copyright© 2006, Oracle. All rights reserved. Просмотр рекомендаций На странице Advisor Central можно просмотреть список всех завершившихся задач консультанта доступа к данным из кода SQL. Выберите задачу, для которой вы хотите вывести рекомендации, а затем щелкните на кнопке View Result. Используйте страницу Results тог Task Summary для вывода общих сведений о находках {findings) консультанта. На этой странице приводятся графики и статистики, предоставляющие сведения о том, как рекомендации изменят общую эффективность при данной рабочей нагрузке и потенциально улучшат время выполнения запросов. Здесь же показываются данные о числе проанализированных команд и количестве выданных рекомендаций. Для просмотра информации, отражающей другие аспекты результатов, полученных после выполнения задачи консультанта, щелкните на одной из трех закладок этой страницы: Recommendations. SQL Statements или Details. На странице Recommendations выводятся график и таблица, отражающие рекомендации, упорядоченные по проценту влияния на общую стоимость совокупной рабочей нагрузки. Верхние рекомендации имеют наибольшее влияние на улучшение обшей производительности. Щелкнув на кнопке Show SQL. можно просмотреть сгенерированный SQL-скрипт для выбранных рекомендаций. Вы можете щелкнуть на соответствующий идентификатор рекомендации в таблице, чтобы вывести перечень действий, которые необходимо произвести для того, чтобы реализовать рекомендацию. На странице Actions можно просмотреть все соответствующие команды SQL, которые на самом деле необходимо выполнить. Снимите отметки для рекомендаций, которые вы не хотите выполнять. Затем щелкните на кнопке Schedule Implementation, чтобы реализовать оставленные рекомендации. Этот шаг выполняется в виде запланированного задания. Oracle Database 10g: Administration Workshop II 9-34 Oracle Database 10g: Administration Workshop II 9-35
Асинхронная операция COMMIT Tuning Statistics SGA Attach AWR Advisors > Async. Commit По умолчанию операция commit ждет, пока данные повторного выполнения не будут сохранены в журнальных файлах. Теперь можно изменить такое функционирование на “не ждать”. Асинхронная операция commit полезна для обеспечения высокой пропускной способности транзакций. Однако транзакции могут быть потеряны: - Отказы машины - Проблемы ввода-вывода в журнальные файлы огалсие i 9-36 Copyright © 2006, Oracle. All 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 COMMITJWRITE = IMMEDIATE, WAIT ALTER SESSION SET COMMIT WRITE = IMMEDIATE, NOWAIT • Примеры команды commit: _____________________________________ORACLE' 9-37 Copyright © 2006, Oracle. All rights reserved,j Использование асинхронной операции commit Вы можете изменить режим выполнения операции commit, используя: параметр инициализации COMMIT__WRITE на уровне системы или сеанса; команду COMMIT. Опция IMMEDIATE гарантирует, что журнальные данные операции commit немедленно пишутся процессом LGWR (то есть инициируется ввод-вывод). Опция BATCH означает, что данные повторного выполнения располагаются в журнальном буфере и операция ввода- вывода не инициируется. Но при этом процессу LGWR разрешено писать данные повторного выполнения на диск по своему собственному расписанию. Опция WAIT гарантирует, что сообщение о фиксации не возвращается до тех пор, пока данные повторного выполнения для операции фиксации не будут сохранены в оперативном журнале. При использовании опции NOWAIT сообщение о фиксации возвращается без ожидания завершения записи данных повторного выполнения операции commit в оперативный журнал. Когда отсутствуют какие-либо опции, по умолчанию действуют IMMEDIATE и WAIT, что согласуется с предыдущими версиями базы данных. Нельзя одновременно указать обе опции BATCH и IMMEDIATE, а также WAIT и NOWAIT. После установки параметра инициализации СОММГГ-WRITE команда COMMIT, не содержащая опций, согласуется с этим параметром. Примечание: опции команды COMMIT переопределяют параметр инициализации COMMITJWRITE. Oracle Database 10g: Administration Workshop II 9-37
9-38 Итоги • Диагностика проблем производительности базы данных • Конфигурирование репозитария автоматической загрузки • Доступ к консультантам базы данных • Использование консультанта доступа к данным из кода SQL для повышения производительности базы данных • Эффективное использование асинхронной операции commit Copyright © 2006, Oracle, АН rights reserved. = rw n n МЙ k J Обзор практического занятия: использование ADDM для диагностики проблем производительности • Просмотр и интерпретация находок ADDM при проведении диагностики проблемы производительности • Реализация рекомендация ADDM 9-39 Copyright © 2006, Oracle. АН rights reserved. Oracle Database 10g: Administration Workshop II 9-38 Oracle Database 10g: Administration Workshop II 9-39

Управление объектами схем Copyrights 2006, Oracle. All rights reserved.
Рассматриваемые вопросы Типы таблиц Секционирование ЮТ Кластер Задачи АБД Использование таблиц определенных типов в соответствие с вашими требованиями: обычных, секционированных, ЮТ и кластеризованных. Выполнение задач АБД: - Оценка размера новых таблиц - Анализ тенденций роста - Сопровождение статистик оптимизатора - Оперативная реорганизация объектов схем 10-2 Copyright © 2006, Oracle. All rights reserved. Oracle Database 10g: Administration Workshop II 10-2
Типы таблиц I j Л‘' Кластеризованные и Ул Тип таблицы Описание Обычная (неупорядоченная) Данные хранятся неотсортировано в виде груды (heap). Секционированная Данные разделены на меньшие, лучше управляемые части. Иядекс*таблица (ЮТ) Данные (включая неключевые значения) отсортированы и хранятся в структуре индексного В-дейева. Кластеризованная Связанные данные нескольких таблиц хранятся вместе. Секционированная Индекс-таблица (ЮТ) И в i .Л,ж, -’ Ж. <>-Ш» г .«= ....J ji Copyright © 2006, Oracle. All rights reserved. й И Я Типы таблиц Обычные (организованные в виде “груды”, “heap-organized”) таблицы были рассмотрены в курсе Oracle Database 10g: Администрирование I. Секции (partitions) - части таблицы или индекса, создаваемые для облегчения управления очень большими базами данных (very large database, VLDB), которые могут содержать несколько терабайтов данных. Данные таблиц, организованных в виде 'Труды” (heap-organized table), хранятся как неупорядоченные коллекции (груды или кучи, heap), В отличие от них в пндекс-табл1ще (index-organized table, ЮТ) данные хранятся в структуре индексного В-дерева, отсортированные по главному ключу.. Кластер (cluster) - это группа из одной или нескольких таблиц, совместно использующих одни и те же блоки данных, поскольку эти таблицы содержат общие столбцы и часто используются вместе друг с другом. 4 Oracle Database 10g: Administration Workshop II 10-3
Типы таблиц > Секционирование ЮТ Кластер Задачи АБД Что такое секция и для чего она используется? Секция: • Часть “очень большой” таблицы или индекса • Хранится в своем собственном сегменте • Используется для повышения производительности и улучшения управляемости Copyright © 2006. Oracle. Ail rights reserved. Что такое секция и для чего она используется? Секция - часть (piece) '‘очень большой” таблицы или индекса, хранящаяся в своем собственном сегменте. Поэтому такой секцией можно отдельно управлять. Примером “очень большой” таблицы является таблица хранилища данных, содержащая несколько гигабайтов данных. Секции могут быть разбиты дополнительно на подсекции (subpartitions} для повышения уровня управляемости и улучшения производительности. Секционирование может способствовать улучшению производительности, так как многие запросы получают возможность игнорировать секции, не соответствующие предложению WHERE и поэтому не содержащие запрашиваемые строки. В итоге уменьшается объем полностью просматриваемых данных при получении результирующего набора (result set). Операции над секционированными таблицами и индексами могут быть выполнены в параллель. В этом случае различным параллельно выполняемым серверным процессам выделяются для обработки различные секции таблицы или индекса. И» g..gjg| Секции Характеристики секций: • Одни и те же логические атрибуты: одинаковые столбцы, ограничения и индексы • Различные физические атрибуты: хранение в разных табличных пространствах • Прозрачны для приложений • Несколько методов секционирования Секции Каждая секция хранится в своем собственном сегменте и ей можно управлять отдельно. Она может использоваться независимо от других секций. Секция - структура хранения, позволяющая произвести лучшую настройку для обеспечения доступности и производительности. В основе одной из возможностей параллельного выполнения лежит использование секций. Операции над секционированными таблицами и индексами могут быть выполнены в параллель. В этом случае различным параллельно выполняемым серверным процессам выделяются для обработки различные секции таблицы или индекса Секции и подсекции таблицы или индекса совместно разделяют одни и те же логические атрибуты. Например, все секции (или подсекции) в таблице разделяют определения одних и тех же столбцов и ограничений, и все секции (или подсекции) индекса разделяют одни и те же опции индекса. Однако физические атрибуты (например, TABLESPACE) могут отличаться. Хранение секций в отдельных табличных пространствах полезно для независимого резервирования и восстановления, контроля установления соответствия данных с дисковыми драйверами (балансировка ввода-вывода), а также для снижения вероятности повреждения данных. Секционирование прозрачно для существующих приложений и обычных команд DML, выполняемых для секционированных таблиц. Однако при программировании приложения можно также воспользоваться преимуществами от использования в командах DML имен таблиц или индексов с указанием секций (partition-extended table or index names). Дополнительные сведения о секционированных таблицах и индексах, включая методы секционирования, см. в документе Oracle Database Administrator 5 Guide. Oracle Database 10g: Administration Workshop II 10-4 Oracle Database 10g: Administration Workshop II 10-5
Создание секции iantef ORACW.’ fcateJpns® ^^ss-sg&r a:£?.3£s§. .90. 9 Tatt-M-i > Oests Tapis - Create Partitas Create Partitions: Partitioning Method Database ord Select the rndnoc to use te partition the table *' Range Hs 5h у? :' >X: * fetf-SUS ВЙГ, WSfSSVJ <-?s Rangs-Hash : <:жЫк-И >«:> ihi C-:&. C.Uft ';:;'t> <“ Range-List :&ncei) yCemintig Создание секции 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, Мастер ведет вас по шагам процесса создания , в ходе которого задаются столбцы, определяющие секции и их спецификации. Методы секционирования • Range: соответствие строк секциям устанавливается на основе логических диапазонов значений столбцов (например, месяцев года) • Hash: строки распределяются по секциям на основе хэш-значения ключа секционирования • List: строки распределяется по секциям на основе задаваемых АБД списков дискретных значений • Range-hash: строки распределяются на основе метода диапазонов на секции, а внутри каждой такой секции на подсекции с использованием хэш- метода • Range-list: строки сначала распределяются на основе метода диапазонов, а затем с использованием дискретных значений 10-7 Copyright © 2006, Oracle. Alt rights reserved. | Методы секционирования • Производительность при использовании секционирования по диапазонам (range partitioning) наилучшая, когда данные равномерно распределены по этим диапазонам. • Хэш-секционирование (hash partitioning) означает автоматическое равномерное распределение данных: АБД не может управлять тем, как конкретная строка попадает в секцию. Пример: CREATE TABLE regions (region__id NUMBER, region_name VARCHAR2 (25)) PARTITION BY HASH (region_id) PARTITIONS 4 STORE IN (tbsl, tbs2, tbs3, tbs4); В этом примере показана хэш-секционированная таблица. Распределение но секциям производится на основе столбца region _id. Создается четыре секции, им присваиваются имена, сгенерированные системой, сами секции располагаются в табличных пространствах tbs 1, tbs2, tbs3, and tbs 4. • Когда необходим полный контроль над распределением строк по секциям, задавайте в описании каждой секции списки (list) дискретных значений для столбца, на основе которого осуществляется секционирование. Например, это может быть код штата. * Смешанное секционирование на основе метода range-hash идеально подходит для хронологических (historical) и расщепляемых (striping) данных. • Секции, созданные на основе метода range-list, - это только логические структуры; их данные хранятся в сегментах подсекций. Oracle Database 10g: Administration Workshop II 10-6 Oracle Database 10g: Administration Workshop II 10-7
Сопровождение секций 10-8 Copyright © 2006, Oracle. АН rights reserved. Сопровождение секций После того, как секционированный объект был создан, его сопровождение можно осуществлять с использованием Database Control. Выберите Administration > Tables. Щелкните на требуемой таблице. В результате выводится страница Edit Table. После щелчка на закладке Partitions открывается страница, показанная на слайде. На ней можно отметить требуемую секцию и применить к ней операцию сопровождения, которая выбирается в выпадающем списке поля Actions. Примечание: для изменения характеристик хранения выбранной секции используйте кнопку Advanced Options. Индекс-таблицы Типы таблиц Секционирование > ЮТ Кластер Задачи АБД |Р:- Л ед яд Доступ к обычной таблице Доступ к ЮТ Copyright © 2006, Oracle. АН rights reserved. Индекс-таблицы В отличие от обычной неупорядоченной (heap-organized) таблицы в емдекс-таолице (index-organizedtable, ЮТ) данные хранятся в индексной структуре в виде В-дерева, отсортированные по главному ключу. Кроме значений столбцов первичного ключа в В-дереве ЮТ также хранятся неключевые столбцы. Индекс-таблицы поддерживают все возможности, предоставляемые таблицами, например, ограничения, триггеры, столбцы объектного типа и с типом LOB, секционирование, параллельные операции, реорганизацию в оперативном режиме и репликации. Для индекс-таблицы даже можно создавать индексы. Индекс-таблицы идеально подходят для приложений OLTP, которые требуют наличие быстрого доступа к данным с использованием главного ключа и высокий уровень доступности. Запросы и операции DML над таблицей заказов, используемые при оперативной обработке заказов, основаны преимущественно на доступе по главному ключу. Использование интенсивных операций DML вызывает фрагментацию и, следовательно, необходимость частых реорганизаций. Поскольку индекс-таблица может быть реорганизована в оперативном режиме без перевода в недействительное состояние вторичных индексов, временное окно недоступности данных значительно сокращается. Индекс-таблица - это альтернатива для: • таблицы с индексом по главному ключу, созданному по команде CREATE INDEX^ • таблицы, хранимой в индексном кластере, который был создан по команде CREATE CLUSTER и в котором устанавливается соответствие главного ключа таблицы и ключа кластеризации. Oracle Database 10g: Administration Workshop II 10-9 Oracle Database 10g: Administration Workshop II 10-8
Индекс-таблицы и обычные неупорядоченные таблицы • По сравнению с обычной таблицей ЮТ: - Обеспечивает более быстрый доступ к табличным данным, который основан на использовании ключа - Не содержит в двух структурах хранения значение главного ключа - Требует меньше пространства для хранения - Использует вторичные индексы и логические rowid ~~ Предоставляет более высокий уровень доступности, так как реорганизация таблицы не переводит вторичные индексы в недействительное состояние • ЮТ имеют следующие ограничения : - Должны иметь главный ключ, проверка которого не может быть отложенной (deferrable) - Не могут входить в кластер - Нельзя использовать смешанное секционирование - Нельзя создавать столбцы с типом rowid или long 10-10 Copyright © 2006, Oracle. АН rights reserved. Индекс-таблицы и обычные неупорядоченные таблицы Индекс-таблицы не имеют обычных (физических) ROWID. Вместо них используются логические ROWID {logical rowids). Такие ROWID предоставляют более быстрый доступ к данных в индекс-таблице с использованием двух методов: « использование оценки физического расположения {physical guess)', при этом время доступа эквивалентно времени доступа по физическим ROWID; • доступ без оценки (или после неправильной оценки); такие действия выполняются подобно доступу по главному ключу индекс-таблицы. Оценка (guess) основывается на знании о файле и блоке, в котором находится запись. Такая информация верна, когда индекс создается, но изменяется, если листовой блок расщепляется. Если оценка неправильна и строка больше не размещается в указанном блоке, тогда для доступа к строке используется оставшаяся часть логического ROWID, содержащая главный ключ. Oracle создает вторичные индексы {secondary indexes) для индекс-таблицы, используя логические ROWID, основанные на главном ключе таблицы. Так как строки индекс-таблицы не имеют постоянного физического адреса, оценки физического расположения могут устареть после перемещения строк в новые блоки. Для обновления оценок необходимо перестроить вторичный индекс. Следует отметить, что перестройка вторичного индекса требует чтения базовой таблицы в отличие от перестройки индекса обычной таблицы. Oracle Database 10g: Administration Workshop II 10-10
Индекс-таблицы и обычные неупорядоченные таблицы (продолжение) Более быстрый и простой способ исправления оценок (guesses) — использование команды ALTER INDEX . . . UPDATE BLOCK REFERENCES. Она выполняется в оперативном режиме и операции DML разрешены над соответствующей индекс-таблицей. После перестройки вторичного индекса или любых других изменениях ссылок на блоки в оценках, необходимо снова собрать индексные статистики. Тип данных UROWID позволяет использовать в приложениях логические ROWID таким же образом, как используются физические ROWID, например, как часть курсора или для выборки ROWID с целью последующего внесения изменений в данные. UROWID может также использоваться для хранения ROWID других баз данных, доступных через шлюзы. Наконец, тип UROWID может также использоваться для ссылки на физические ROWID. Oracle Database 10g: Administration Workshop II 10-11
Создание индекс-таблиц SQL> CREATE TABLE country 2 ( country_id CHAR(2) CONSTRAINT country_id_nn NOT NULL, 4 country_name VARCHAR2 (40) , 5 currency_name VARCHAR2(25), 6 currency_symbol VARCHAR2(3) , map BLOB, 8 flag blob, 9 CONSTRAINT country_c_id_pk 10 PRIMARY KEY (countxyJLd)) 11 ORGANIZATION INDEX 12 TABLESPACE indx 13 PCITHRESHOLD 20 14 OVERFLOW TABLESPACE users; opacus 10-12 Copyright © 2006, Oracle. All 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 А4102 20 102 А2091 11 102 G7830 20 102 N9587 26 101 А5675 19 101 W0824 10 ORD_NO ORDJJT CUSTjCD 101 05"JAN-97 R01 102 07~ JAN-97 N45 Некластеризованные таблицы orders и order item Cluster Key (ORDJSO) 101 ORD DT COST CD 05~JAN-97 R01 PROD QTY A41G2 20 A5675 19 W0824 10 102 PT CUST 07-JAN-97 N45 PROD QTY A2091 11 G7830 20 N9587 26 Кластеризованные таблицы orders и order item / /4' - Copyright © 2006, Oracle. All rights reserved. Определение кластеров Кластер (cluster) - это группа из одной или нескольких таблиц, совместно использующих одни и те же блоки данных, поскольку эти таблицы содержат общие столбцы и часто используются в запросах с соединениями. Хранение таблиц в кластерах дает возможность АБД денормализовать данные, вид которых очевиден для конечного пользователя и программиста. Применение кластеров не требует изменения кода приложения, обращающегося к таблицам. Кластеры прозрачны для конечного пользователя и программиста. Преимущества кластеров • Уменьшается дисковый ввод-вывод и время соединения кластеризованных таблиц. • Значение каждого кластерного ключа хранится только один раз для всех строк с одинаковым значением ключа, поэтому для хранения используется меньше пространства. Произвол in ел ь ность Полные просмотры для кластеризованных таблиц выполняются обычно медленнее, чем для некластеризованных. 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 il 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 читает все блоки, содержащие строки с таким же значением. Когда не рекомендуется использовать хэш-кластеры • Если таблица постоянно растет или если приложение часто изменяет значения столбцов кластерного ключа. • Если в приложении часто выполняются полные просмотры таблиц и нужно выделять достаточно большое пространство для хэш-кластера с учетом предполагаемого роста. Использование хэш-кластеров и индексных кластеры необходимо предварительно тщательно спланировать. При их применении могут возникнуть дополнительные накладные расходы, отрицательно влияющие на производительность, когда выполняются такие крупные операции, как массовая (прямая) вставка и перестройка объектов. Отсортированный хэш-кластер: обзор * Новая структура, используемая для хранения данных, отсортированных по столбцам, не входящим в первичный ключ: - Для кластерного ключа подсчитывается хэш- значение. - Строки, соответствующие конкретному значению кластерного ключа, сортируются на основе ключа сортировки. < • Используется для гарантированной выборки строк в определенном порядке без выполнения сортировки данных: - Строки возвращаются в возрастающем или убывающем порядке для конкретного значения кластерного ключа. - Необязательно указывать предложение order by для выборки строк в возрастающем порядке. I_______1211Z________________________ Copyright © 2006, Oracle. All rights reserved. I Отсортированный хэш-кластер: обзор При хранении в БД Oracle данных обычной неупорядоченной таблицы строки не сортируются в определенном порядке, контролируемом пользователем. Более того, решение, где разместить строку, зависит от эвристических правил храпения. База данных Oracle не гарантирует возврат строк в определенном порядке, если только запрос не включает предложение ORDER BY. Внутри отсортированного хэш-кластера создаются списки отсортированных строк. Каждый список соответствует конкретному хэш-значению столбцов ключа. Вместе с таким ключом определяется ключ сортировки хэш-кластера. Список задает порядок возврата строк по запросу к таблице, в котором в предикате используются столбцы хэш-ключа. Отсортированные хэш-кластеры уменьшают использование времени ЦП и понижают потребность в частной памяти, возникающей при сортировке данных во время выполнения запросов, требующих гарантированного порядка возврата строк в различных командах SQL. При запросе данных из хэш-кластеризованной таблицы по ключу кластеризации с предложением ORDER BY, содержащем только столбцы ключа сортировки или префиксные столбцы этого ключа, оптимизатор исключает накладные расходы сортировки, так как строки возвращаются отсортированными в соответствие с столбцами ключа. Однако дополнительная сортировка требуется для запросов, в которых в предложении ORDER BY указываются столбцы суффикса ключа сортировки или столбцы, не входящие в ключ сортировки. Такая дополнительная сортировка необходима, если отсутствую!' подходящие индексы таблицы. По этой причине, создавая отсортированный хэш-кластер, тщательно подбирайте столбцы ключа, определяющего порядок хранения и выборки строк. Oracle Database 10g: Administration Workshop II 10-16 Oracle Database 10g: Administration Workshop II 10-17
Отсортированный хэш кластер: пример CREATE CLUSTER calls_cluster ' ( origin_number NUMBER -----—— Ключ кластера , call_A.Htestanip NUMBER SORT I __.Ключ , call_duration NUMBER SORT) j сортировки HASHKEYS 10000 SINGLE TABLE HASH IS origin number SIZE 50; CREATE TABLE calls t origin_number NUMBER , call_timestamp NUMBER , call_dupation NUMBER' , otherjihfo VARCHAR2 (30)) CLUSTER calls_cluster( origin_number,call_timestamp,call_duration I ЧУ Сжлсие . See i I 10-13 Copyright © 2006, Oracle. All rights reserved. Отсортированный хэш кластер: пример Метод определения отсортированного хэш-кластера (sorted hash cluster) очень похож на метод создания хэш-кластера (hash cluster). Сначала создается отсортированный хэш-кластер. Основное отличие от традиционных хэш- кластеров состоит в том, что дополнительно к столбцам ключа кластера определяются столбцы ключа сортировки (sort key). В приведенном на слайде примере ORIGIN__NUMBER - ключ кластера, a CALL_TIMESTAMP и CALL_DURATION ~. ключи сортировки. Другое отличие в том, что в отсортированном хэш-кластере параметр SIZE определяет, сколько записей с метаданными хранится для конкретного значения хэш-ключа. Размер записи с метаданными (metadata entry) зависит в основном от размера столбцов кластерного ключа. На втором шаге создается сама таблица, связываемая с отсортированным хэш-кластером с помощью фразы CLUSTER. Столбцы ключа кластера должны быть указаны в правильном порядке, за которыми должны следовать столбцы ключа сортировки. В примере на слайде отражается следующий сценарий. Телекоммуникационной компании необходимо хранить записи исходящих звонков, соответствующие фиксированному набору телефонных номеров, проходящих через определенный коммутатор. С каждого телефонного номера может быть произведено неограниченное количество исходящих телефонных звонков. Данные о звонках хранятся в том порядке, как они были сделаны. Позже они обрабатываются в порядке “первым зафиксирован, первым выбран” для подготовки счета по каждому телефонному номеру. Каждый звонок определяется числовой временной меткой. Примечание: в примере используется одна таблица, однако в кластере можно хранить и несколько таблиц. Отсортированный хэш кластер: общая структура Copyright © 2006, Oracle. All rights reserved. Начальные точки цепочек блоков Отсортированный хэш кластер: общая структура В примере на предыдущем слайде в отсортированном хэш-кластере хранится только одна таблица. Хэш-функция очень простая и никаких противоречий не предвидится, так как сама функция определена на основе ключа кластеризации, а каждое значения кластерного ключа уникально. Параметр HASHKEYS фактически отражает количество различных исходящих телефонных номеров, а параметр SIZE - количество байтов, используемых для хранения метаданных каждого кластерного ключа. Как вы можете видеть, первая часть сегмента отсортированного хэш-кластера зарезервирована для хранения точек входа с метаданными (metadata entry). Каждая такая точка входа содержит только ссылку на список соответствующих строк. Каждый список строится из ряда связанных друг с другом блоков Oracle. Сортировка каждого списка выполняется в соответствие с столбцами ключа сортировки. Всякий раз, когда вы хотите выбрать строки для соответствующего значения кластерного ключа, находится хэш-значение, указывающее на расположение точки входа в метаданные, которые предоставляют доступ к отсортированному списку выбираемых строк. Oracle Database 10g: Administration Workshop II 10-18 Oracle Database 10g: Administration Workshop II 10-19
Задачи сопровождения схем Типы таблиц Секционирование ЮТ Кластер > Задачи АБД В круг задач АБД входят: • Оценка размера новых таблиц • Анализ тенденций роста • Сопровождение статистик оптимизатора • Оперативная реорганизация объектов схем 10-20 Copyright © 2006, Oracle. All rights reserved.] Oracle Database 10g: Administration Workshop II 10-20
Оценка ресурсов, необходимых сегменту \ й e[n ancerorcl exon Ыгеъ > Create Table Lagged In As SYS Create Table .jhnwSQL) 4 Cancel J OK) Genera:! r> ' ' ; - ✓ Name ——— Schema [HR Tablespace [EXAMPLE Estimate Table Stze^ Organization Standard, He a p Organized у_______________________________________ P^??b^“.lnsf^e;j3rc^racfocam > Tnhfos > Create Table > Estimate Table Size Logged in ад 3/5 Colomn Estimate Table Size 2E> Ta get an accurate estimate for the size af 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 on the tablespace. h,rW-t Projected Row Count [ 44000 (Estimate Table Size} Estimated Re^nlt of Creating the Tabb in Tablespace EXAMPLE ------------ Table Size (MB) 1.00 Allocation Required in this Tablespace (MB) LOO if TIP Does not include space for LO8.IOT Oversow, Nested Table or Partition segments. _____:,J‘ • T. ; .; 7 “ ORACLE 10-21 Copyright © 2006, Oracle. All rights reserved. Оценка ресурсов, необходимых сегменту Возможность оценки позволяет приблизительно подсчитать объем ресурсов, требуемых при создании нового сегмента. Исходя из структуры таблицы или индекса и оценки количества строк в таблице, Oracle приблизительно подсчитывает размер дискового пространства, который вероятно потребуется объекту. Например, оценка размера таблицы основывается на следующей информации: типы данных столбцов, размер столбцов и значение параметра PCTFREE. При подсчете требуемой памяти в выбранном табличном пространстве также учитывается информация об экстентах. Чтобы воспользоваться этой возможностью, выберите на странице Administration ссылку Tables в секции Storage, а затем щелкните на кнопке Create для создания новой таблицы. Создать новую таблицу можно также, используя операцию “Create 1 ike”. Па странице 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 |TZSo4 Д To|5^gJ—• g Refresh) ........". . ~ QRATt-y 10-22__________________Copyright ©2006, Oracle. All rights reserved._ Анализ тенденций роста Информация о росте сегментов содержит важные сведения для консультантов и инструментальных средств подготовки отчетов. Например, эти данные используются сегментным консультантом, а также при подготовке графика тенденций роста сегмента. Некоторые характеристики возможности получения отчетов о тенденциях роста: • Анализ данных репозитария рабочей загрузки. Устойчивые статистики использования пространства собираются в репозитарии рабочей загрузки. Они сохраняются в определяемой системой схеме. Эти статистики получаются во время создания моментальных снимков, а также когда проверяется состояние сигналов. * Отражение тенденций роста в прошлом и моделирование их роста в будущем. • Поддерживаются только табличные пространства с локальным управлением. Отчет о тенденциях роста отражает динамику изменения размера сегмента в прошлом и предсказание его роста в будущем. Графически показываются прошлые данные об использовании пространства и линейный прогноз их роста. В Database Control для получения отчета о тенденциях роста щелкните на ссылке Tables в секции Schema, расположенной на странице Administration. Затем выберите таблицу и щелкните на кнопке Edit. На странице редактирования таблицы перейдите на закладку Segments. В результате будет выведен отчет о тенденциях роста, пример которого показан на слайде. Пользователь может задать анализируемый период и получить для него график. В приводимом примере видна рассчитанная точка во времени, когда сегменту возможно потребуется больше пространства. Oracle Database 10g: Administration Workshop II 10-22
Сопровождение статистик оптимизатора e rag| S': Objects Cuslomus Options Schedule Review Create Like Create Index Create Synonym Create Trigger Generate DDL Object Privileges Manage Optimizer Statistics Reorganize Run Segment Advisor Shrink Segment Show Dependencies View Data : Flashback Table Flashback Versions Query Select; jl able Наше tablespace j РаМй W;| Вж! Last Abalyn f* HR COUNTRIES EXAMPLE r HR DEPARTMENTS EXAMPLE r HR EMPLOYEES EXAMPLE r HR JOBS EXAMPLE r HR JOB HISTORY EXAMPLE r HR LOCATIONS EXAMPLE r •HR REGIONS EXAMPLE c HR TEST REGIONS EXAMPLE NO NO NO 10-23 NO 25. Jul 7, 2005 2:00:01 AM PDT | NO 27Uul X 2005 2:00:03 AM PDT | NO 10?Uul 7, 2005 2:00:04 AM PDT NO 19Ш 7_. 2005 2:00:03 AM PDT NO 10 Jul 7, 2005 2:00:05 AM PDT 23 Jul 7, 2005 2:00:02 AM PDT 4 Jul 7, 2005 2:00:01 AM PDT He подсчитаны Copyright © 2006, Oracle. All rights reserved. 1 h г ц '; В Сопровождение статистик оптимизатора Настоятельно рекомендуется собирать статистики после больших операций DML, например, после вставки 9000 строк. Пример, приведенный на слайде, показывает (1), что для таблицы TESTJREGIONS еще не были проанализированы ее статистики. В Enterprise Manager перейдите следующим образом: Administration > Tables. Выберите “Manage Optimizer Statistics” в выпадающем списке поля Actions (2), а затем с помощью мастера создайте задание сбора статистик оптимизатора. Oracle Database 10g: Administration Workshop II 10-23
Оперативная реорганизация объектов схем • Модификация логической и физической структур объекта схемы, например, таблицы или индекса • Прозрачна для пользователей • Требуется пространство ОЩШ ImpstCi Rapon Seht'dule Reorganize Objects: Objects Database ord.orade.com Schema Objects 1 -j a я£ Loggeo In As SYS This table contains the schema objects to be reorganized. Click Add to add schema objects to the table A£a} (Set Attributes By Type) 45et Attributes Ji (Remove J 5‘*|»«’ЙНЕ‘. .. M- sbu® Н»йй*й ® HR. TEST EMP IPX Index USERS USERS 2048 | ore-aci_e 10-24 Copyright © 2006; Oracle. AH rights reserved. Оперативная реорганизация объектов схем Иногда может возникнуть необходимость изменения логической или физической структуры таблицы, вызванная проблемами управления пространства, необходимостью повышения производительности или учета требований новых приложений. Для решения этой задачи при условии, что таблица остается доступной как для запросов, так и команд DML, используется мастер Reorganize Objects, предоставляемый Enterprise Manager, или пакет DBMS __REDEFI NITI ON. Реорганизация таблиц обеспечивает существенное увеличение доступности по сравнению с традиционными методами переопределения таблиц. Таблица блокируется в монопольном режиме только в течение очень небольшого временного окна, независимого от размера таблицы и сложности процесса переопределения. Вся операция полностью прозрачна для пользователей. Процессу реорганизации необходимо пространство, приблизительно равное размеру занимаемого пространства переопределяемой таблицы. Когда добавляются новые столбцы, может потребоваться дополнительное пространство. Оперативная реорганизация может использоваться для: • перестроения фрагментированных индексов; • перестроения фрагментированных таблиц; * перемещения объектов в другое табличное пространство; * пересоздания объектов с лучшими атрибутами хранения. Oracle Database Юр: Administration Workshop II Ю-24 Л > rl Оперативная реорганизация объектов схем (продолжение) Опции операции реорганизации: Reorganize Objects: Options Database Logged In As orcl.oracle.com SYS Method Some object types can be reorganized online Options Schema , Objects 1 neduie Mo гр Cancel^ 4 Back | jiep з c-t ь Next ourne onjeci 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 spseed or availability? 0 Speed (offline) - object availability is not a concern О Availability (online) - object availability is important El 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 \ ____ _ ’ T Hide Advanced Options Object Parameters О Use parallel execution when possible Parallel Degree 0 Default О Value! \ □ 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 @ Default - Oracle determines the best sample size for good statistics 0 □ Specify number of rows inserted between Number of Rows WO О Percentage ----------л commits when reorganizing tables with LONG columns Session Parameters Sort Area Size (KB) |64 fort sma sfee has з impact on the Pc; farmance of indei • геайо Oracle Database 10g: Administration Workshop li 10-25
Реорганизация объектов: отчет о воздействии этой операции Reorganize Objects: Impact Report Database ercLefacle.com Schema Objects 1 Logged tn As SYS Script Generation Summary Most Serious Message Severity Generation Started Generation Completed INFORMATION Aug 21. 2005 5:48:50 PM 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. USERS TABLESPACE INFORMATION Plan Sufficient free space in Tableepace USERS Starting Freespace with automatic extension: 33544176KB. Ending Freespace 33546160KB Lowest Frecspace: 33544112KB. HR USER INFORMATION Plan Sufficient tablespace quota for User HR ч Printable Page j ОГ? AC 1Д-Т 10-26 Copyright © 2006, Oracle. All rights reserved. Реорганизация объектов: отчет о воздействии этой операции Перед выполнением каких-либо команд предоставляется отчет, содержащий ошибки и предупреждения, а также обзор запланированных действий, например, действия по перестройке индекса. Реорганизация объектов: обзор Reorganize Objects: Review Database ord.Gracle.cGm Schema Objects 1 4Cancel) Back I W6 of5 . Logged In As SYS Л ------"-------5 "•----~ Job Nemo REORGANtZE _ORCL.ORACLE.COM_21 Job Schedule Run Immediately f Script The script summary rs a list of the database commands that will be used to reorganize the selected objects The Save Full Scrip/) full script is a PL/SQL script that includes toctions, 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 ALTER INDEX "HR* "TEST EMP IDX“ REBUILD BEGIN DBMS_STATS.GATHERJNDEX_STATSC',HR"'l "TEST^EMPJDX"’, estimate_percent=>NULL): END: 10-27 Copyright © 2006, Oracle. All rights reserved. Реорганизация объектов: обзор Для получения полных сведений о командах, которые будут выполнены, выберите Full Script, а затем просмотрите команды запланированной операции. Чтобы получить только обзор операции, выберите Script Summary. Oracle Database 10g: Administration Workshop II 10-26 Oracle Database 10g: Administration Workshop II 10-27
Основные шаги оперативной реорганизации, выполняемой вручную 1. Убедитесь в том, что таблица является подходящим кандидатом для оперативной реорганизации. 2. Создайте промежуточную таблицу. 3. Запустите процесс переопределения. 4. Скопируйте зависимые объекты (в результате для промежуточной таблицы автоматически создаются триггеры, индексы, права доступа и ограничения). 5. Выполните запрос к dba_redefinition_errors для проверки наличия ошибок. 6. Дополнительно выполните синхронизацию для промежуточной таблицы. 7. Завершите переопределение. 8. Удалите промежуточную таблицу. ORACLG 10-28 Copyright © 2006, Grade. AH rights reserved. Основные шаги оперативной реорганизации, выполняемой вручную Используемые команды и процедуры: 1. DBMS_RE DEFINITION.CAN JREDEF_TABLE 2. CREATE TABLE . . . 3. DBMS_REDEFINITION.STARTJREDEBATABLE 4. DBMS_REDEFINITION. COPY JTABLEJDEPENDENTS и DBMS_REDEFINITION. CONS_ORIG__PARAMS 5. SELECT object_name, base_table__namez ddl__txt FROM DBAJREDEFINITION JERRORS; 6. DBMS___REDE FI NITION. SYNC__.INTERIM__TABLE 7. DBMS_REDEFINITION.FINISH_REDEBATABLE 8. DROP TABLE . . . PURGE Oracle Database 10g: Administration Workshop II 10-28
Итоги • Использование таблиц определенных типов в соответствие с вашими требованиями: обычных, секционированных, ЮТ и кластеризованных. • Выполнение задач АБД: - Оценка размера новых таблиц - Анализ тенденций роста - Сопровождение статистик оптимизатора - Оперативная реорганизация объектов схем Oracle Database 10g: Administration Workshop II 10-29
Обзор практического занятия: управление объектами схем MB J • Мониторинг использования пространства таблицами и индексами • Сопровождение статистик оптимизатора • Реорганизация таблицы и индекса * Й 1: г ! in :aS=»SF ~ м Управление хранением Copyright © 2006, Oracle. АН rights reserved. » -ТЙ Copyright ©2006, Oracle. All rights reserved. Ж в Oracle Database 10g: Administration Workshop II 10-30
Рассматриваемые вопросы • Управление пространством • Профилактический мониторинг • Сегм. консультант & сжатие сегмента • Возобновление после выделения пространства • Переносимые табл, простр. и БД • Описание автоматического управления пространством базой данных Oracle • Профилактический мониторинг и управление использованием памяти в табличных пространствах • Использование сегментного консультанта • Возврат неиспользуемого пространства таблиц и индексов путем сжатия сегментов • Управление выделением пространства для возобновления операции • Описание концепций переносимых табличных пространств и баз данных ;• _ .4 ........ ? ’ ORACL-ET ИI 11-2 Copyright © 2006, Oracle. All rights reserved. Oracle Database 10g: Administration Workshop II 11 «2
Обзор управления пространством База данных Oracle автоматически управляет пространством. Она генерирует сигналы о потенциальных проблемах и рекомендует возможные решения. Функциональные возможности управления пространством включают: • Файлы, сопровождаемые Oracle (OMF) • Управление свободным пространством с помощью битовых карт (“локальное управление”) и автоматическое расширение файлов данных • Профилактическое управление пространством (пороговые значения по умолчанию и сигналы, генерируемые сервером) • Возврат пространства (сжатие сегментов, оперативное переопределение таблицы) * Планирование объемом (отчеты о тенденциях роста) - ' ' i r”r ORACLE 11-3 Copyright © 2006, Oracle. AH rights reserved. М । -м f I I I м I ’ цг * м Обзор управления пространством С помощью файлов, сопровождаемых Oracle (Oracle Managed Files, OMF) можно задавать операции в терминах объектов базы данных, а не с использованием имен файлов. Дополнительные сведения см. в уроке “Введение”. База данных Oracle управляет свободным пространством внутри таблицы с помощью битовых карт. Такое управление реализуется в табличных пространствах, называемых “локально управляемыми” (табличные пространства, управляемые с помощью словаря данных, поддерживаются только для обратной совместимости). Использование битовых карт устраняет потребность в большом пространстве при настройке таблиц, обеспечивая повышение производительности во время пиковой нагрузки. Кроме того, БД Oracle предоставляет возможность автоматического расширения файлов данных. В результате файлы данных могут расти автоматически в соответствие с объемом данных. При создании базы данных по умолчанию включается профилактический мониторинг пространства (это не оказывает влияния на производительность). База данных Oracle выполняет мониторинг использования пространства в ходе обычных операций выделения и освобождения пространства и выдает сигналы, если размер свободного пространства опускается ниже предопределенных пороговых значений (их можно переопределить). Освободить пространство помогают консультанты и мастера. Для осуществления планирования БД Oracle предоставляет возможность оценки пространства на основе структуры таблицы и количества строк, а также подготавливает отчет о тенденциях роста с использованием хронологических данных об использовании пространства, хранимых в автоматическом репозитории рабочей загрузки (AWR). Курс Oracle Database 10g: Администрирование I знакомит с концепциями использования пространства и структурами хранения, соответствующими утилитами и задачами АБД. Этот курс или другие источники должные помочь вам познакомиться с базовыми концепциями и функциональными возможностями хранения. Oracle Database 10g: Administration Workshop II 11-3
Управление свободным пространством • Автоматическое • Предоставляется при использовании локально управляемых табличных пространств • Отслеживание использования пространства в сегментах с помощью битовых карт Преимущества: • Более гибкое использование пространства • Динамическая регулировка • Многие процессы могут производить поиск по битовым картам (ВМВ) ОГч’АСЬС Copyright © 2006, Oracle. АН rights reserved. Управление свободным пространством Свободным пространством внутри сегментов базы данных можно управлять автоматически. Наличие свободного и используемого пространства отслеживается с помощью битовых карт (bitmaps). Автоматическое управление пространством сегментов (Automatic Segment Space Management, ASSM) задается при создании локально управляемого табличного пространства. Такое управление применяется для всех сегментов, создаваемых впоследствии в этом табл и чмом пространстве. Множество битовых блоков (bitmap blocks, BMBs) механизма ASSM описывает использование пространства в блоках данных сегмента. Битовые блоки образуют иерархическую древовидную структуру. Корень иерархии, содержащий ссылки на все промежуточные ВМВ, находится в заголовке сегмента. Листовые блоки иерархии предоставляют информацию о пространстве для последовательных блоков данных, принадлежащих сегменту. Максимальное число уровней внутри иерархии - 3. Для табличных пространств, управляемых с помощью словаря данных, возможен только один вид ручного управления, при котором используются списки свободных блоков. Преимущества автоматического управления пространством сегментов: • лучшее использование пространства, особенно для объектов, строки которых сильно отличаются по размеру; * лучшая динамическая регулировка в случае различных вариантов одновременного доступа; * для нескольких экземпляров БД обеспечивается более высокая производительность и лучшее использование пространства. В результате снижаются трудозат раты администратора базы данных. Oracle Database 10g: Administration Workshop II 11-4
Типы сегментов Сегмент - совокупность экстентов, выделенных определенной логической структуре. Различные типы сегментов: • Сегмент данных • Индексный сегмент , • Временный сегмент База данных размещает сегменты динамически. t ORACLE 11-5 Copyright © 2006, Oracie. AH rights reserved.| Типы сегментов Сегменты данных; каждая таблица, отличная от кластеризованной и индекс-таблипы, имеет сегмент данных. Все табличные данные хранятся в экстентах своего сегмента данных. В секционированной таблице у каждой секции свои сегмент данных. У каждого кластера также имеется свой сегмент данных. Данные всех таблиц кластера располагаются в кластерном сегменте данных. Индексные сегменты; у каждого индекса имеется индексный сегмент, в котором находятся все его данные. В секционированном индексе каждая секция имеет свой индексный сегмент. Временные сегменты; создаются Oracle, когда командам SQL требуется рабочая область для завершения выполнения. После окончания выполнения экстенты временного сегмента возвращаются системе для последующего такого же использования. База данных Oracle выделяет пространство динамически. Дополнительные экстенты выделяются, когда заполнены все экстенты сегмента. Так как выделение экстентов производится, когда это необходимо, на диске экстенты одного и того же сегмента могут быть смежными и несмежными. Oracle Database 10g: Administration Workshop II 11-5
Размещение экстентов • Поиск в битовой карте файла данных требуемого количества смежных свободных блоков • Размер экстентов определяется предложениями: - UNIFORM - AUTOALLOCATE • Просмотр карты экстентов • Получение совета по освобождению пространства 11-6 Copyright © 2006, Oracle. АН rights reserved. Размещение экстентов Чтобы выделить свободное пространство для нового экстента в локально управляемом табличном пространстве, база данных Oracle сначала определяет файл-кандидат табличного пространства, а затем производит поиск требуемого количества смежных свободных блоков по битовой карте файла данных. Если файл данных не имеет достаточного количества смежных свободных блоков, Oracle выбирает другой файл данных этого табличного пространства. На размер экстентов влияют два предложения: • UNIFORM; все экстенты для всех объектов, создаваемых в табличном пространстве, имеют одинаковый размер (размер по умолчанию); • AUTOALLOCATE; политика установки размера экстентов в табличном пространстве определяется базой данных. Для просмотра карты экстентов в Enterprise Manager выберите Administration > Tablespaces > View Tablespace > Show Tablespace Contents. Сегментный консультант базы данных Oracle помогает найти объект с высоким уровнем фрагментированного пространства, чтобы затем его освободить. Oracle Database 10g: Administration Workshop II 11-6
Управление пространством блока Полный блок Полный блок Copyright © 2006, Oracle. All 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, MCLOB и BFILE не используют параметр хранения PCTFREE. Дополнительные сведения см. в документе Oracle Database Application Developer's Guide - Large Objects 10g Release 2 (10.2). Oracle Database 10g: Administration Workshop II 11-7
11-8 Миграция и сцепление строк Пример: • Операция update: длина строки увеличилась, и в результате не хватило свободного места в блоке. • Данные необходимо сохранить в новом блоке. • Первоначальный физический идентификатор (rowid) сохраняется. • БД Oracle потребуется прочитать два блока при выборке данных. • Сегментный консультант найдет сегменты с мигрировавшими строками. Copyright © 2006, Oracle. All rights reserved. Миграция и сцепление строк В двух случаях строка с данными может быть слишком длинной, чтобы поместиться в единственном блоке данных. В первом случае строка имеет слишком большой размер в момент первой вставки в блок данных. В такой ситуации база данных Oracle сохраняет данные строки в цепочке блоков данных (одном или нескольких), выделенных сегменту. Наиболее часто сцепленные строки появляются, когда в них содержатся столбцы с типом данных LONG или LONG RAW. Избежать сцепления слишком больших строк невозможно. Во втором случае изменяется строка, которая первоначально помещалась в блоке данных. Однако в результате изменения общая длина строки возрастает так, что свободного места в блоке недостаточно для размещения этой строки. Поэтому база данных Oracle переносит данные всей строки в новый блок данных. При этом подразумевается, что вся строка может быть размешена в новом блоке. База данных сохраняет первоначальный участок строки в старом блоке для указателя на новый блок, содержащий мигрировавшую строку. В результате для мигрировавшей строки не изменяется ее ROWID. Производительность ввода-вывода после сцепления или миграции строк снижается, так как база данных Oracle должна просмотреть более одного блока для выбора информации строки. Сегментный консультант находит сегменты, содержащие строки, мигрировавшие в результате операции UР DAT Е. t-W Профилактический мониторинг табличных пространств Edit Tablespace: EXAMPLE Acttans ; Add Oatefite i.. GoJ .RwrQ J Ызп-'й EXAMPLE EiicfHe -ablespsce He Extent Management Datafiles в -sxaiwrfeOb Тур® DSet as defeuli pernanwl labiespace Status -S Read write О Read Onh C Offline OSine Mode Nonna) * > Storage Extent Allocation Spaca Used (%) A warning or critical alert wtii be generated if the percentage of space used exceeds the corresponding threshold. €>Use Database Default Thresholds 4 Modify) Warning (%) 85 Critical (%) 97 О Specify Thresholds Warning (%) i 65; Critical (%) 97= О Disable Thresholds Управление пространством > Профилактический мониторинг Сегм. консультант & сжатие сегмента Возобновление после выделения пространства Переносимые табл, простр. и БД Allocation Type Automatic Segment Sp^ce Management Type Automatic Enable logging (> V e$- Cerate? logs creation o) teibfe-s, in-jsxe-i. Л1 ps?taioo:, snd tx hTerte GNo Rs-ite -os 5-nt: SEtm re? byaari snd r<t >eco.ч-tsl-fe Block infarmation Block Size (B) 8192 Copyright © 2006, Oracle. All rights reserved. Профилактический мониторинг табличных пространств База данных управляет использованием дисковой памяти табличных пространств следующим образом: • Когда табличному пространству мало доступной дисковой памяти, а также, когда сегменту не хватает места, об этом сообщается с помощью сигналов БД. После получения такого сигнала табличному пространству можно предоставить дополнительное место на диске, чтобы устранить ситуации, в которых возникает нехватка пространства. • Собираемая информация сохраняется в автоматическом репозитории рабочей загрузки (AWR). Она используется для анализа тенденций роста и планирования объема базы данных. Чтобы просмотреть и изменить информацию о табличном пространстве в Enterprise Manager перейдите следующим образом: Administration > Tablespaces. Выберите необходимое табличное пространство и щелкните на кнопке Edit. Oracle Database 10g: Administration Workshop II 11-8 Oracle Database 10g: Administration Workshop II 11-9
Пороговые значения и разрешение проблем, связанных с пространством 97% заполнено или ^осталось 5 Мб критический сигнал .....85% заполнено или осталось 100 Мб предупреждение Локально управляемое табличное пространство I АБД -----X Разрешает проблему пространства Для разрешения проблемы: • Добавьте файл или измените размер файла данных • Задайте опцию autoextend on • Сожмите объекты • Уменьшите значение параметра undo_retention • Исправьте длительно выполняемые запросы, занимающие место во временных табличных пространствах oraci е*' 11-10 Copyright © 2006, Oracle. АН rights reserved. Пороговые значения и разрешение проблем, связанных с пространством Пороговые значения отражают, насколько заполнено табличное пространство либо сколько в нем осталось доступного места. К табличным пространствам применяются два вида пороговых значений: для критических сигналов и предупреждений. Пакет DBMS—SERVER_ALERT содержит процедуры для задания и получения пороговых значений. При достижении ограничений для табличных пространств вырабатывается соответствующий сигнал. Пороговое значение задается как процент от размера табличного пространства или как количество оставшихся свободных байтов. Оно подсчитывается в памяти. Можно определить пороговое значение одновременно и в процентах и, указав количество свободных байтов. Нарушение одного или обоих видов пороговых значений вызывает генерацию сигнала. Идеальная установка предупреждающего порогового значения должна гарантировать, что для разрешения проблемы останется достаточно времени и она не перейдет в критическое состояние. При этом предупреждение должно появиться достаточно поздно, чтобы не вызывать беспокойства до реального возникновения проблемы свободного пространства. Сигнал отображает проблему, которая может быть разрешена путем выполнения одного или нескольких следующих действий: • Увеличение размера табличного пространства либо за счет добавления файла, либо изменения размера существующих файлов, либо включения опции авторасшпрения для существующих файлов: • Освобождение пространства на дисках, содержащих авторасширяемые файлы; * Сжатие (s h г i n к) фрагментированных объектов в табличном пространстве. Oracle Database 10g: Administration Workshop II 11-10
Мониторинг использования табличных пространств Проверка каждые 10 мин» Сигеал сЖ 97%критическое сообщение 85% предупреждение Сброшен Сброшен Табличные пространства, доступные только для чтения или в автономном состоянии, не вызывают сигналов. Временное табличное пространство; пороговые значения учитывают пространство, используемое сеансами в текущий момент времени. Табличное пространство отмены; пороговые значения учитывают пространство, занятое экстентами с активными и неустаревшими данными. Табличные пространства, которые могут автоматически расширяться; пороговые значения основываются на максимальном размере файла. Copyright © 2006, Oracle. АН rights reserved. Мониторинг использования табличных пространств База данных отслеживает использование пространства при выполнении регулярных операций по сопровождению пространства. Сведения собираются каждые 10 минут. Сигналы возбуждаются, когда достигается пороговое значение для табличного пространства, а также когда ситуация устраняется (сбрасывается). • Сигналы не генерируются для табличных пространств в режиме ‘только чтение' и в автономном режиме, так как с ними ничего не происходит. • Для временных табличных пространств пороговое значение должно задаваться как ограничение на используемое пространство в этом табличном пространстве. • В табличных пространствах типа undo экстент может быть повторно использован, когда в нем не содержатся активные или неустаревшие данные отмены. При подсчете порогового значения учитывается пространство, занятое экстентами с активными и неустаревшими данными отмены. • Для табличных пространств с авторасширяемыми файлами пороговые значения подсчитываются с учетом установленного максимального размера или же максимально возможного размера файла в ОС, когда ограничение на размер файла не установлено. Oracle Database 10g: Administration Workshop II 11*11
Управление л пространством Сжатие объектов Профилактический мониторинг > Сегм. консультант ............................ww, ................ & сжатие сегмента ...... Возобновление после выделения ................ пространства ...................».. ««««^^.Переносимые табл. —.....:::..—простр. и БД (7) ALTER TABLE employees SHRINK 8ШЖ ШИЕАСТ7 1 HWM Операции DML и запросы могут выполняться на стадии уплотнения. (Т) alter table empires Shrink space;- ” ...——.VT|--|-|.-.-- .--д----.-^ .. .... . ______ .-----.. HWM Операции DML блокируются, когда переносится HWM. Copyright © 2006, Oracle. Ail rights reserved. Сжатие объектов Диаграмма на слайде описывает две фазы операции сжатия таблицы. На первой фазе производится уплотнение. В ходе этой фазы строки перемещаются как можно дальше в левую часть сегмента. Внутренне строки перемещаются группами, чтобы избежать проблем блокирования. После переноса строк начинается вторая фаза. В течение этой фазы уточняется положение отметки максимального заполнения (high-water mark, HWM) и освобождается неиспользуемое пространство. Фраза COMPACT полезна, когда необходимо выполнять длительные запросы, которые могут пересекаться по времени с операцией сжатия и пытаются читать данные из блоков, возвращенных табличному пространству. Если задается фраза SHRINK SPACE COMPACT, ход выполнения операции сжатия отслеживается в битовых блоках соответствующего сегмента. Это означает, что, когда в следующий раз выполняется операция сжатия того же сегмента, Oracle помнит, что было уже сделано. Пользователь может повторно задать фразу SHRINK SPACE без параметра COMPACT, чтобы завершить вторую фазу в часы минимальной загрузки. Результаты операции сжатия • Улучшение производительности и использования пространства • Индексы сопровождаются • Триггеры не выполняются * Может быть уменьшено количество мигрировавших строк ? • Рекомендуется перестроить вторичные индексы для ЮТ Таблица Shrink АБД Триггеры не срабатывают 11-13 Copyright © 2006, Oracle. All rights reserved. Результаты операции сжатия Сжатие фрагментарно заполненного сегмента повышает производительность при выполнении полного просмотра и операций DML над этим сегментом. Причина в том, что после сжатия сегмента обрабатывается меньше блоков. Это особенно справедливо для: • полных просмотров таблицы (меньшее количество более плотно заполненных блоков): • доступа с использованием индекса (меньше операций ввода-вывода при просмотре по диапазону ROWID, так как дерево более компактное). Кроме того, сжатие фрагментарно заполненных сегментов, улучшает эффективность использования пространства внутри базы данных, так как становится доступно больше места для объектов, когда это необходимо. В процессе операции сжатия учитываются зависимые индексы. Они остаются в пригодном состоянии после сжатая соответствующей таблицы. Поэтому дальнейшее сопровождение ие требуется. Фактически операция сжатая внутренне выполняется с помощью операций INSERT и DELETE. Однако триггеры DML не срабатывают, так как данные не изменяются. В результате операции сжатия может быть уменьшено количество мигрировавших строк. Однако не следует всегда полагаться на то, что это обязательно произойдет, так как операция сжатия может не затронуть все блоки сегмента. Поэтому не гарантируется обработка всех мигрировавших строк. Примечание: для индекс-таблиц (ЮТ) после операции сжатая рекомендуется перестроить вторич ные индексы. Oracle Database 10g: Administration Workshop II 11-12 Oracle Database 10g: Administration Workshop II 11-13
Возврат пространства при использовании ASSM • Оперативная операция, использующая старое место расположения сегмента. • Применяется только для сегментов, размещенных в табличных пространствах, для которых установлен механизм ASSM. • Типы сегментов-кандидатов: - Таблицы, организованные в виде “кучи” и индексно-организованные таблицы - Индексы - Секции и подсекции - Материализованные представления и журналы материализованных представлений 11-14 Copyright© 2006, Oracle. All rights reserved. । Возврат пространства при использовании ASSM Сжатие - оперативно выполняемая операция, использующая существующее место, в котором расположен объект. Для его выполнения не требуется дополнительного пространства в базе данных • Операция не выполняется для сегментов, использующих списки свободных блоков. Только сегменты табличных пространств с автоматическим управлением пространством (Automatic Segment Space Management - ASSM) могут быгь сжаты. Но следующие объекты. хранимые в таких табличных пространствах, не сжимаются: - таблицы в кластерах; таблицы, имеющие столбцы с типом данных LONG; - таблицы, над которыми созданы материализованные представления, обновляемые при фиксации (on-commit materialized views); - таблицы, над которыми созданы материализованные представления, основанные на ROW ID; - таблицы отображения ЮТ (индекс-таблиц); - таблицы, над которыми созданы индексы, основанные на функциях; . Для сегментов, организованных в виде “кучи”, должен быть включен атрибут ROW MOVEMENT. Примечание: ASSM - устанавливаемый по умолчанию тин управления пространством сегментов для всех, постоянных, локально управляемых табличных пространств в базе данных Oracle 10g версии 2. Обзор сегментного консультанта ч -А ц it V.||- \ i st-yrr" 45иез * */•«»i • nrr.. f ' ап ba vfcv.ec ’=• Hg ’hr < Segment AcMwr Segment Advisor: Scope Database ord.orade.com Logged In As SYS (cancel) Step 1 cf 4 You can get advice on shrinking segments for individual schema objects or entire tablespaces Tablespaces Г" Schema Objects Qvemew The segment advisor 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 Copyright © 2006, Oracle, All rights reserved. Обзор сегментного консультанта Сегментный консультант выявляет, является ли объект хорошим кандидатом для операции сжатия. Консультант также находит сегменты, содержащие мигрированные строки, появляющиеся в результате операций UPDATE. (Начиная с Oracle Database 10.2, автоматически выполняется задание сегментного консультанта.) Консультант вырабатывает рекомендации на основе размера неиспользуемого пространства, которое можно освободить. При этом принимается во внимание оценка будущей потребности в пространстве, делаемая на основе собранной информации о тенденциях роста сегмента. После получения рекомендаций их можно применить. Консультант, помогающий найти объект-кандидат для сжатия, может быть вызван на уровне сегмента или табличного пространства. ЕМ Database Control Console предоставляет интерфейс к сегментному консультанту. Вызвать сегментный консультант в ЕМ можно со следующих страниц: • Advisor Central; • Tablespaces; * страница объектов схемы. Database Control Console предоставляет возможность выбора различных входных объектов. Кроме того, можно запланировать задание, вызывающее сегментный консультант для получения рекомендаций. Мастер Segment Advisor может быть вызван без контекста, в контексте табличного пространства или контексте объекта схемы. Сегментный консультант вырабатывает рекомендации на основе выборочного анализа, хронологической информации, а также тенденций будущего роста. Oracle Database 10g: Administration Workshop II 11-14 Oracle Database 10g: Administration Workshop I! 11-15
Сегментный консультант Segment Advisor: Review Database ord.orade.com Logged In As SYS ^Cancel J k&w* SQL J L^acK \ Step 4 of 4 ;; Submit j Task Name Task Description Time Limit for Analysis (mins) Advisory Results Retention (days) SEGMENTADVJ712320 Get shrink advice based on object growth trend Unlimited 30 Sekcfed Objects EXAMPLE PERMANENT OEATLS 11-16 Copyright © 2006, Oracle, All rights reserved. Сегментный консультант Находясь на странице Administration щелкните на ссылке Tablespaces в секции Storage. На странице Tablespaces выберите табличное пространство, для которою будет производиться анализ необходимости операции сжатия, а затем выберите Run Segment Advisor в выпадающем списке поля Actions. Щелкните на кнопке Go, чтобы открыть начальную страницу сегментного консультанта. На ней необходимо выбрать режим анализа: полный (Comprehensive) или ограниченный (Limited). Полный режим отрабатывает дольше, гак как консультант производит выборку данных из сегментов, чтобы найти объекты, для которых необходимо выполнить операцию сжатия. Пройдите по оставшимся страницам мастера и задайте необходимые значения параметров. На странице Segment Advisor: Review просмотрите детальные сведения о предстоящем анализе. Сегментный консультант выполняется как запланированное задание и за ходом его выполнения можно следить на странице Advisor Central. После завершения задания просмотрите рекомендации консультанта. Примечание. В секции Options сегментного консультанта можно задать продолжительность анализа и ограничить время, которое может потратить консультант для выработки рекомендаций. В общем случае более длительный период анализа позволяет получить более полные результаты. Они хранятся в AWR и могут быть позднее просмотрены. Используйте поле Advisory Results Retention (days) для задания длительности хранения результатов до их удаления из AWR. Oracle Database 10g: Administration Workshop II 11-16 г’| t "Ч»»' Сегментный консультант (продолжение) ор» '' Review У task script Review: Show SQL ^Return J Create task and objects script DECLARE w- t a s k n am e var ch ar 2 (10 0') ; ta skdesc varchar 2 (128) ; task__id пизйЬег; ohj ect__id mimber; timeLimit varchar2(25); numDaysToRetain varchar2(25) ; objectName varchar2(100); ob j ectType varchar2 (100); BEG IК taskname :~ *EEGMENTADV_3712320*; taskdesc :=’Get shrink advice based on object growth trend’; numDa у sToReta in : = ’ 3 0 * ; dbms__advisor. create^task (* Segment Advisor ’ f ?, taskname, taskdesc,шп'.т.) ; dbms_adviscr. ereate__ob j ect (t askname f 4 TABLESPACE ’ , ’ EXAMPLE ’, * \ \ WIL f оb j ec t__id) ; dhms__advisor. set_task__parameter (taskname, *RECO№EHD__ALL * , * TRUE ’) ; dbms__advisor. set^taskjparameter (taskname, * DATS_TO EXPIRE ’ , numDaysToRetain); EHD; Execute task script RetontoTop DECLARE taskname varchar2(100); BEG TH taskname := SEGMENTADV_3712320*; dbms__advisor, reset__task (taskname) ; dbms_advisor. execute_task (taskname) ; EHD; Oracle Database 10g: Administration Workshop II 11-17
Реализация рекомендаций I’^ahsn.'-ins:?: г _ . e с{?:й - ^о-/:50: Сеггл. > Segment Advisor Task' SEGMENTADV_2730408 Segment Advisor Task:'SEGMENTADV_2730408 The following table contains the minimum reclaimable space summary for the evaluated segments in that tablespace. Based on 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 £730408 Started Aug 25,2005 10:04:55 AM Status COMPLETED Ended * “ — Running Time (seconds) 14 Time Limit (mins) Aug 25,2005 10:05:08 AM UNLIMITED iTecommsndatfon Detail Seledh <? TESALE? Ж Extent 57.50, 34.46 LOCAL AUTO Recommendation Details for Tablespace: TBSALERT The following table contains the reclaimable space Information for the evaluated segments in the selected tablespace. Based on growth trends., the advisor tai es into consideration estimated future space requirements. Oracle recommends shrinking or reorganizing these segments to release wasted space. Select the segment to implement the recommendation. Task Marne SEGMENTADV 2730408 Started Aug 25,2005 10:04:55 AM Status COMPLETED " Ended Aug 25,2005 10:05:09 AM Running Time (secondsi 14 rime Limit (mins) UNLIMITED ^chema Segment Partition Minimum Reolarmable Space (MB) Partition Select AH j Select Hone S - v ct fkhtm? y.ffidkM Sri rink ... ShrinkJ EMPLOYEES! EMPLOYEES^ EMPLOYEES^ Copyright © 2006, Oracle. Ail rights reserved. 11-18 alter table "SYS"."EMPLOYEES!‘ alter table "SYS”,"EMPLOYEES2' alter table "SYS“."EMPLOYEES3' shrink space shrink space shrink space Реализация рекомендаций После того, как сегментный консультант завершит свою работу, можно просмотреть подробно рекомендации и сразу же из выполнить. Примечание Перед сжатием обычной таблицы (таблицы, организованной в виде "кучи ", heap-organized table) необходимо включить возможность перемещения строк (enable row movement) для этой таблицы. Это можно сделать, перейдя по закладке Options, находящейся на странице Edit Table. Database Control и сжатие сегмента Salm Sd.ema: . [laliie Nam? О HR COUNTRIES EXAMPLE C HR DEPARTMENTS. EXAMPLE I HR X EXAMPLE Segment HRJfMpLOyEES Name Object Type Table । Partition^ S&fepa IrtfamiЮТ | 0 0 iOT NO 0 0 ND 0 0 NO The shrink operation compacts fragmented space snd< optionally, frees the space. The shrink operation will take some time and will be scheduled as a job. f Shrink Options Compact Segments and Release Space ’•‘s ' • -v.l: fast f ti’segti-erie «nd t’x-r- tele»cI t-s fht- • Wkmpv.*z<- ।p-:*??«-. rt-fe: :П-: ICjJ ftsS C-WlS B: Г-а? S<? .ife-.ifvS 5Г1-3 • ? «, -?X- s’ 4s t , J SC- СЯс -f ' i r Compact Segments Cis’Kj > Я xars +.’i -sjjt-s t:r-t-St-veft- j ^йС?-. rtfftl <Ct::p's<^:y •!":?• «Se 'i'-. cftitUv i sea sy is-t-sv; < s «t?= Segment Selection Shrink HR. EMPLOYEES Only О Shrink HR. EMPLOYEES and All Dependent Segments Dependent Segmeme HR EMPLOYEES TABLE EXAMPLE ___HR™_______EM£~EMA1LJJ£__^ __EXAMPLE_______ • * иj:, :::::::: :::S::. оиини 11-19 Copyright © 2006, Oracle. AH 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 Oracle Database 10g: Administration Workshop II 11-18
Сжатие сегментов с использованием SQL ALTER ... SHRINK SPACE [CASCADE] TABLE [OVERFLOW] INDEX fATERIALTEED VIEW MATERIALIZED VIEW 1ОЁ MODIFY LOB MODIFY SUBPARTITlW MODIFY PARTITION Г л. . .•Acue Л | 11-20 Copyright © 2006, Oracle. All rights reserved. | Сжатие сегментов с использованием 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
Управление пространством Профилактический мониторинг Сегм. консультант & сжатие сегмента > Возобновление после выделения пространства Переносимые табл, простр, и БД Управление выделением пространства для возобновления операции Возобновляемая команда: • Позволяет приостановить большие операции, а не получить сообщение об ошибке • Предоставляет возможность устранить проблему во время приостановки операции, а не перезапускать ее еще раз • Приостанавливается в следующих ситуациях: - нехватка пространства - достигнуто максимальное количество экстентов - превышена квота на пространство , Л ’ 7 ; ' 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). • Чтобы выполнить возобновляемую команду, необходимо сначала включить в сеансе возможность возобновления команд. ALBER SESSION ENABLE RESUMABLE; INSERT INTO sales_new SELECT * FROM sh.sales; ALTER SESSION DISABLE RESUMABLE; J’ * .I» " — ш .. • ; JSffiY \ чАТ •• 5>::. or?Aci_e J ! 11-22 Copyright © 2006, Oracle. All rights reserved. J Использование возможности выделения пространства для возобновления приостановленной команды Выделить пространство, чтобы продолжить выполнение команды, можно только, когда в сеансе был включен режим возобновления операций. Существует два способа включения/отключения возможности выделения пространства для продолжения приостановленной команды: • Команда ALTER SESSION ENABLE RESUMABLE. • Задание отличного от нуля значения для параметра инициализации RESUMABLEJTIMEOUT С ПОМОЩЬЮ команды ALTER SESSION или ALTER SYSTEM. При включении режима возобновления в сеансе БД можно указать максимальный период времени для приостановки команды, по истечении которого приостановленная команда завершается с ошибкой, если не было вмешательства, устранившего нехватку пространства. В параметре RESUMABLEJTIMEOUT устанавливается время тайм-аута в секундах. Время тайм-аута можно также задать с помощью команды: ALTER SESSION ENABLE RESUMABLE TIMEOUT 3600; Значение параметра TIMEOUT действует до следующего его изменения в другой команде alter SESSION enable resumable, следующего изменения с помощью иного средства и до конца сеанса. При использовании фразы ENABLE RESUMABLE timeout для включения возобновляемого режима значение тайм-аута по умолчанию -7200 секунд (2 часа). Oracle Database 10g: Administration Workshop II 11-22
NAME SQL TEXT Oracle Database 10g: Administration Workshop II 11 «23 K ж : нм /Ш Использование возможности выделения пространства для возобновления приостановленной команды (продолжение) Дополнительно можно задать имя для возобновляемых команд. Например: ALTER SESSION ENABLE RESUMABLE TIMEOUT 3600 NAME ’multitab insert’; Имя команды используется для идентификации возобновляемой команды в представлении DBAJRESUMABLE ИЛИ USER^RE SUM ABLE. Пример: SELECT name, sql__text FROM userjresumable; multitab insert INSERT INTO olds%Les SELECT * FROM sh.sales; Чтобы автоматически сконфигурировать установки для возобновляемых команд, необходимо создать на уровне базы данных триггер типа LOGON, изменяющий параметры пользовательского сеанса. В триггере выполняются команды включения возможности возобновления операции, задается период тайм-аута и соответствующее имя для возобновляемых команд, которые будут использоваться в сеансе. Так как возобновляемые команды удерживаю!' некоторые системные ресурсы, пользователям должна быть предоставлена системная привилегия RESUMABLE перед тем, как они смогут включить возможность выделения пространства для продолжения операции и начнут выполнять возобновляемые команды.
Copyright © 2006, Oracle. Ail rights reserved. 11-24 Возобновление приостановленных команд Пример: 1. Команда INSERT наталкивается на ошибку, связанную с тем, что таблица полностью заполнена. 2. Команда INSERT приостанавливается, и никакая ошибка не передается клиенту. 3. Дополнительно может сработать триггер AFTER SUSPEND. 4. Дополнительно с помощью процедуры DBMS PRESUMABLE. ABORT может быть возбуждено исключение SERVERERROR для аварийного завершения команды. 5. Если команда не завершилась аварийно и успешно добавлено свободное пространство таблице, команда INSERT возобновляет выполнение. Обнаружение приостановленной команды Когда включена возможность возобновления и команда приостанавливается, ошибка (возникающее исключение) не передается клиенту. Для корректирующих действий база данных Oracle предоставляет альтернативные методы уведомления пользователей об ошибке и предоставления легальной информации о произошедшем. Oracle Database 10g: Administration Workshop II 11-24
Возобновление приостановленных команд (продолжение) Возможные действия в приостановленном состоянии Когда команда попадает в ошибочную ситуацию, которую необходимо исправить, система внутренне возбуждает системное событие AFTER SUSPEND. Пользователи могут зарегистрировать триггеры для обработки этого события как на уровне базы данных, так и на уровне схемы. Если пользователь зарегистрировал такой триггер, он отрабатывает после приостановки команды SQL. Все команды, выполняемые внутри триггера с типом AFTER SUSPEND, всегда невозобновляемые и автономные. Транзакции, начинающиеся внутри триггера, используют сегмент отката SYSTEM. Режим выполнения обуславливается необходимостью устранения возможности взаимоблокировок и снижения вероятности попадания, триггера в такую же ошибочную ситуацию, в которой находится команда. Внутри кода триггера можно использовать представление USER__RESUMABLE или DBAJRESUMABLE, а также функцию DBMS_RESjJMABLE . SPACE__ERROR__INFO для получения информации о возобновляемых командах. Когда приостанавливается возобновляемая команда, * сеанс, в котором была введена команда переходит в состояние ожидания; в представление V$SESSION__WAIT вставляется строка, содержащая в столбце EVENT следующее: “statement suspended, wait error to be cleared”; 8 появляется сигнальное сообщение о необходимости дополнительных ресурсов для завершения приостановленной операции над объектом. Завершение приостановленной команды После разрешения ошибочной ситуации (например, в результате вмешательства администратора или освобождения пространства сортировки другими запросами) приостановленная команда автоматически возобновляет выполнение и сигнал “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) Solarls[tm] OE (64-bit) HP Tru64 UNIX IBM zSerles 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) I 11-26 Copyright © 2006, Oracle. Alt rights reserved. Переносимые табличные пространства Данная функциональная возможность может использоваться для переноса данных табличных пространств без учета границ платформ. Это упрощает передачу (distribution) данных из хранилища в витрины данных, часто располагаемые на менее мощных платформах . Данная функциональная возможность также позволяет мигрировать базу данных с одной платформы на другую. Для этого перестраивается словарь и переносятся пользовательские табличные пространства. Перед переносом файлов данных с одной платформы на другую необходимо убедиться в том, что исходная и целевая системы функционируют на поддерживаемых платформах (см. слайд). Примечание: функциональная возможность межплатформенных табличных пространств (cross-platform transportable tablespace feature) требует, чтобы обе платформы использовали одну и ту же кодировку символов. Oracle Database 10g: Administration Workshop II 11-26
Концепция минимального уровня совместимости • Параметр инициализации compatible для исходной и целевой баз данных должен иметь значение 10.0.0 или выше. • В заголовках файлов данных присутствует информация о платформе. • Перед переносом убедитесь в том, что все файлы, находящиеся в режиме ‘только чтение’ или в автономном состоянии, содержат информацию о платформе. COMPATIBLES .2,0 : COMPATIBLES 0.0.0 11-27 Copyright © 2006, Oracle. All rights reserved. — Ятение/ *запись C R А;. LC * Концепция минимального уровня совместимости Параметр инициализации COMPATIBLE для исходной и целевой баз данных должен иметь значение 10.0.0 или выше перед использованием функциональной возможности межплатформенных табличных пространств. Когда файлы данных в первый раз открываются базой данных Oracle 10g с параметром инициализации COMPATIBLE, в котором установлено значение 10.0.0 (или выше), информация о платформе запоминается в файлах (platform-aware files). На диаграмме это отображается отметкой (“галочкой”). Каждый файл идентифицируется платформой, которой он принадлежит. Такие файлы (platform-aware files) имеют на диске одинаковые форматы блоков заголовков файлов, которые используются для идентификации и верификации. Файлы, находящиеся в режиме ’'только чтение’ или в автономном состоянии, начинают использовать преимущество переносимости после перевода в режиме чтение/запись или оперативное состояние. Вследствие этого табличные пространства, находившиеся в состоянии ‘только чтение' в базах данных Oracle до версии 10g, должны быть хотя бы раз переведены в режим чтения/записи перед тем. как они начнут использовать возможность межплатформенной переносимости. Oracle Database 10g: Administration Workshop II 11-27
Процедура переноса табличных пространств 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. 11-29 Copyright © 2006, Oracle. All rights reserved. Выяснение порядкового формата платформы Для проверки того, одинаков ли порядковый формат на обоих платформах, выполните запрос к представлению V$TRANSPORTABLE__PLATFORM. Представление V$DATABASE содержит два столбца, используемые для нахождения наименования и идентификатора вашей платформы. Выполните запрос, приведенный на слайде, на обоих платформах и сравните результаты. В системе Sun SPARC команда SELECT вернет следующее : ENDIAN_FORMAT Big На платформе Microsoft Windows на основе процессоров Intel команда SELECT возвращает следующее: ENDIAN_FORMAT Little Oracle Database 10g: Administration Workshop II 11-29 Oracle Database 10g: Administration Workshop II 11-28
Переносимые базы данных Возобновление после выделения пространства Переносимые табл, простр. > Переносимые БД Обобщение функциональной возможности переносимых табличных пространств. Данные могут быть просто переданы из среды хранилища в витрины данных, обычно располагаемые на более меньших платформах. База данных может быть очень быстро мигрирована с одной платформы на другую. Платформа Y Один и тот же ‘порядок формата Платформа X Существующая БД Передача файлов БД h* L Новая БД 11-30 Copyright © 2006, Oracle. Ali rights reserved. Переносимые базы данных При использовании функциональной возможности переносимых табличных пространств перемещение данных становится значительно быстрее. Однако метаданные все еще необходимо выгружать, так как табличное пространство system не может быть перенесено. Назначение функциональной возможности переносимых баз данных - предоставить быстрый и простой способ переноса базы данных между различными платформами, имеющими одинаковый порядковый формат (endian format). Однако исходная и целевая платформы могут иметь различное выравнивание на диске (disk alignment), Например, HP-UX и Solaris - обе платформы с порядковым форматом big, ио дисковое выравнивание для HP-UX - 8, для Solaris - 4. Для переноса баз данных с одной платформы на другую необходимо убедиться в том, что исходная и целевая системы функционируют на платформах, присутствующих в представлении V$ TRANS PORT АВ LE_ PLATFORM, а также имеют одинаковый порядковый формат. Например, можно перенести базу данных, функционирующую в Linux IA (32-bit), на одну из платформ Windows. Если одна или обе базы данных используют автоматическое управление хранением (ASM), для передачи файлов необходимо использовать пакет DBMS__FILE__TRANSFER. В отличие от переносимого табличного пространства, данные которого вставляются в целевую БД, эта возможность создает новую базу данных на целевой платформе. Вновь создаваемая БД содержит такие же данные, как и исходная БД. Новая БД имеет такие же установки, как и старая, за исключением имени БД, имени экземпляра и мест расположения файлов. Примечание: перенос БД более быстро перемещает данные, чем Data Pump. Oracle Database 10g: Administration Workshop II 11-30 Copyright © 2006, Oracle. All 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 ОАО Исходная система Целевая система ... £ Copyright © 2006, Oracle. АН 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 или выше. 11-33 Переносимые базы данных: указания • Создайте на целевой платформе парольный файл. • Перенесите bfile, используемые в исходной базе данных. • В сгенерированном pf il₽ и скрипте переноса указываются OMF. • Для изменения dbid примените утилиту DBNEWID. Copyright © 2006, Oracle. АЙ rights reserved. ORACue Переносимые базы данных: указания Журнальные файлы, управляющие файлы и временные файлы (tempfiles) не переносимы. Они пересоздаются для новой базы данных на целевой платформе. Поэтому новая база данных должна открываться с опцией RESETLOGS. Если парольный файл используется, он не переносится. Его необходимо создать на целевой платформе. Причина в том, что в зависимости от операционной системы должны применяться различные виды имен парольного файла. Следует отметить, что в выходных результатах команды CONVERT DATABASE перечисляются имена всех пользователей и их системные привилегии, а также содержатся рекомендации по пересозданию парольного файла и добавлению в него записей о пользователях на целевой платформе. В выходных результатах команды CONVERT DATABASE приводятся все объекты directory, а также объекты, использующие тип данных BFILE и внешние таблицы в исходной БД. Возможно вам придется изменить в этих объектах имена каталогов и файлов. Кроме того, вы должны передать на целевую платформу существующие 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 Database 10g: Administration Workshop II 11*32
Итоги • Описание автоматического управления пространством базой данных Oracle • Профилактический мониторинг и управление использованием памяти в табличных пространствах • Использование сегментного консультанта • Возврат неиспользуемого пространства таблиц и индексов путем сжатия сегментов • Управление выделением пространства для возобновления операции • Описание концепций переносимых табличных пространств и баз данных 11-34 Copyright © 2006, Oracle. Ail rights reserved. - w Обзор практического занятия : управление хранением • Использование пороговых значений сигналов для профилактического управления табличных пространств • Использование сегментного консультанта для сжатия пространства • Просмотр сигналов и хронологических сведений о сигналах в SQL*Plus и Enterprise Manager 11-35 Copyright © 2006, Oracle, All rights reserved. Oracle Database 10$: Administration Workshop II 11-34 i. Of Oracle Database 10$: Administration Workshop II 11-35
Автоматическое управление пространством хранения данных w»6 Copyright © 2006, Oracie. АН rights reserved.
Рассматриваемые вопросы • Описание возможностей автоматического управления пространством хранения данных (Automatic Storage Management - ASM) • Задание параметров инициализации для экземпляров ASM и баз данных • Выполнение команд SQL, в которых указаны имена ASM-файлов • Запуск и остановка экземпляров ASM • Администрирование дисковых групп ASM • Использование RMAN для миграции базы данных в структуры хранения ASM ’ ORACLE 12-2 Copyright © 2006, Oracle. AH rights reserved. Oracle Database 10g: Administration Workshop II 12-2
Обзор автоматического управления пространством хранения данных • Переносимая и высокопроизводительная кластерная файловая система • Файлы, сопровождаемые базой данных Oracle ? * Данные, распределенные по дискам для сбалансированной загрузки • Встроенное зеркалирование данных на разных дисках • Решение многих проблем Приложение ..Файловая " ASM Менеджер < томов Операционная система управления структурами хранения ж* lu .z г ; ,4 Copyright © 2006, Oracle. All rights reserved. Обзор автоматического управления пространством хранения данных Автоматическое управление пространством хранения данных {Automatic Storage Management - ASM) осуществляет вертикальную интеграцию файловой системы и включает менеджер томом, который специально создан для файлов базы данных Oracle. Возможность ASM может быть сконфигурирована для одной машины с архитектурой SMP или на нескольких узлах кластера при использовании Oracle Real Application Clusters (RAC). ASM распределяет загрузку ввода-вы вода между всеми доступными ресурсами в целям достижения оптимальной производительности, устраняя необходимость ручной настройки ввода-вывода. ASM помогает администраторам сопровождать динамическую среду баз данных, позволяя увеличивать размер базы данных без ее обязательной остановки для регулировки распределения пространства хранения. ASM позволяет сопровождать избыточные копии данных для достижения отказоустойчивости, а также может работать с механизмами отказоустойчивости, предоставляемых производителями оборудования. Управление данными осуществляется путем выбора характеристик надежности и производительности для соответствующих классов информации, а не на путем ручной настройки работы с файлами. Возможности ASM экономят время администраторов БД, автоматизируя ручные операции со структурами хранения. В результате появляется возможность управления базами данных большего размера с более высокой эффективностью. Oracle Database 10g: 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). 12-5 Общая архитектура ASM Copyright © 2006, Grade, All rights reserved. Экземпляр (rbal ASM SID^asm Экземпляр БД SID-sales I Общая архитектура ASM Для использования ASM необходимо запустить специальный экземпляр, называемый экземпляром ASM {ASM instance) до запуска экземпляра базы данных. Экземпляр ASM не монтирует базы данных. Вместо этого он управляет метаданными, которые необходимы для обеспечения доступности файлов ASM со стороны обычных экземпляров БД. Как экземпляры ASM, так и экземпляры БД имеют доступ к некоторым общим наборам дисков, называемым дисковыми группами {disk groups). Экземпляры БД имеют прямой доступ к содержимому ASM-файлов, взаимодействуя с экземпл яром ASM только, чтобы получить информацию о расположении этих файлов. Экземпляр ASM содержит два новых фоновых процесса. Один из них координирует работу по перебалансировке дисковых групп. Его имя - RBAL. Второй - выполняет фактическое перемещение единичных секций (AU) в ходе перебалансировки данных. Таких процессов может быть много в каждый момент времени и они называются ARB0, ARB1 и т.д. Экземпляр ASM также содержит большинство таких же процессов, как и экземпляр базы данных (SMON, PMON, LGWR, DBWR и СКРТ). в -w' Oracle Database 10g: Administration Workshop 11 12-4 Oracle Database 10g: Administration Workshop II 12*5
Общая архитектура ASM (продолжение) Каждый экземпляр базы данных, использующий ASM, имеет два новых фоновых процесса, называемые ASMB и RBAL. RBAL выполняет глобальное открытие дисков дисковых групп. При старте экземпляра базы данных ASMB соединяется как фоновый процесс с экземпляром ASM, Взаимодействие между базой данных и экземпляром ASM осуществляется через мост (bridge). Он позволяет производить физические операции с файлами, например, создавать или удалять файлы данных. Через такое соединение осуществляется периодический обмен сообщениями для обновления статистик и для проверки того, что оба экземпляра функционируют. Задачи, связанные с экземпляром ASM Задачи администратора по использованию экземпляра ASM: • Создание экземпляра ASM • Установка параметров инициализации • Запуск экземпляра ASM < • Управление экземпляром ASM • Остановка экземпляра ASM Copyright © 2006, Oracle. АН rights reserved. Oracle Database 10g: Administration Workshop II 12-6 Oracle Database 10g: Administration Workshop II 12*7
Создание экземпляра ASM f«мк£ Status ~ Fssfcee Gw S ze ^B) :Жййй DisX Вкда»¥ Faits., Copyright © 2006, Oracle. All rights reserved. iRACLjE’ 40v 400 400 400 -CANDIDATE CANDIDATE CANDIDATE candidate CANDIDATE Г £4s>- Path 6s • /cievyr&fc/rawi P ; /dev;tw/raw2 Sete»:; the yw wfl ?e &W8a0aU345fe Cwifwe Ostaetoe си ~ e Database WUtMiWW Г : I t~Ssr J '' Nt-tr^e Tempi »es \, * CosF^a-^Vfoatic Stcragg Mai •; Member»^," » Show Candidates C 5few Ай P | /de></rav;;raw4 Гс i fdetfrew/rawS сад»} wf Создание экземпляра 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. в € ’W •* * Oracle Database 10g: Administration Workshop II 12-8
Параметры инициализации экземпляра ASM INSTANCEJTYPE « ASM DB_UNIQUE_NAME= +ASM ASM_POWER_LIMIT « 1 ASMJDISKSTRIMG « </dev/rdsW*s2•, •/dev/rdsk/cl*' ASMJ3ISKGROUPS = dgroupA, dgroupB IARGE_POOL_SIZE = 8MB 12-9 Copyright © 2006, Oracle. All rights reserved. i Параметры инициализации экземпляра ASM • INSTANCE__TYPE должен быть установлен в ASM для экземпляров ASM. • DB_UNIQUE_NAME задает имя предоставляемого сервиса, через которое доступен этот экземпляр ASM, управляющий дисковыми группами, управляющий дисковыми гругшами.Обычно следует использовать значение по умолчанию +ASM. Другое значение задается только, когда на одном узле выполняется несколько экземпляров ASM. • ASM__POWER_LIMIT управляет скоростью оперсщии перебалансировки ( rebalance operation). Задаваемое значение может быть в диапазоне от 1 до 11, причем 11 определяет максимальную скорость. Если этот параметр опущен, значение по умолчанию - 1. Количество подчиненных процессов зависит от уровня параллелизма, задаваемого в ручной команде перебалансировки (фраза POWER), или же определяется параметром ASM_POWER__LIMIT. • ASM__DI SKSTRING содержит зависимое от ОС значение, используемое ASM для ограничения перечня дисков, которые могут быть обнаружены. • ASM__DISK_G ROUPS содержит список имен дисковых групп, монтируемых экземпляром ASM при старте или по команде ALTER DISKGROUP ALL MOUNT. INSTANCE__TYPE - это единственный параметр, который должен быть задан. Все остальные параметры ASM имеют значения по умолчанию, которые подходят для большинства сред. Примечание: если среда ASM была создана с использованием командной строки, а не ЕМ, тогда дисковые хруппы должны быть созданы перед тем, как они могут быть смонтированы. Oracle Database 10g: Administration Workshop II 12-9
Изменения в параметрах экземпляра базы данных INSTANCEJTYPE = RDBMS log_archive_format DB_BLOCK_SIBE DB_CREATE_ONLINE_I4)GJ3EST_n DBJZREATEJ^ILEJDEST DB_RECOVERY_FXLE_DEST CONTROL_FILSS X* *OG_MCHIVEJDEST STANDBYJ1RCHXVB_DEST lARGE_ROOb_SIlE ~ 8MB 12-10______________________________Copyright © 2006, Oracle. AH rights reserved. Изменения в параметрах экземпляра базы данных По умолчанию параметр INSTANCE__TYPE имеет значение RDBMS, что указывает на то, что это экземпляр системы управления реляционной базой данных (СУРБД, Relational Database Management System, RDBMS). Когда для параметра LOG__ARCHIVE__DEST задано неполное имя ASM-файла (например. -rdGroupA), параметр LOG__ARCHIVE_FORMAT игнорируется. Когда значение параметра LOG__ARCHIVE___DEST - директория ASM (например, +dGroupA/myarchlogdir/), тогда параметр LOG__ARCHIVE FORMAT используется и архивные файлы не являются файлами, сопровождаемыми Oracle {Oracle Managed File О MF). База данных Oracle автоматически генерирует уникальные имена для архивных журналов. В следующих параметрах можно использовать шаблоны имен для ASM-файлов: . DB__CRE ATE__ONL INE __LOG_DE S T__n . DB_CREATE _FILE__DEST • DB__RECOVERY _FILE_DEST • CONTROL_FILES - LOG___ARCHIVE__DEST__n • LOG_ARCHIVE___DEST . STANDBY__ARCHIVE _DEST Примечание: поскольку место для карт единичных секций (allocation unit maps) ASM- файлов выделяется в большом пуле, необходимо задать параметр инициализации LARGE__POOL_SIZE, равный хотя бы 8 Мб или же больше (что предпочтительнее). Запуск экземпляра ASM $ sqlplus /nolog SQL> CONNECT / AS sysdba Connected to an idle instance. SQb> STARTUP; i ASM instance started Total System Global Area 147936196 bytes Fixed Sise 324548 bytes Variable Sise.i 96468992 bytes Database Buffers 50331648 bytes Redo Bufferg 811008 bytes ASM diskgroujps mounted ------------.<--.... .................. " •" * .«War*®*111*1’ . Я □racle 1 12-11 Copyright © 2006, Oracle. All rights reserved. 1 Запуск экземпляра ASM Экземпляр ASM запускается подобно экземпляру базы данных. Отличие в том, что в файле параметров инициализации содержится запись INSTANCE__TYPE-ASM. Такое значение параметра означает для исполняемого модуля Oracle, что запускается экземпляр ASM, а не экземпляр БД. Кроме того, в переменной среды ORACLE_SID должно быть указано имя экземпляра ASM. При старте экземпляра ASM на стадии монтирования делается попытка смонтировать дисковые группы, указанные в параметре инициализации ASM__DISKGROUPS. Никакая база данных в этом случае не монтируется. Другие фразы команды STARTUP, которые используются при старте экземпляра БД, соответствующим образом интерпретируются применительно к экземпляру ASM. Опция OPEN не применима для экземпляра ASM. NOMOUNT вызывает запуск экземпляра ASM без монтирования какой-либо дисковой группы. Oracle Database 10g: Administration Workshop II 12-10 Oracle Database 10g: Administration Workshop II 12-11
Доступ к экземпляру ASM Copyright© 2006, Oracle. All rights reserved. 12-12 Доступ к экземпляру ASM Экземпляр ASM не имеет словаря, поэтому единственный способ соединения с ним - использование аутентификации на уровне ОС. Соединение может быть установлено с привилегией SYSDBA или SYSOPER. Для удаленного соединения должен использоваться парольный файл. Обычно привилегия SYSDBA предоставляется члену группы в операционной системе. В Unix это, как правило, группа dba. По умолчанию члены группы dba имеют привилегию SYSDBA, действующую при подсоединении к любому экземпляру на узле, включая экземпляр ASM. Пользователям, подсоединяющимся к экземпляру ASM с привилегией SYSDBA, предоставляется доступ, позволяющий выполнять административные операции во всех дисковых группах системы. Привилегия SYSOPER позволяет поддерживать работоспособность экземпляра ASM и разрешаем применять ограниченный набор команд SQL для выполнения базовых операций уже сконфигурированной системы. Доступ к экземпляру ASM (продолжение) Следующие команды доступны пользователям с привилегией SYSOPER: • S TARTU P/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/RES I ZE DISK и т.д. требуют наличия привилегии SYS DBA и не разрешены при соединении с привилегией SYSOPER. Oracle Database 10g: Administration Workshop II 12-12 Oracle Database 10g: Administration Workshop II 12-13
Домашняя страница ASM I Copyright © 2006; Oracle. A!! 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 |12-15 Copyright © 2006, Oracle. All rights reserved. * Страница производительности ASM На закладке Performance страницы Automatic Storage Management показываются данные о времени ответа и пропускной способности ввода-вывода для каждой дисковой группы. Пользователь может также получить более детальные сведения (drill down) о значениях метрик производительности на уровне дисков. Oracle Database 10g: Administration Workshop II 12-15
Страница конфигурации ASM На закладке Configuration страницы Automatic Storage Management можно просмотреть и изменить параметры инициализации экземпляра ASM. Oracle Database 10g: Administration Workshop II 12-16
Остановка экземпляра ASM Экземпляр В базы данных Экземпляр А базы данных Copyright © 2006. Grade, Ail rights reserved. Экземпляр АШЙ зшшхж моюш Остановка экземпляра 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 II 12-17
Утилита DBCA и опции хранения mechanism you would like to use fprtbe database. Use the File system for fat abase storage. Салей? Help... Copyright © 2006, Oracle. All rights reserved. * Automatic Storage Management yog •: k”Ajiurnailc Storage йг^1е5Эах^Ьа§й storage administration and opteHi^database tayuui tor l/Operfortn.^nce-Tb'.^o this ppticn you must either specify a set of disks to create an ASM disk groubw фест^ап existing ASM disk group. •'" Raw Ре^фУ Raw panftibns or voltoes can prov»de the requhed shared storage for Real Application Clusters (RAC) databases it wu do act use Automatic Storage Management and a Cluster File System is not available You need to have created one » device for each datafile, control f<le, and lag file you pfenning w create In the database. : ЙЯ Утилита DBCA и опции хранения При создании базы данных с помощью утилиты Database Configuration Assistant (DBCA) выдается приведенная на слайде страница.. На ней можно выбрать в качестве места хранения файловую систему, ASM или “чистые”устройства {rawdevices). Oracle Database 10g: Administration Workshop II 12-18
Основные понятия, связанные с ASM Основные понятия, связанные с 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 Дисковая группа .. 4.• .ч .._ _or?AGUF! 12-20 Copyright © 2006, Oracle. АН rights reserved. Дисковые группы 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
Группа отказа Группа отказа 1 Группа отказа 2 Группа отказа 3 Дисковая группа А Copyright © 2006, Oracle. AH rights reserved. Группа отказа Группа отказа(/аИиге group) - это набор дисков внутри конкретной дисковой группы, разделяющих общие ресурсы, отказ которых останавливает работу дисков, но не выводит их из строя. Примером труппы отказа может служить цепочка SCSI-дисков, соединенных с общим SCSI-контроллером. Аварийный отказ контроллера ведет к тому, что все диски на его шине SCSI становятся недоступными, хотя каждый из дисков по отдельности не теряет работоспособности. Состав отказывающей группы зависит от особенностей каждого узла. Он определяется в значительной степени видами отказов, к которым толерантен узел (отказ не вызывает прекращения его работы). По умолчанию ASM назначает каждому диску свою собственную группу отказа. При создании дисковой группы или добавлении диска к дисковой группе администраторы могут указать задаваемую ими группу отказа в рамках дисковой группы. После того, как группы отказа были заданы, ASM может оптимизировать размещение файлов, чтобы снизить вероятность недоступности данных вследствие отказа общего ресурса. Oracle Database 10g: Administration Workshop II 12-21
Зеркалирование дисковых групп Зеркалирование на уровне AU Смешивание первичных и зеркальных AU на каждом диске Внешняя избыточность: основывается на аппаратном зеркалировании Обычная избыточность: - Двойное зеркало - Хотя бы две группы отказа Высокая избыточность: - Тройное зеркало - Хотя бы три группы отказа 12-22 Copyright © 2006, Oracle. All rights reserved. Зеркалирование дисковых групп При использовании 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. All rights reserved. СУ- ЛС ( с? л л Динамическая перебалансировка дисковых групп • При использовании ASM процесс перебалансировки очень прост и происходит без вмешательства АБД или системного администратора. Когда добавляются или удаляются диски из дисковой группы, ASM автоматически перебаласирует дисковую группу,. • Использование индексных методов при распределении AU на доступных дисках позволяет ASM не перерасщеплять (restripe) все данные, а только перемещать некоторый объем данных, пропорциональный добавленному или удаленному месту хранения. Такое перемещение производится с целью равномерного перераспределения файлов и поддержания сбалансированной загрузки ввода-вывода между дисками дисковой группы. • При сбалансированной загрузке ввода-вывода могут быть добавлены файлы или изменена конфигурация хранения. В таком случае администратору БД не надо искать “горячие точки” (hoi spots) в дисковой группе и вручную перемещать данные, чтобы восстановить сбалансированную рабочую загрузку ввода-вывода. • Более эффективно одновременно добавлять или удалять несколько дисков так, чтобы их перебалансировка была выполнена в рамках одной операции. Это позволяет избежать ненужное перемещение данных. С помощью такого подхода проще выполнить оперативную миграцию данных. Все что необходимо сделать - добавить новые диски в рамках одной операции и удалить старые диски в этой же операции. * Параметр инициализации ASM__POWER_LIMIT позволяет управлять нагрузкой, оказываемой на систему операцией перебалансировки. Диапазон значений этого параметра от 0 до 11. Чем меньше значение, тем ниже нагрузка, большее значение вызывает большую нагрузку и более быстрое завершении операции. Значение 0 останавливает операцию перебалансировки. По умолчанию значение ---• 1. Oracle Database 10g: Administration Workshop II 12*23
Сопровождение дисковых групп 12-24 Copyright © 2006: Oracle. АН rights reserved. 12-25 Copyright © 2006, Oracle. All rights reserved. Сопровождение дисковых групп Основная задача экземпляра ASM - управление дисковыми группами и защита их информации. Кроме того, экземпляр ASM передает сведения о структуре файла экземплярам БД. В результате экземпляры БД могут напрямую обращаться к файлам, хранимым в дисковых группах. Появилось несколько новых команд для администрирования дисковых групп. Для их использования требуется привилегия SYSDBA и все они должны вводиться через экземпляр ASM. Можно добавить новые дисковые группы. Можно также изменить существующие дисковые группы, добавив или удалив диск, а также произвести много других операций Дисковые группы можно удалить. Страница администрирования ASM Страница администрирования ASM На закладке Administration страницы Automatic Storage Management выводятся дисковые группы, перечисленные в представлении V$ASM__DISKGROUP. На этом экране пользователь может создавать, редактировать или удалять дисковую группу. Кроме того можно выполнять операции с дисковыми группами, например, монтирование, размонтирование, ребалансировку, проверку и восстановление (repair) выбранной дисковой группы. 1 JI Oracle Database 10g: Administration Workshop II 12-24 Oracle Database 10g: Administration Workshop II 12-25
Страница создания дисковой группы _______________Г. ^RACLG_____ 12-26 Copyright © 2006, Oracle. All rights reserved. Страница создания дисковой группы Щелкните на кнопке Create на странице Disk Group Overview. В результате произойдет переход на страницу Create Disk Group, пример которой приведен на слайде. На этой странице можно ввести имя дисковой группы, задать механизм избыточности и перечень дисков, которые необходимо включить в новую дисковую группу. Перечень дисков выбирается из фиксированного представления V$ASM__DIS.K. По умолчанию показываются только те диски, которые могут быть назначены дисковой группе. Такие диски имеют один из следующих статусов: CANDIDATE; диск никогда не назначался дисковой группе ASM;. • FORMER; диск когда-то назначался дисковой группе ASM, но сейчас он не входит ни в какую группу; PROVISIONED; использовался интерфейс ASMLib, но диск еще не назначался дисковой группе ASM. Примечание: ASMLib - это APL предоставляющий интерфейс к массивам хранения других производителей. Дополнительные сведения о ASMLib см. в документе Database Administrator's Guide. I J 4 • «4 4 Oracle Database 10$: Administration Workshop II 12-26
Создание и удаление дисковых групп CREATE DISKGROUP dgrOpA' NORMAL REDUNDANCE FAILGROUP controller! DISK */devices/А1’ NAME */devices/A2’t ’/devices/A3’ FAILGROUP controllers •/devices/Bl’, '/devices/В2* > '/devices/ВЗ/; diskAl DISK SIZE 120G FORCE 1 DROP DISKGROUP dgroupA INCLUDING CONTENTS; 12-27 Copyright © 2006, Oracle. All rights reserved. ORACLE Создание и удаление дисковых групп Предположим, что при обнаружении ASM-дисков в директории /devices были выявлены следующие диски: Al, А2, АЗ. Bl, В2 и ВЗ. Предположим, что диски Al, А2 и АЗ на одном контроллере SCSI, аВ1,В2иВЗ-на другом. Первый пример показывает, как сконфигурировать дисковую группу с именем DGROUPA, содержащую две группы отказа: CONTROLLERl и CONTROLLER2. В примере для дисковой группы также задается характеристика избыточности (NORMAL REDUNDANCY), обычно устанавливаемая по умолчанию. Дополнительно можно указать имя и размер диска. Если эти данные не вводятся, ASM назначает имя по умолчанию и пытается определить размер диска. Если размер диска выявить не удается, возвращается сообщение об ошибке. Параметр FORCE указывает на то, что диск должен быть добавлен к описываемой труппе даже, если он уже был отформатирован как элемент дисковой группы ASM. Использование опции FORCE для диска, который не был отформатирован как элемент дисковой группы ASM, вызывает появление сообщения об ошибке. Во второй команде производится удаление дисковой группы вместе со всеми ее файлами. Фраза INCLUDING CONTENTS необходима, если дисковая группа кроме внутренних метаданных ASM содержит также и данные. Дисковая группа должна быть смонтирована, чтобы ее можно было удалить. После проверки того, что ни один из файлов дисковой группы не открыт, группа и все ее драйверы удаляются. После этого заголовок каждого диска переписывается, чтобы удалить информацию форматирования ASM. Oracle Database 10g: Administration Workshop II 12-27
Добавление дисков в дисковые группы ALTER DISKGROOT dgroupA ADD DISK * /dey/rdsk/c0t4d0s2 ’ ИЖЕ А5, ’ /dev/rdsk/c0t5d0sl ’ NAME Аб^ ?/dev/rdsk/c0t6d0s2f NAME А7, ’/dev/rdsk/c0t7d0s2* NAME AB; ALTER DISKGROUP dgrenpA ADD DISK ’/devices/А* ’ ; (Форматирование дисков Перебалансировка дисковой группы . . ' Л .....ОГ?АС1_Я !« '* 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 II 12*29
Примеры команд Alter DISKGROUP Удаление диска из группы dgroupA: ALTER DISKGROUP dgroupA DROP DISK A5; Добавление и удаление диска в одной команде: ALTER DISKGROUP dgroupA DROP DISK A6 ADD FAILGROUP fred DISK '/dev/rdsk/c0t8d0s2’ NAME A9; Прерывание операции удаления дисков: ALTER DISKGROUP dgroupA UNDROP DISKS; 12-30 Copyright © 2006, Grade, AH rights reserved. Примеры команд Alter DISKGROUP Первая команда показывает, как удалить один из дисков из дисковой группы DGROUPA. Вторая команда демонстрирует добавление и удаление дисков в одной команде. Большое преимущество этой команды в том, что перебалансировка не начинается до завершения команды. Третья команда показывает, как прервать операцию удаления диска, заданную в предыдущей команде. Фраза UN DROP выполняется только в ситуации, когда удаление дисков “подвисает”, но не после завершения удаления. Следующая команда производит перебалансировку дисковой группы DGROUPB, если это необходимо: ALTER DISKGROUP dgroupB REBALANCE POWER 5; Эта команда обычно не требуется, поскольку перебалансировка выполняется автоматически при добавлении, удалении и изменении размеров дисков. Однако она полезна, когда нужно использовать фразу POWER, чтобы переопределить уровень загрузки и повысить скорость перебалансировки, которая зависит от параметра инициализации ASM_POWER__LIMIT. Можно изменить допустимый уровень загрузки (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; Можно также указать фразу NOREPAIR, чтобы только получить сигнальные сообщения об ошибках, но не устранить их. В приводимой команде задана перекрестная проверка всех дисков дисковой группы. Кроме того, можно задать проверку отдельного файла или отдельного диска. Для этой команды необходимо, чтобы дисковая группа была смонтирована. Если обнаруживаются ошибки, выдается итоговое сообщение об ошибках, а также подробные сведения об обнаруженной ошибке заносятся в сигнальный файл. Примечание: все примеры, кроме двух последних, приводят к перебалансировке дисковой группы. 5 Oracle Database 10g: Administration Workshop II 12*31
ASM-файлы ASM-файл автоматически распределяется внутри дисковой группы dgroupA ORACLE I 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> CREATE TABLESPACE tbsasm DATAFILE ’WGROUFld SIZE LOOM; Tablespace created. SQL* CREATE TABLESPACE hrapps DATAFILE WOT1’ SIZE 1OM; Tablespace created. <.... ..........~~. $ asmcmd ASMCMD* la- 1DGROUF1/ORCL/DATAFILE Type Redund Striped Time Sys Name DATAFILE MIRROR . pOARSES OCT 05 21:00:00 t HRAPPS.257.570923611 DATAFILE MIRROR COARSE OCT 05 21:00:00 У TBSASM.256.570922917 ASMCMD* Copyright © 2006, Oracle. At! rights reserved. Утилита asmcmd ASMCMD - утилита командной строки, которая позволяет простым образом просматривать и изменять файлы и директории внутри дисковых групп ASM. С ее помощью можно получать сведения о составе дисковых групп, выполнять поиск, создавать и удалять директории, выводить информацию об использовании пространство и выполнять многое другое. Примечание: дополнительные сведения об утилите ASMCMD см. в документе Oracle Database Utilities. Oracle Database 10g: Administration Workshop II 12*33
Миграция базы данных в структуры хранения ASM 1. Остановите “чисто” базу данных 2. Внесите изменения в файл серверных параметров, чтобы можно было использовать OMF-файлы 3. Отредактируйте и выполните следующий скрипт, используя утилиту RMAN: STARTUP NOMOUNT; ~~ ~~ RESTORE CONTROLFILE FROM '/ul/cl.Ctl'; ALTER DATABASE MOUNT; BACKUP AS COPY DATABASE FORMAT ’+dgroupl?; SWITCH DATABASE TO COPY; SQL "ALTER DATABASE RENAME */ul/logl' TO ’+dgroupl* # Repeat RENAME commandfor all- online redo log members ALTER DATABASE OPEN RRSETLOGS; SQL "ALTER DATABASE TEMPFILE '/ul/tempi * DROP”; |12-34 Copyright © 2006, Oracle. All rights reserved. Миграция базы данных в структуры хранения ASM ASM-файлы недоступны через обычный интерфейс операционной системы. Единственная возможность копирования таких файлов предоставляется утилитой RMAN. Возможна ситуация, когда в табличном пространстве есть как ASM-файлы, так и отличные от них файлы. Команды RMAN позволяют перенести не ASM-файлы в дисковую группу ASM. Для перемещения всей БД в дисковую группу ASM можно выполнить следующие шаги (предполагается, что используется файл серверных параметров): 1. Выясните имена управляющих файлов и оперативных журналов, используя представления V$CONTROLFILE И V$LOGFILE. 2. Остановите в согласованном состоянии базу данных. Измените файл серверных параметров: - задайте необходимые параметры для использования дисковой группы ASM в качестве целевых мест OMF-файлов. - удалите параметр CONTROL_FILES. Oracle Database 10g: Administration Workshop II 12-34
Миграция базы данных в структуры хранения ASM (продолжение) 3. Отредактируйте и выполнит командный файл RMAN, который резервирует базу данных, переключает текущие файлы данных на полученные резервы, а также переименуйте оперативные журналы. С помощью команды BACKUP AS COPY можно только переместить табличные пространства и файлы данных. 4. Удалите старые файлы базы данных. Примечание: если вы создаеге управляющий файл как ОМ F-файл и используется файл серверных параметров, тогда запись с параметром инициализации 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 Администрирование дисковых групп ASM Использование RMAN для миграции базы данных в структуры хранения ASM _ ... . ... . > oaACzuE 12-36 Copyright © 2006, Oracle. Al! rights reserved. | Oracle Database 10g: Administration Workshop II 12-36
Обзор практического занятия: использование ASM • Создание и запуск экземпляра ASM • Создание и использование дисковых групп ASM • Миграция табличного пространства в структуры хранения ASM „ t ORACLE 12-37 Copyright © 2006, Oracle. AH rights reserved. Oracle Database 10g: Administration Workshop II 12-37


Рассматриваемые вопросы > Понятия Ресурсный план Группа потребителей Директивы плана Установление соответствия Активация плана Мониторинг Конфигурирование менеджера ресурсов базы данных Доступ к ресурсным планам и их создание Создание групп потребителей Задание директив распределения ресурсов по группам потребителей Установка соответствия групп потребителей планам Активация ресурсного плана Мониторинг ресурсного менеджера Copyright © 2006, Oracle. АН rights reserved. Oracle Database 10g: Administration Workshop II 13*2
Обзор ресурсного менеджера базы данных Используйте ресурсный менеджер для: * управление смешанной рабочей нагрузкой ♦ управление производительностью системы Пользователи OLTP Пользователи DSS ^Пользователи, ^выполняющие | пакетные * задания Менеджер ресурсов БД Больше ресурсов Меньше ресурсов Наименьшие ресурсы База данных Oracle А 13-3 Copyright © 2006, Oracle. All rights reserved. Обзор ресурсного менеджера базы данных Использование .менеджера ресурсов базы данных (Database Resource Manager) предоставляет АБД возможность большего контроля ресурсов по сравнению с отдельно применяемыми обычными средствами операционной системы. Если решения по управлению ресурсами принимает операционная система, могут возникнуть такие проблемы, как: • чрезмерные накладные расходы, вызванные переключением операционной системой контекста серверных процессов базы данных Oracle, когда число таких серверных процессов велико; • приостановка серверных процессов базы данных, удерживающих защелку; • неравномерное распределение ресурсов между всеми процессами базы данных Oracle и невозможность установления приоритетов задач; • невозможность управления присущими базе данных ресурсами, например, параллельным выполнением серверных процессов и активными сеансами. Менеджер ресурсов базы данных управляет распределением ресурсов между различными сеансами. Для этого он осуществляет контроль функционирования внутри базы данных. Чтобы гарантировать распределение ресурсов в соответствие с целями бизнеса (директивами плана), ресурсный менеджер БД отслеживает выполнение текущих сеансов и их длительность. Используя менеджер ресурсов базы данных, администратор может гарантировать выделение группам пользователей минимального объема ресурсов, необходимых для обработки, независимо от загрузки системы: и количества пользователей. Oracle Database 1Од: Administration Workshop II 13-3
Группа потребителей ресурсов Ресурсный план Определения менеджера ресурсов базы данных Группы пользователей с похожими ресурсными потребностями План распределения ресурсов между группами потребителей (один активный план) Задает, как ресурс делится между группами потребителей ресурсов (на основе ограничений методов распределения) Директивы ресурсного плана ж ............................. Ж .......:» | 13-4 Copyright © 2006, Oracle, AH rights reserved. Определения менеджера ресурсов базы данных Администрирование систем с использованием менеджера ресурсов выполняется на основе ресурсных планов (resource plans\ групп потребителей ресурсов (resource consumer groups) и директив ресурсного плана (resource plan directives). Группа потребителей ресурсов Группа потребителей ресурсов определяет совокупность пользователей со схожими требованиями но использованию ресурсов системы и базы данных. Ресурсный план Ресурсный план определяет, как распределяются ресурсы между различными группами потребителей ресурсов. Менеджер ресурсов базы данных также позволяет создавать планы внутри планов, называемые подпланами (sub-plans). Методы распределения ресурсов Методы распределения ресурсов определяют, какую политику использовать при распределении конкретного ресурса. Эти. методы применяются в ресурсных планах для распределения ресурсов между группами потребителей. *• «в , i Oracle Database 10g: Administration Workshop II 13*4
Использование ресурсного менеджера • Предоставляются возможности управления ресурсами базы данных и операционной системы, например: - использованием CPU , - числом активных сеансов - уровнем параллелизма - объемом генерируемой информации отмены - временем управления операций - временем простоя • Кроме того, можно задавать критерий автоматического переключения сеанса из одной группы потребителей в другую. 13-5_______________________________Copyright © 2006, Orade. АН rights reserved. СЖАС1 Использование ресурсного менеджера Менеджер ресурсов базы данных предоставляет несколько способов распределения ресурсов. • Метод распределения CPU. Позволяет задать распределение ресурсов CPU между группами потребителей ресурсов и подпланами. • Ограничение на уровень параллелизма. Позволяет контролировать максимальный уровень параллелизма любой оперании группы потребителей ресурсов. • Пул активных сеансов и очередь к этому пулу. Предоставляется возможность ограничения количества одновременных активных сеансов для группы потребителей ресурсов или подплана. Когда достигается максимально допустимое количество сеансов для группы, новые сеансы помешаются в очередь, в которой они ждут завершения активного сеанса. Время пребыванию сеанса в очереди можно также ограничить и при его превышении сеанс завершается с ошибкой. • Пул отмены (Undo Pool). Позволяет контролировать совокупный объем информации отмены, который может быть сгенерирован сеансами группы потребителей или подплана. Koi да общее пространство отмены превышает величину, заданную директивой UNDO__POOL, запрещается выполнение последующих команд INSERT, UPDATE и DELETE, пока пространство отмены не будет освобождено другим сеансом этой же группы или квота пула отмены будет увеличена для группы потребителей. Когда при выполнении команды DML превышается групповая квота, операция аварийно завершается и возвращается сообщение об ошибке. Однако запросы разрешены, даже если группа потребителей превысила пороговое значение. Oracle Database 10$: Administration Workshop II 13-5
Использование ресурсного менеджера (продолжение) * Ограничение на время выполнения» Делает возможным задание максимального времени выполнения, разрешаемого для любой операции. База данных Oracle использует статистики стоимостного оптимизатора для оценки длительности операции. Если предполагаемое время выполнения больше максимально допустимого (MAXJEST_EXEC__TIME), возвращается сообщение об ошибке и операция не запускается. В случае, когда на одну группу потребителей ресурсов ссылается несколько директив плана, возможно наличие нескольких определений параметра MAX__ESTIMATED__EXEC__TIME. Менеджер ресурсов базы данных выберет наиболее ограничивающее из всех входных значений. • Ограничение на время простоя (Idle Time Limit). Позволяет задать значение времени (MAX_IDLE_ TIME), в течение которого сеанс может простаивать и по истечении которого он будет аварийно завершен. Дополнительно можно задать ограничение, на основании которого ресурсный менеджер аварийно завершает только такие сеансы, которые блокирую!' другие сеансы (MAX_I DLE__T IME_BLOCKER). W a i n - и 1* Oracle Database 10g: Administration Workshop II 13-6
Доступ к ресурсным планам Enterprise Manager и PL/SQL Resource Plans Resource Manager Monitors Consumer Groups Consumer Group Mapping; Plans Понятия > Ресурсный план Группа потребителей Директивы плана Установление соответствия Активация плана Мониторинг Object Type! Resource Plan Search Select an object type and optionally enter an object na^ne to filter the data that is displayed in your results set Object Name s xG0) By (fefsuft. tlи-- re-VtA f etu- ns- sii upp?- сале. mMche* * wHhtn® *i- you entered To i un an act or case-sem;;?!Yp rrastch. doubte quote the se^ch stung You can use the wifcfc^d symbol (%; in & ctounfe quoted etung. ; Create j О Activate IN FERNAL PLAN INTERNAL QUIESCE iSYSTEM PLAN ctotW Default Plan Plan to internally quiesd^^^x^ Plan to give system sessions priority Deactivate Generate DDL v»acl« Copyright © 2006, Oracle. All rights reserved. Доступ к ресурсным планам Использование Enterprise Manager Enterprise Manager Database Control Console предоставляет простой в использовании графический интерфейс для конфигурирования ресурсных планов, групп потребителей ресурсов и т.д. Использование пакета DBMS_RESOURCE_JMANAGER Пакет PL/SQL содержит много процедур. В их число, например, входят следующие: • CREATE_PLAN; присвоение имени ресурсному плану и задание для него методов распределения; • UPDATE^PLAN; изменение комментария к ресурсному плану; • DELETE^PLAN; удаление ресурсного плана и всех его директив. Oracle Database 10g: Administration Workshop II 13-7
Пример: SYSTEM_PLAN Группа потребителей ресурсов Методы распределения CPUJPl CPU_P2 CPUJP3 SYSJ3ROOT 100% 0% 0% OTHERjGROUFS 0% 100% 0% L0WJ3ROUP 0% 0% 100% 13-8 Copyright © 2006, Oracle. All rights re sewed. Пример: SYSTEMJRLAN SYSTEM__PLAN - один планов, предоставляемых по умолчанию. Этот план содержит директивы для следующих групп потребителей: * SYS^GROUF - исходная труппа потребителей для пользователей SYS и SYSTEM. • OTHER_GROUPS; используется для всех сеансов таких групп потребителей, которые не заданы в активном ресурсном плане. В любом активном плане должна быть директива, включающая в него группу OTHER_GROUPS. • LOW_GROUP - труппа, позволяющая включать в план SYSTEM_PLAN сеансы с меньшихм приоритетом по сравнению с труппами SYS_GROUP и OTHER_GROUPS. Вы должны определить пользователей, включаемых в эту группу. Первоначально с ней не связан ни один пользователь. Отметим, что всем (PUBLIC) предоставлена привилегия переключения (switch) в эту группу. Исходная группа потребителей для пользователя - это группа, которой первоначально принадлежат любые создаваемые сеансы данного пользователя. Если для пользователя не установлена такая группа, он автоматически становится членом группы DEFAULT_CONSUMER__GROUP. План SYSTEM___PLAN и связанные с ним группы потребителей ресурсов могут быть использованы или не использованы. Этот план можно рассматривать в качестве прототипа для новых ресурсных планов. Его также можно модифицировать или удалить. Данный план, поставляемый с базой данных, может использоваться, когда он подходит для пользовательской среды. Oracle Database 10g: Administration Workshop II 13-8
Создание нового ресурсного плана Г'":" Л Л*......,.. ШАС1-& 13-9 Copyright © 2006, Oracle. Alt rights reserved. Создание нового ресурсного плана Для того, чтобы создать новый план, необходимо сконфигурировать объекты ресурсного менеджера. Перейдите следующим образом: Administration > Plans. Затем щелкните на кнопке Create или выберите Create Like в выпадающем списке поля Actions и щелкните на кнопке Go. Планировщик может автоматически поменять план ресурсного менеджера в рамках окна планировщика. Снимите установленную по умолчанию отметку “Automatic Plan Switching Enabled,” когда это неприемлемо. Дополнительные сведения о планировщике см. в уроке: “Автоматизация выполнения задач с помощью планировщика”. w 1 Ш .ж- Oracle Database Юр: Administration Workshop II 13-9
Создание групп потребителей Понятия Ресурсный план > Группа потребителей Директивы плана Установление соответствия Активация плана Мониторинг gmnmey , ® .W CONSUMER GROUP О ГГ >i Г Г \ x >у Г-P» i<P О LOW GROUP О SYS GROUP consumer group for users not assigned to any group Group of iow pnortty sessions :Group of system sessions Create Resource Consumer Group General| Roles * Consumer Group APPUSER Description Scheduling Policy Round Robin Selected Users! DBMSJRESOURCE_MANAGER. CREM^_CONSUMERjGROOT ( CONSUMER_GROUP => ’APPUSER', seterttte CPU W•-> 'ROUND-ROBIN’ , =---------- COMMENT F> 13-10 Copyright © 2006, Oracle. All rights 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 (‘по кругу’ всем поровну), гарантирующий равноправное выполнение сеансов пользователей фуппы. Метод Run to Completion в первую очередь предполагает завершение выполнения сеансов с наибольшим временем нахождения в активном состоянии. Выбрать метод распределения времени CPU можно с помощью опции CPU__MTH пакетной процедуры DBMS__RESOURCE__MANAGER. CREATE__CONSUMER_GROUP. Oracle Database 10g: Administration Workshop II 13-10
Включение пользователей в группы потребителей ресурсов etc! essds > Edit User. PM Logged rn As. SsS Edit User: PM Actions Create Like > 4 Go J Shew SQL j .Revert J \ AppkQ Genera^ Pules System Privileges Ooject Prmleges Quotas Csnsumsr Groups Switching Privileges Pigxy Users 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 s Edit List) APPUSER □ LOWGROUP □ | SYS_GRC‘UP □ Default Consumer Group None 13-11 Copyright <g) 2006, Oracle. All rights reserved. Включение пользователей в группы потребителей ресурсов Перед началом использования менеджера ресурсов базы данных пользователи должны быть включены в группы потребителей. Назначенная по умолчанию группа потребителей для пользователя - это такая группа, к которой первоначально принадлежит любой сеанс, создаваемый этим пользователем. Если такая группа не установлена для пользователя, по умолчанию начальной группой потребителей считается DEFAULT_CONSUMER__GROUP. Необходимо напрямую предоставить пользователю или всем (PUBLIC) привилегию для замены (switch) начальной группы потребителей на другую группу перед тем, как эту труппу можно будет назначить пользователю в качестве группы по умолчанию. Привилегия для замены группы не может быть предоставлена пользователю через роль. DBMS_RESOURCE_MANAGER. SET__INITIAL__CONSUMER__GROUP ( user ~> 'PM’, consumer_group ~> ’APPUSER' ); Пакет DBMS__RESOURCE__MANAGER__PRIVS содержит процедуру назначения группы потребителей пользователям, с помощью которой пользователю предоставляется привилегия для смены (switch) его собственной текущей группы потребителей DBMS_RESOURCE__MANAGER__PRIVS . GRANT_SWITCH__CONSUMER_GROUP ( grantee__name => ’PM', consumer_group => ’APPUSER’, grant_option -> FALSE ) ; Для любой из этих процедур не требуется использование отложенной области (pending area). Oracle Database 10g: Administration Workshop II 13-11
Задание директив ресурсного плана Понятия Ресурсный план Группа потребителей > Директивы плана Установление соответствия Активация плана Мониторинг Edit Resource Ran: SYSTEM PLAN Create Like General Pj r' giism Session pool Undo Ppoi Maximum, Execyrian.T«me Cunsumas G;oup Switch^ idtepme Pion SYSTEMJPLAN Description Plan lo give system sessions priority □Activate this plan Й Automatic Plan Switching Enabled Selected Groups/Subplans Modify) aie«K>SuhHsi> L,£Sj.l±.. >m!J I t«<<0 ..............< LOVVGRGUP Ю H° I'100 = P OTHER_GROUPS Ь ;.100 й 0 0 SYS_GROUP йобГ ||G О Д :p ________________5_”_______:__л™±гл:л.:::_~ =0 jO :"o 'Cl' jO ' 'o’ 0 “o' ~|p Значения CPU mth l r- 13-12 Copyright © 2006, Oracle. All rights reserved. Задание директив ресурсного плана Если для создания ресурсного плана или групп потребителей не используется ЕМ, тогда сначала необходимо создать отложенную область. Это обязательная рабочая область, позволяющая проводить изменения в создаваемых объектах менеджера ресурсов, а затем их проверить перед началом действия. В 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
Методы распределения ресурсов в плане Параметр Возможные значения CPUJ4TH EMPHASIS RATIO PARALLELJ)EGREE_LIMITJMTH 1 PARALLELJDEGREE_ LIMITJABSOLUTE ACTIVE_SESS_POOL_MTH ACTIVE_SESS_POOL JABSOLUTE QUEUINGJOTH FIFOJTIMEOUT 13-13 Copyright © 2006, Oracle. All rights reserved. Методы распределения ресурсов в плане Эти методы определяют, как менеджер ресурсов базы данных распределяет конкретный ресурс для группы потребителей или плана. При создании ресурсного плана можно задавать ограничения с помощью следующих методов распределения ресурсов. Существует два способа задания распределения времени CPU с помощью параметра CPU_MTH: • EMPHAS IS- метод по умолчанию, используемый для многоуровневых планов, в которых задаются проценты использования ресурсов CPU, распределяемых между группами потребителей. • RATIO (на основе заданной пропорции) ~ метод, применимый для одноуровневых планов, в которых используются показатели, пропорционально которым распределяется время CPU. PARALLEL DEGREEJ^IMITJMTH ~~ метод ограничения максимального уровня параллелизма операций. Этот параметр разрешено использовать только в директивах, которые ссылаются на группы потребителей ресурсов, но не на подпланы. Возможно применение абсолютного метода, с помощью которого указывается количество процессов, которое может быть задано для операции. Если в нескольких директивах плана есть ссылки на один и тот же подплан или группу потребителей, степень параллелизма для такого подплана или группы потребителей будет ограничена минимальной величиной всех входных значений. ACTIVEJ3ESSJ?OOLJ4TH - метод ограничения количества активных сеансов. При превышении заданного ограничения все оставшиеся сеансы неактивны и ждут в очереди. Единственно возможный и действующий по умолчанию метод ~ active_sess__pcol__absolute. QUEUINGJ4TH ~ метод управления порядком, в котором будут выполняться находящиеся в очереди неактивные сеансы. Единственно возможный и действующий по умолчанию метод - FIFO JTIMEOUT. Oracle Database 10g: Administration Workshop II 13*13 й
Сравнение методов emphasis и ratio EMPHASIS RATIO Задаваемое значение определяет максимальный процент использования ресурсов CPU группой потребителей. Задаваемое числовое значение отражает пропорцию, по которой ресурсы CPU выделяются группе потребителей. Ресурсы могут быть распределены максимально на 8 различных уровнях. Значения могут быть заданы только для одного уровня. Сумма процентных значений для данного уровня должна быть меньше либо равна 100. Необходимо указывать только целые значения, но нет ограничений на сумму значений» Значение по умолчанию - NULL. Значение по умолчанию - NULL. OPACLG 13-14 Copyright © 2006, Oracle. All 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
О • W W» :'g Сравнение методов emphasis и ratio (продолжение) И 1 ц Политика RATIO (на основе заданной пропорции) - это одноуровневый метод I распределения ресурсов CPU. Вместо процентных значений задаются числовые величины, отражающие пропорцию, в соответствие с которой ресурсы CPU предоставляются группе ® ’1 потребителей. Например, пусть имеется три группы потребителей OLTP__USERS, — • г DSS___USERS и BATCH__USERS, и для них заданы следующие показатели I пропорциональности: - I _ • OLTPJJSERS: 4 •З1 ’ • DSSJJSERS: 3 • BATCHJUSERS: 2 .1 • OTHER: 1 ™ W Это означает то же самое, что пользователям группы OLTP__USERS следует предоставить 40% ресурсов, DSS_USERS - 30%, BATCH__USERf> - 20%, а всем остальным группам (OTHER) — 10% доступных ресурсов. 1 Если никто из групп OTHER и DSS__USERS не использует в настоящий момент ресурсы CPU, тогда группе потребителей OLTP__USERS будет выделяться две трети доступных | ресурсов и группе потребителей ВАТСН_ USERS - оставшаяся треть ресурсов. С "ц ~ 1 i Oracle Database 10g.* Administration Workshop II 13*15
I I I j | 13-16Copyright© 2006, Otacle. Alt rightsreserved,| Механизм пула активных сеансов Пул активных сеансов позволяет администратору базы данных управлять максимальным количеством одновременных активных сеансов, приходящимся на одну группу потребителей. С помощью этой функциональной возможности косвенно контролируется объем ресурсов, используемый группой потребителей, так как он пропорционален количеству активных сеансов. Использование пула активных сеансов может помочь сократить число серверных процессов, которые занимают системные ресурсы. В результате устраняется дополнительный страничный обмен, свопинг, а также снижается расходование других ресурсов (например, оперативной памяти). Это происходит, потому что система препятствует одновременному выполнения слишком большого числа заданий. После того, как пул заполняется активными сеансами, менеджер ресурсов ставит последующие сеансы, пытающиеся стать активными, в очередь, в которой они находятся, пока другие активные сеансы не завершатся или престанут быть активными. Активный сеанс - это такой сеанс, в котором выполняется гранзакция, запрос или параллельная операция. Отдельные параллельные подчиненные процессы не рассматриваются в качестве сеансов. При подсчете активных сеансов вся параллельная операция учитывается как один сеанс. Для каждой группы потребителей ресурсов существует только одна очередь, обслуживаемая по алгоритму первым прибыл, первым обслужен (first in, first out ~ FIFO) c таймаутом. Очередь реализована в виде структуры в оперативной памяти и из нее нельзя прямо запросить данные. Oracle Database 10g: Administration Workshop II 13-16
' 1 i I •IT « - I W S И : i В 1 . I 4 “W «sjas»-' ИГ I ;• •» ( : Гй । ;"й ,.— j _ *?" I g • । I ! I JI • ' ' —s гj1M Wss^' Настройка пула активных сеансов Database instance _»< । > p . t) e Plan? » Edit Resource Plan: SYSTEMJ^LAN Lagged in As SlS Edit Resource Plan: SYSTEmIplaN ActionsCreate Like '* vGo) (Show SQL J Revert) ч Apply) General Session P^el> Цп^ Р.чм < innin t- r , p Consumer Group < M q id_[ t Specify a limit on the maximum number of concurrently active sessionf for a consumer group. All other sessions will wait in an activation queue ЙЙШ8 Шпйег BlfW 1 Й^Ч APPUSER рШМШ=Ь. UMlMITELi LOWGROUP [UNLIMITED.1 [UNUMITED...I OTHERGROUPS jUNLIMITED .UNLIMlfED S¥S GRQUP [UNLIMITED .J UNLIMITED ‘ l II 13-17 Copyright © 2006, Oracle. All rights reserved. Настройка пула активных сеансов С помощью Enterprise Manager можно просто сконфигурировать установочные параметры пула активных сеансов для ресурсного плана. Oracle Database 10g: Administration Workshop II 13-17
Закладка 5 Максимальное расчетное время выполнения • Менеджер ресурсов базы данных может упреждающе оценивать время выполнения операции. • DBA предоставляется возможность задания на уровне группы потребителей максимального расчетного времени выполнения операции. • Операция не будет запущена, если оценка времени выполнения будет больше max_est_exec_time (ORA-07455). • Преимущество этой возможности - устранение чрезвычайно длительных заданий, использующих слишком много системных ресурсов. Й 1 й (Й i Й I 1 HI Ml «A ” w • По умолчанию значение равно unlimited. 1 | 13-18 Copyright © 2006, Oracle. Ail rights reserved. Максимальное расчетное время выполнения DBA в любой момент может определить максимальное расчетное время любой операции, задав в директиве ресурсного плана параметр MAX__ESTIMATED_EXEC__TIME. После установки этого параметра менеджер ресурсов базы данных начинает оценивать время выполнения любого задания. Если расчетная продолжительность операции превышает MAX_EST__EXEC__TIME, операция не начинается и возвращается ошибка ORA-07455. В результате запрещается выполнение чрезвычайно длительных заданий, использующих слишком много системных ресурсов. В случае, когда для одной группы потребителей ресурсов задано несколько директив плана с параметром MAX__EST__EXEC__TIME, действует наиболее ограничивающее из всех значений этого параметра. Оцениваемое расчетное время для данной операции основывается на статистиках, собранных для оптимизатора по стоимости. * ft w Oracle Database 10g: Administration Workshop II 13-18
Закладка 6 Конфигурирование переключения группы потребителей instance. cr~l et«de cam » P&saurce ~'1зп$ > Edit Resource Plan; SYSTEMJHAN Edit Resource Ran: SYSTEM_PLAN Actions : Create Like „Go) Logged -Г: As SYS .Show 5Ql) Revert J { Apply) en d »-4гг\ ( y, l озу r, Consumer Group Switching <ё ' ; Specify the maximum time that a session can execute in a consumer group before a selected action is taken To select the action taken, 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, specify whether to switch back at the end of the call 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 wheie the middle tier server is using session pooling. UNLIMITED ’UNLIMITED hack to ЙзЙ afe? 5. APPUSER LOWGROUP OTHER ^GROUPS ^UNLIMITED SYS_GROUP [иШЙТЕО [ Kill Tins Session i Cancel SQL ; Switch to Group APPUSER ; Switch to Group AUTOJASKJ.QNSUMERGROUP 3c ( > ,f » < j r Sg>- i и ' U'dc Й Switch to Group BATCH_GROUP = “..............................................." "г:::::::-:::::;:::::.....Sw=tch t0 Group DEFAULT_C ONSUMER„GROUP □ □ 13-19 . Switch to Group LOW_GROUP i Switch to Group OTHERJ3ROUPS ' Svvitc|'i to Grouy SYS GROUP SQL ) Revert) . Apply) ORACLE' Copyright © 2006, Oracle. All rights reserved. Конфигурирование переключения группы потребителей ЕМ Database Control Console предоставляет графический интерфейс для конфигурирования автоматического переключения группы. Такие действия можно выполнять, когда создается новый или редактируется существующий ресурсный план Oracle Database 10g: Administration Workshop II 13-19
Возврат в исходную группу потребителей при завершении вызова ORACLE Enterprise ёЗеойдег 10g Create Resource Flan ' >x: t >:>< .» »j _ '><,' ' ’</ л С«т*жм GrftupSwitxbmg Specify the rnsximum time that asussfon can execute in a consumer group before a selected sctienis-taken. To select the action faksh, you may chocseto: foil the session, otic cancel the сдает SQL operation, or to switch to another consumer group. If you choose to switch to another'consumer group, speedy whether to switch back at the end of the call by using ihs’swiieh. back to original group after call checkbox. Choosing to switch back to the original group after a call is useful for 34<&f applications where the middle tier eawer is using session pooling. DSS_GR0SP LONGRUN_GROUP OTHERJSRQUPS MH’"""* 1 ’ • ““ ЛмЙШ'ЕН ЙОО JNUMfTED luwMren Kill This Session Cancel SQL Switch to Group DEFAULTCONSUMER jSROUP Switch to Gro^t pSS' GfeQUF □ О : Switch to Group LXWJBROUP ; Switch to Group OTHERJSROUPS i Switch to Gnwp S¥S GRQUF Copyright © 2006, Oracle. All rights reserved. Возврат в исходную группу потребителей при завершении вызова Можно задать возврат сеанса в исходную группу потребителей при завершении вызова верхнего уровня (top call). Для этого необходимо отметить поле “Switch back to original group after call?” в окне Create Resource Plan или Edit Resource Plan. В результате сеанс будет возвращаться в группу, которой он принадлежал сразу после установления соединения. Вызов верхнего уровня определяется либо как обрабатываемый целиком блок PL/SQL, либо как команды SQL, передаваемые клиентом для выполнения при отдельном вызове. Параметр SWITCHJTIME_IN_CALL наиболее полезен при использовании пула сеансов на сервере промежуточного уровня. В этом случае на промежуточном уровне делается попытка использовать сеанс, установленный после одного пользовательского вызова для обработки вызова другого конечного пользователя. В результате границы обработки действительно совпадают с вызовами, и действия предыдущего конечного пользователя не должны оказывать влияния на следующего конечного пользователя. Oracle Database 10g: Administration Workshop II 13-20
13-21 Copyright © 2006, Oracle. All rights reserved. Возврат в исходную потребителей при завершении вызова (продолжение) Например, пусть менеджер ресурсов при подсоединении пользователя на основе его исходной группы потребителей (initial consumer group) размещает сеанс в группе DSS_GROUP. После этого пользователь выполняет запрос и параметр SWITCH_TIME__IN_CALL задает интервал времени (в секундах) перед переключением сеанса пользователя в группу, определяемую параметром SWITCH_GROUP. После завершения вызова верхнего уровня ресурсный менеджер автоматически переводит пользователя обратно в первоначальную группу потребителей. Примечание Невозможно задать в одной директиве оба параметра SWITCH_TIME_IN__CALL и SWITCH__TIME. Параметр SWITCH__TIME главным образом предназначен для клиент- серверных приложений. Oracle Database 10g: Administration Workshop II 13-21
Настройка тайм-аута 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 JPLAN_DIRECTIVE. Оба значения задаются в секундах. Директива MAX__IDLE__TIME определяет максимальное время в секундах, в течение которого сеанс может не выполняться или находиться в ожидании ввода-вывода. Если сеанс превышает заданное ограничение, фоновый процесс PMON принудительно завершает сеанс и и удаляет все его структуры. Также имеется возможность указать отдельное ограничение на время, в течение которого простаивающий сеанс блокирует другой сеанс. Для этого используется директива MAX_IDLEJB LOCKER „TIME, определяющая в секундах допустимое максимальное время блокирования простаивающим сеансом другого сеанса. Значение параметра времени простоя по умолчанию - NULL, что означает отсутствие ограничения. То же самое можно задать явно, установив значение UNLIMITED. Эти директивы предоставляют более дифференцированный контроль времени простоя по сравнению с профилями, в которых нельзя разделить блокирующие и неблокирующие сеансы. В приведенном выше примере процесс PMON принудительно завершает сеансы, которые простаивают более 600 секунд, а также сеансы, которые простаивают и блокируют другие сеансы дольше 300 секунд. PMON проверяет эти ограничения каждую минуту. При превышении одного из эти ограничений PMON принудительно завершает сеанс и очищает все его ресурсы. Oracle Database 10g: Administration Workshop II 13-22
Установление соответствия группам потребителей ресурсов Понятия Ресурсный план Группа потребителей Директивы плана > Установление соответствия Активация плана Мониторинг ORACXe' Enterprise Manager 10§ Carrtrtd r s । БР1 en > f - £»*. curce Consumer Group Mapping Genera; RkHtkx 4 Reorder the list of mappings to set priorities. Mappi 5b/ Attribute Mapping Resource Consumer Group Mapping General Oracle Uw Map Configure the Reseurce-Manegerie automatically assign consumer groups to sesdfons 1 SYS_GROUP SYSTEM SYS_GROUP IsyS’ . Add Artother Row^ Client pS User Map I Priorities ;Ssmce. Module. and Aaron : Sstwe and Module . Module and Action i Module i Sendee i Oracle Use? Client Prngram i Client OS User Client Machine ORACLE’ 13-23 Copyright © 2006, Grade. AH rights reserved. Установление соответствия группам потребителей ресурсов Ресурсный менеджер можно использовать для автоматического включения сеансов в определенные группы потребителей. Для этого необходимо настроить соответствие между атрибутами сеансов и группами потребителей. Дополнительно можно настроить приоритеты, на основе которых устанавливается соответствие в конфликтных ситуациях. Существует два типа атрибутов сеанса: атрибуты входа в систему (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 Prionties (ShowSQLj Revert) ...Apply) Configure the Resource Manager to automatically assign consumer groups to sessions by providing mappings between session attributes and consumer groups. Oracle User Map SrS„GRuUP Q [SYSJ3ROUP „Add Another Row J Client OS User Map Gmofr [No items found Add .Another Row J Client Program Map Sate ct Groep No items found Add Another Row) Oucle Шег ISYSi ~ [SYSTEM Ctterd Progtam Client Machine Map Seted&№»! . Ы G'retip Cltent MachhW No items found Add Another Row) Service Map Steteci Consumer Group No items found Add Another Row) Module Map (Select Соой»г (мой No items found ’ -Another Rew J Module and Action Map S etect Coiwo r?w r G г nop Module aotl Actteo No items found ..Add Another Row) Oracle Database 10g: Administration Workshop II 13-24
Активация ресурсного экземпляра oro/ff/ofo.fym > Resource Нэт Понятия Ресурсный план Группа потребителей Директивы плана Установление соответствия > Активация плана Мониторинг Logged й А? Search Name 8gg) ft» ПГ< йЯ ^CtBWfch ScHth or?0 ген ЙСЙ5«HflVe $4Й\'Ь. 4«Ж:и» <?W4 «:i 5Ш6Г< tftferis. ttte A*ll<J«?d f%S&r-. ?t« b-; md is mr<fs»s*bg Results Create Г BUGGS FLAN Г TOW PLAN .£ ЩТШЖЖЖё Г MAil.DE PLAN G МУРЕ PLAN <• SVSTSM PLAN - i^Xyj^X DeletejActom fegg^- Activate Create Like "...'"'.......... Deactivate Resrouce pto for the nuc. t Generate OBL Default Plan Нэп to internally quiesce system for mail delivery operations ACTIVE Pfenning for running the post office database Plan to give system sessions priority С^АГ-ue 13-25 Copyright © 2006, Oracle. AH rights reserved. Активация ресурсного плана для экземпляра Для управления ресурсными планами можно воспользоваться страницей Resource Plans инструментального средства Enterprise Manager. Чтобы сделать план активным, выберите требуемый план и значение Activate в выпадающем списке поля Actions, а затем щелкните на кнопке Go. В результате выбранный вами план становится текущим планом верхнего уровня для экземпляра. Использование параметра инициализации RESOURCEJMANAGER^PLAN Используемый экземпляром план может быть определен с помощью параметра инициализации базы данных 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
Информация менеджера ресурсов базы данных Имя представления Информация DBAJPSRCJPLANS планы и статус DBA_RSRC_PLAN_DIRECTIVES директивы планов DBA_RSRC_CONSUMER_GROVPS ; группы потребителей DBA_RSRC_CONSUMER_GROUP_PRIVS пользователи/роли DBA_RSRC_GROUP_MAPPINGS соответствие группам | потребителей DBA_RSRC_MAPPING_PRIORITY | Приоритеты соответствия DBAJJSERS I Столбец ; initial_rsrc_ i consuinerjgroup DBA_RSRCjMANAGER_SYSTEM_PRIVS I пользователи/роли от? ап се 13-26______________________________Copyright © 2006. Oracle. АН 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 li 13-26
Мониторинг менеджера ресурсов Понятия Ресурсный план Группа потребителей Директивы плана Установление соответствия Активация плана > Мониторинг £«•<«»> is.» ГЛ-йк<к?й1 13# АьлЦЫе Resource P^ns | iNTgRNAL_PLAf<( Elapsed Statistics Start Time (nut lesetj Besg* J ShOY/Eiapse.d Statistics. ^Aufwnjficailj {ЗЙ seit.Tj Resource Monitors Resource Monitors CPU Типе Consumed DAi J84 f >й О NiGHTri-j f OTHFR.SRvUF5?5%J Tote? CPU Wait Time Consumer Group Statistics &>t»t0t #» Gtvty | Д,^у< Su^ic; 4 trWhnit» ^4 J is('‘'j t ;><? CHi FmelywH CAt. 4 3 4 430435 143 ^?W «J jAAtL ........................................ 4 4.........535723....... 23............... 1633?.....iU СЖЛС JF 13-27 Copyright © 2006, Oracle. All rights reserved. f i .1 I Мониторинг менеджера ресурсов Вы можете выполнять мониторинг функционирования менеджера ресурсов базы данных на уровне сеансов. Эта возможность интегрирована с автоматическим диагностическим монитором базы данных (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: представление, содержащее статистики для всех активных групп >C>f?ACl-g: 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
Мониторинг ресурсного менеджера (продолжение) • асtiversessions: количество одновременных активных сеансов этой группы потребителей » execution^waiters: число активных сеансов, ожидающих квант времени • requests: кумулятивное число запросов (requests), которые были выполнены для этой группы потребителей • cpu_wait_time: кумулятивное время ожидания сеансами ресурсов CPU . consumed_cpu_time: кумулятивное время CPU, потребленное всеми сеансами Нет представлений, которые непосредственно показывают очередь пула сеансов. Однако некоторая информация может быть получена из следующих представлений. * V$SESSION: столбец current queue_durltion показывает время пребывания в очереди;, значение равно 0 (нулю), если сеанс в настоящее время не находится в очереди . V$RSRC_CONSUMERjGROUP: столбец queue_length показывает для группы потребителей количество сеансов, находящихся в текущий момент времени в очереди Oracle Database 10g: Administration Workshop II 13-29
Итоги • Конфигурирование менеджера ресурсов базы данных • Доступ к ресурсным планам и их создание • Создание групп потребителей • Задание директив распределения ресурсов по группам потребителей • Установка соответствия групп потребителей планам • Активация ресурсного плана • Мониторинг ресурсного менеджера 13-30 Copyright © 2006, Oracle. АН rights reserved. * ‘t СЛч', Oracle Database 10g: Administration Workshop II 13-30
Обзор практического занятия: использование менеджера ресурсов • Создание групп потребителей ресурсов • Задание директив распределения ресурсов CPU по группам потребителей • Связывание пользователей с группами потребителей ресурсов , • Активация ресурсного плана • Тестирование в SQL*Plus ♦ Деактивация ресурсного плана 13-31 Copyright © 2006, Oracle. Ail nghts reserved. Oracle Database 10 g: Administration Workshop II 13-31

Автоматизация выполнения задач с помощью планировщика
1 Рассматриваемые вопросы Осн. компоненты & шаги Расписания Цепочки заданий Расш.понятия * Упрощение управления задачами с помощью планировщика • Создание задания, программы и расписания • Мониторинг выполнения заданий * Использование расписаний, основанных на времени или событиях, для выполнения заданий планировщика • Использование цепочек заданий для выполнения последовательности связанных задач • Использование дополнительных понятий планировщика для установления приоритетов заданий Упрощение управления задачами выполнение ряда1 завершающих месяц задач в последний день . каждого месяца . Выполнение процедуры исключения из очереди после постановки сообщения в очередь Репликация табличных данных путем обновления материализованных представлений Copyright © 2006, Oracle. Alt rights reserved. ORACXe Рассматриваемые вопросы Дополнительные сведения о различных компонентах планировщика {Scheduler) и взаимосвязях между ними см. в документе Oracle Database Administrator's Guide, Подробную информацию о пакете DBMSJSCHEDULER см. в документе Oracle Database PL/SQL Packages and Types Reference. Ежедневное выполнение задания по резервированию базы данных Запуск пакетной загрузки сразу после получения файла в файловой системе /—Г-------------\ Подсчет статистик таблиц и индексов дважды в день к____ _______J Генерация ежечасного отчета о попытках ошибочного доступа к серверу Перестройка индекса после завершения текущих изменений Copyright © 2006, Oracle. All rights reserved. Упрощение управления задачами Возможности планирования заданий необходимы при использовании многих функций базы данных. Планировать и периодически выполнять задания требуется в ходе повседневного сопровождения базы данных, а также для поддержания логической схемы приложений. В Ъизнес-приложениях {business-to-business В2В) требуется планировать соответствующие бизнес-события. Администраторы баз данных вынуждены планировать задачи сопровождения, регулярно выполняемые в определенных “временных окнах” {time windows). База данных Oracle 10g предоставляет расширенные возможности решения таких задач с помошыо планировщика {Scheduler), доступ к которому производится с помощью функций и процедур пакета DBMS__ SCHEDULER. Планировщик может оыть вызван в любой среде SQL или с помощью Enterprise Manager. Использование планировщика позволяет администраторам базы данных и разработчикам приложений управлять временем и местом выполнения различных задач в среде базы данных. Эти задачи могут быть длительными и сложными, поэтому планировщик помогает их планировать и упрощает управление. Задания планировщика могут быть запущены на основе времени или в случае возникновения определенного события. Планировщик также может вызвать появление событий при изменении статуса задания (например, с RUNNING на COMPLETE). Кроме того, для получения объединенного объекта можно использовать именованную последовательность программ, связанных друг с другом. Oracle Database 10g: Administration Workshop II 14-3 Oracle Database 10g: Administration Workshop II 14-2
Простое задание Задание (job) имеет два основных компонента: действие (“что” необходимо выполнить) и расписание (“когда” выполнить). В Enterprise Manager “ЧТО” описывается в области Command, представленной на слайде. Действие отображается в параметрах job__type и job_action пакета dbmS—scheduler. BEGIN sys. dbmS—scheduler. create_j ob ( j ob_name => ’ "HR” . "CREATE—LOG_T ABLE—JOB" 1 f j ob—type =>r"“11 BLSOl__BLoCK* f j ob—action ->’begin ~ execute immediate (’’create table session__history( snap_time TIMESTAMP WITH LOCAL TIME ZONE, _____num sessions NUMBER) * ’ ) ; end; ’ f_____.____________________ start__date ~> systimestamp at time zone ’America/New_York’f job^class =>’DEFAULT_JOB-CLASS’, comments => ’Create the SESSION—HISTORY table’, autO-drop => FALSE, enabled -> TRUE); END; В задании также определяется, “КОГДА” требуемое действие следует выполнить. “КОГДА” выражается с помощью “расписания” (“schedule”), которое может основываться на времени (см. параметр start -date) или событиях, а также может зависеть от выходных результатов других заданий. Эти параметры рассматриваются далее в этом уроке. Oracle Database 10g: Administration Workshop II 144
Шаги использования основных компонентов Для упрощения управления задачами с помощью планировщика выполняйте следующие шаги: 1. Создание программы. 2. Создание и использование расписания. 3. Создание и передача на выполнение задания. 4. Мониторинг задания. Copyright © 2006, Oracte. Aft rights reserved. Шаги использования основных компонентов Планировщик предоставляет модульный подход решения задач в базе данных Oracle. Разбиение задач на такие компоненты, как время, месторасположение и объект базы данных, обеспечиваемое планировщиком, позволяет упростить управление средой базы данных. Планировщик использует зри основных компонента: • Задание (job) определяет, что необходимо выполнить и когда. Например, “что” может быть процедурой PL/SQL, выполняемым в ОС двоичным модулем (native binary executable), Java-приложением и скриптом командного интерпретатора. Программа (“что”) и расписание (“когда”) могут быть частью определения задания. Кроме того, можно использовать программу и расписание, которые существуют отдельно. Использование аргументов задания позволяет настроить его выполнение. • Расписание (schedule) определяет, когда и как часто выполняется работа. Расписание для задания можно задать в виде последовательности дат. в виде события или комбинации этих двух методов с указанием дополнительных спецификаций, обозначающих повторяющиеся интервалы. Расписание может храниться отдельно и использоваться для многих заданий. • Программа (program) - совокупность метаданных о конкретном выполняемом модуле, скрипте или процедуре. Автоматизированное задание содержит некоторую задачу. Использование программы позволяет изменить задачу или “что необходимо сделать” без изменения самого задания. Для программы могут быть определены аргументы, с помощью которых пользователи влияют на режим ее работы. Oracle Database 10g: Administration Workshop II 14-5
Copyright © 2006, Oracle. AH 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 1 ш
2. Создание и использование расписаний 'й '• ". ' > й<* С" ' Create Schedule : it: Create Schedule •4ShW S-CQ: Cancel^ x 9*0 • Name [ * Dm®» ....Г ....." Description | Schedule Time Zcne |America<Lcs_*.r>«efes Schedule Type | Standard Repeating Repeat | Dy Hours *] Intervet iHcurr) p Available to Statt & Immediately Later Date рЕО56Г~ :>>.ЛК(?е Al:S,ZU,:.’l Гапе [б ^pQ Г' рм hist Avaibble After * Me End Date Specified End Date BEGIN DBMS_SCHEDULER. CREATEJSCHEDULE ( schedulejaame ’stats_scheduleT, s tartrate SYSTIMESTAMP, endbdate «Ф SYSTIMESTAMP 4- 30, repeaipto^rval==> —«—» ? ' ^EQ-HOURLY; INTERVAL—1* , comments -> ’Every hour’)# END; A i Copyright © 2006, Oracle. All rights reserved. 2« Создание и использование расписаний Использование расписания вместо времени выполнения, задаваемого при определении задания, позволяет управлять многими заданиями без необходимости изменения их определений. После изменения расписания каждое использующее его задание автоматически начинает применять обновленное расписание. Для создания расписания используется PL/SQL-процедура CREATE_SCHEDULE пакета DBMS JS СНЕ DULER. Параметр start__date отражает дату, начиная с которой расписание становится активным. В расписании нельзя ссылаться на более раннюю, чем указано в этом параметре, дату. Расписание не действует после даты, определяемой в параметре end__date. Для планирования повторяющегося выполнения применяется календарное выражение, определяемое в параметре repeat__interval.Ono используется для генерации следующей планируемой даты выполнения. В расписание не попадают даты позднее заданной параметром end_date. В представленном выше примере создается расписание STATS__SCHEDULE, задающее повторяющийся четырехдневный интервал, начинающийся сейчас и продолжающийся 30 дней.. Для создания расписания можно использовать ЕМ, как это показано на слайде. Oracle Database 10g: Administration Workshop II 14-7
3. Создание и выполнение задания Create Job Show SQL-) (Cancel) CK) General Options * Marne ^LOG^SESStCNSJOB Owner [HR Enabled S Yes О No Description iCuunt sessions with HR.LOG_SESS„COUNT_PRGM Logging Level [Ущ...............j Saedfv requsrernnta lor -Bf- inb Job Class DEFAULf_jbE_CLASS j Create job Class) Auto Drop FALSE Ц Specie." whel?»r the job rtioJu be dropped з?Ш comptelbn Restart able [ FALSE: у = Specify «.tether U«= job can oe r©darte« cr in the event or tsilere Command Select the command type for the job, then enter the command requirements. Command Type Program ^Change Command Type) Program Name HR.LOG SESS„COOHT PRGM ’ AC_ L_t: Copyright © 2006, Oracle. All rights reserved. J 3, Создание и выполнение задания Задание - это объединение расписания и того, что следует сделать, вместе с дополнительными аргументами, определенными в задании. Программа или “Команда” (область “Command” в ЕМ) может быть предварительно созданной программой на PL/SQL или Java, анонимным блоком PL/SQL или исполняемым модулем, запускаемым в командной строке операционной системы. Расписание задания может быть предопределенным (созданным процедурой DBMS_SCHDULER. CREATE__SCHEDULE) или же оно может быть описано непосредственно как часть создаваемого задания. В расписании указываются атрибуты, определяющие, когда выполняется задание, например: • Время начала и окончания задания, задающие момент начала использования задания и момент, после которого задание больше не пригодно для использования и нельзя запланировать его выполнение. ♦ Выражение, определяющее интервал повторения задания . • Сложное расписание, созданное путем объединения существующих расписаний. • Условие или изменение состояния, называемое событием, которое должно возникнуть перед запуском задания. Существует много атрибутов, которые вы можете задать для задания. Атрибуты управляют тем, как выполняется задание. Чтобы выполнить задание в Enterprise Manager выберите Administration > Jobs. Oracle Database 10g: Administration Workshop il 14-8
Copyright © 2006, Oracle. AH rights reserved. । 'Ш Й b"> 4. Мониторинг задания Представление DBA_ SCHEDULER__JOB__RUN__DETAILS выводит одну строку для каждого экземпляра задания. Каждая строка содержит информацию о выполнении одного экземпляра задания. В представлении [ DBA| ALL]_SCHEDULER_JOB_RUN__DETAILS содержатся следующие столбцы: • LOG_ID; уникальный идентификатор журнального входа (записи); LOGJDATE; временная метка журнального входа; • OWNER; владелец задания; • JOBJNAME; имя задания; • STATUS; статус выполнения задания; • ERROR#; первоначальное количество ошибок; • REQ^STARTJDATE; время, на которое был запланирован запуск задания; • ACTUAL_START_DATE; время, когда на самом деле было запущено задание; • RUN__DURATION; продолжительность выполнения задания; • INSTANCE^ID; экземпляр, в котором выполняется задание; • SESSION^ID; сеанс, в котором выполняется задание; • SLAVE_JPID; идентификатор (PID) подчиненного процесса, используемого при выполнении задания; ’ CPU_USED; объем использование ЦП при выполнении задания; • ADDITIONAL^INFO; дополнительная информация о выполнении задания. Oracle Database 10g: Administration Workshop li 14-9
Использовании расписания, основанного на времени или событиях Осн, компоненты & шаги > Расписания Цепочки заданий Расш.понятия iORACUE- . - Copyright © 2006, Oracle. All rights reserved.j Использовании расписания, основанного на времени или событиях При определении задания, расписание выполнения которого основывается на времени (time-based), можно задать либо календарное выражение, либо выражение с датой и временем Когда используются календарные выражения, время следующего запуска задания подсчитывается на основе интервала повторения и даты старта (start date) задания. Когда используются выражения с датами и временем, задаваемое выражение определяет следующий момент времени, в который должно быть запущено задание. Если интервал повторения не указывается, задание выполняется только один раз во время, указанное в дате старта. Если в задании используется расписание, основанное на событиях (event-based schedule), задание выполняется при срабатывании события. На высоком уровне событие может быть представлено как изменение состояния. Событие происходит, когда логическое условие меняет свое состояние с FALSE на TRUE или с TRUE на FALSE. Планировщик (Scheduler) использует Oracle Streams Advanced Queuing (AQ) для возбуждения и удаления событий. Примечание: планировщик не гарантирует выполнение задания в точное время, так как система может быть перегружена, в результате чего могут быть недоступны ресурсы. Oracle Database 10g: Administration Workshop II 14-10
Создание задания, выполнение которого основано на времени J Пример: Создание задания, в котором вызывается скрипт для выполнения ежедневного резервирования, начинающегося в 23:00. BEGIN ” DBMS_SCHEDULER. CREATE_JOB ( ’ job_name=>’HR.DO_BACKUP’, job_type => 'EXECUTABLE', j objection => ’/home/usr/dba/rman/nightlyjtncr.shS s tart_date=> SYSDATE, rep^at_interval«>* FREQ==DAILY ;BYHOUR«231 , /* next night at 11:00 ЙЙ */ comments -> fNightly incremental backups’); END; Copyright © 2006, Oracle. AH rights reserved. Создание задания, выполнение которого основано на времени Для создания задания используйте процедуру CREATE_JOB пакета DBMS__SCHEDULER. По умолчанию задания создаются отключенными. Чтобы сделать их активными и запланировать их выполнение, необходимо задания явно включить. Имена всех заданий имеют вид: [ схема . ] имя. Для задания времени следует использовать функцию SYSTIMESTAMP и указывать временную зону. Тогда при переходе на летнее время автоматически регулируются моменты начала выполнения задания. По умолчанию задание создается в текущей схеме. Можно создать задание в другой схеме, как это показано в примере на слайде. Поэтому создатель задания не всегда является его владельцем. Владелец задания ~ это пользователь, в схеме которого создано задание, в то время как создатель задания - это тот, кто создал это задание. Задания выполняются с правами владельца. Параметры среды, относящиеся к национальной языковой поддержке {National Language Support - NLS) такие же, какими они были в момент создания задания. Парамезр job_ type отражает тип задачи, решаемой заданием. Его возможные знач ения следующие: • PLSQL_BLOCK (анонимный блок PL/SQL); • STOREDJPROCEDURE (именованная процедура PL/SQL, Java или внешняя процедура); * EXECUTABLE (команда, которая может быть выполнена в командной строке). Oracle Database 10g: Administration Workshop II 14-11
Создание задания, выполнение которого основано на времени (продолжение) Параметр job action - это либо имя процедуры, которую необходимо выполнить, либо имя скрипта или команды операционной системы, либо код анонимного блока PL/SQL. Значение параметра job act ion зависит от параметра jobtype. В примере на слайде в параметре job_type задано значение EXECUTABLE, в j objection ~ полное имя, включающее путь (его формат зависит от ОС), для внешнего исполняемого модуля плюс необязательные аргументы командной строки. Внешнее задание - это задание, выполняемое вне базы данных. Все внешние задания выполняются гостевым пользователем, имеющим небольшие привилегии, определенные администратором базы данных при конфигурировании поддержки внешних заданий. Так как исполняемый модуль запускается гостевым пользователем с малыми привилегиями, вам следует убедиться в том, что этот пользователь имеет доступ к необходимым файлам и ресурсам. Большинство, но не все платформы поддерживают внешние задания. Для платформ, не поддерживающих внешние задания, при создании или указании атрибута задания или программы с типом EXECUTABLE, возвращается ошибка. Дополнительную информацию о конфигурировании среды выполнения внешних программ с помощью планировщика можно получить в документации для базы данных Oracle, относящейся к конкретной платформе. Примеры таких документов: • Oracle Database Platform Guide 10g for Windows • Oracle Database Ins tallation Guide for UNIX Systems • Oracle Database Release Notes 10gfor AlX-Based Systems 9 Oracle Database Release Notes 10gfor hp HP-UX РА-RISC (64-bit * Й JIB W 'И " — I Oracle Database 10g: Administration Workshop II 14-12
Создание расписания, основанного на событиях Для создания задания, выполняемого на основе событий, необходимо указать: • Спецификацию очереди (в которую приложение помещает сообщения для запуска задания) • Условие срабатывания (синтаксис такой же, как и в условиях правил Oracle Streams AQ); задание запускается, когда условие верно(TRUE) Приложение Событие ADT (Abstract Data Type) С—A^L-^2 ./л - . <=* * -*Ж' /• - ... 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 Zens :America/New_York | Schedule Type jEvent J Event Parameters * Queue Name SYS.ALERT_QUE -Change Queue) * Agent Name ADMIIM_AGNT1~ * Condition =tab.user_data.event_type = "DiSkJ^ULL" ’ Ж I Hl I» । re Й j re - Wt»" Й; J Copyright © 2006, Oracle All rights reserved. ORACLE Создание расписаний, основанных на событиях, с помощью ЕМ На странице 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. w •T B Oracle Database 10g: Administration Workshop II 14-14
Создание задания, основанного на событиях Пример: создание задания, выполняющегося, когда в файловой системе до 9:00 утра происходит получение файла для пакетной загрузки данных. BEGIN DBMS_SCHEDULER.CREATE_JOB( job_naine=>'ADMIN. PERFORM_DATA_LOAD' , job_type => 1 EXECUTABLE ’ , job_action «=> ' /home/usr/dba/rman/report_failure. sh ’, .start date => SYSTIMESTAMP,________________________ event_condition ==> ’ tab.user_data,object_owner = ’’HR’1 and tab.user_data.objectjname - ’’DATA.TXT’’ and tab.user_data.event_type ® ’ ’ FIIZEJARRIVAL ’ ’ and tab.user^data.event_timestamp < 9 queue spec ~> ’HR.LOAD JOB EVENT Q’); Copyright © 2006, Oracle. All rights reserved. Создание задания, основанного на событиях Для задания информации о событиях в атрибутах задания используется альтернативный синтаксис процедуры CREATE__JOB, который включает атрибуты queue__spec и event__condition. Задание может содержать информацию о событиях, указанную в строках (in-line) атрибутов задания. Другой способ - задать такую же информацию с помощью ссылки на расписание, использующее события. В примере на слайде расписание, основанное на событиях, задается в строковом виде (in-line). Задание, показанное на слайде, запускается, когда на уровне операционной системы до 9:00 утра происходит получение файла. Предполагается, что для обработки сообщения используется объект с четырьмя атрибутами:оЬдесЕ-Сжпег, ob ject_name, event__type и event__timestamp. Дополнительные сведения о том, как создаются очереди и функционирует механизм очередей сообщений см. в документе Oracle Streams Advanced Queuing User’s Guide and Reference. Oracle Database 10g: Administration Workshop II 14-15
Составление расписаний, основанных на событиях Типы событий: • Пользовательские события или события, генерируемые приложением • События, генерируемые планировщиком События, возбуждаемые заданиями планировщика: • JOB_START • JOB_SCH_LIM_REACHED • JOB_SUCCEEDED • JOBJ3ISABLED • JOBJEMLED • JOBJCHAIN_STALLED • JOBJBROKEN • JOBJVLL^EVENTS - JOB_COMPLETED • JOB_RUN_COMFLETED * JOBJSTOPPED Пример возбуждения события: DBMS^SCREDULER. SET^ATTRIBUTE (’ hr /dblaackiip » /"""~“ t «raisejBvents\ DBMS^SCHEDULER. JOB^FAIEED) ; ORACLE Copyright © 2006, Oracle. All rights reserved. ___ _____I Составление расписаний, основанных на событиях Можно создать задание, использующее в качестве механизма запуска ссылку на событие вместо расписания. Существует два типа событий: • Пользовательские события или события, генерируемые приложением (user- or application-generated events); приложение может возбудить событие, которое обрабатывается планировщиком, запускающим задание. Примеры таких событий: завершилось выполнение задания; в файловой системе был принял поступивший файл; в базе данных была заблокирована учетная запись пользователя; уровень запасов на складе достиг минимального порогового значения. • События, генерируемые планировщиком (scheduler-generated events); планировщик может возбудить событие, отражающее изменение его состояния, Например, планировщик может возбудить событие, когда стартует задание, когда оно завершается, когда выполнение задания превышает выделенное время и т.д. Потребителем события выступает приложение, выполняющее в ответ на событие некоторое действие. Вы можете сконфигурировать задание таким образом, чтобы планировщик возбуждал событие при изменении состояния задания. Для этого используется атрибут raise__events. По умолчанию задание не возбуждает никаких событий при изменении состояния до тех пор, пока вы не измените для задания атрибут raise__events. Чтобы произвести изменение этого атрибута, необходимо сначала создать задание с помощью процедуры CREATE^JOB. Затем следует, используя процедуру SET__ATTRIBUTE, модифицировать значение по умолчанию для этого атрибута. В примере на слайде показывается изменение задания hr. do__backup, определяющее, что в случае аварийного завершения задания возбуждается событие. Oracle Database 10g: Administration Workshop II 14-16
Составление расписаний, основанных на событиях (продолжение) После включения возможности возникновения событий при изменении состояния задания планировщик возбуждает такие события, используя механизм очередей сообщений. Для возбуждения события сообщение помещается в действующую по умолчанию очередь событий SYS . SCHEDULER?—EVENT—QUEUE. Данная стандартная очередь событий планировщика это защищенная очередь {secure queue). В зависимости от приложения, возможно, вам придется выполнить конфигурирование очереди, что позволит определенным пользователям производить операции над ней. Сведения о защищенных очередях см. в документе Oracle Streams Concepts and Administration. Стандартная очередь событий планировщика предназначена для событии, генерируемых планировщиком. Oracle не рекомендует использовать эту очередь для пользовательских приложений или определяемых пользователем событий. Тип события Описание JOB-START Задание было запущено. JOBJSUCCEEDED Задание успешно завершилось. JOB-FAILED Задание было прервано аварийно либо после возбуждения ошибки, либо в результате ненормального завершения. JOB_BROKEN Задание отключено и его состояние изменено на BROKEN, так было превышено количество аварийных завершений, заданных атрибутом задания MAX_FAILURES. JOB-COMPLETED Статус задание COMPLETED, так как было достигнуто установленное значение атрибутов MAX-RUNS или END DATE. JOB_STOPPED Задание было остановлено в результате вызова процедуры STOP-JOB. JOB__SCH_-LIM__REACHED Достигнуто ограничение для расписания задания. Задание не запускается, так как задержка запуска превысила значение атрибута SCHEDULE LIMIT. JOB__DISABLED Задание отключено планировщиком или после вызова процедуры SET-ATTRIBUTE. JOB-CHA I N_S TALLE D Задание, выполняющее цепочку, переведено в состояние CHAIN—STALLED. Выполняемая цепочка переводится в остановленное состояние, когда нет выполняющихся или запланированных шагов, а также когда в параметре цепочки EVALUATI ON—INTERVAL установлено неопределенное значение (NULL). Цепочка находится в ожидании ручного вмешательства. JOB-ALL-EVENTS JOB—ALL—EVENTS - это не событие, а константа, предоставляющая простой способ включения всех событий. JOB_RUN-COMPLETED Выполнение задания завершилось. Оно завершилось аварийно, успешно или было остановлено. Oracle Database 10g: Administration Workshop II 14-17
Создание сложных расписаний [Copyright © 2006, Grade. АН rights reserved. ORACUC Создание сложных расписаний Расписание (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 II 1448
Создание цепочек заданий Осн. компоненты & шаги Расписания > Цепочки заданий Расш. понятия 1. Создание объекта цепочки. 2. Определение шагов цепочки. 3. Определение правил цепочки. 4. Запуск цепочки: , - Включение цепочки. < - Создание задания, указывающего на цепочку. А...................... Л Цепочка заданий к“'“".""Т- । । Задание Copyright © 2006, Oracle. Ай rights reserved. 1Ж/ Создание цепочек заданий Цепочка (chain) - именованная последовательность программ, создаваемая с целью соединения программ между собой. Использование цепочек также называют “зависимым планированием” (“dependency scheduling”). Пример цепочки: Выполнить программу А, а затем программу В; программу С выполнить только в том случае, если программы А и В успешно завершились, иначе выполнить программу D. Каждая позиция внутри цепочки связанных между собой программ называется шагом. Для создания и использования цепочки следует выполнить приведенные ниже действия. Все указываемые процедуры входят в пакет DBMS_JSCHEDULER, если только иное не указано отдельно. 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. Создание объекта цепочки Create Chain * Name ^BUU<T6aD_DATa” * Owner pHP Enabled C yes # №. bf'sei.pticn |L.:>ad data horn fils* * and mti sports Steps |lcad_dataje>4 П |do_buikjoad Г* (ebuildjndx П punjeports |siopC4^ri_disk ^11_е'Л ^даа 5 StepsX 1 " 2 ’ 3 ~ 4 ‘ 5 (program 3 (PROGRAM.... 5 |5иёснмГ”~У*“~~3 :[evenFschedule“3 ; , л; Р^ТСеЗ^р^аСмнт^' [hrloadIdataIprog pR REBUILD JNDEXES |hr”genJeports |HR D!SK_FULL_EVr_SCHED Rules ORAM Copyright © 2006; Oracle. All rights reserved. 1. Создание объекта цепочки На странице Administration выберите ссылку Chains в секции Scheduler. На странице Scheduler Chains можно создать или отредактировать цепочку заданий. При создании цепочки на странице Create Chain необходимо ввести имя и владельца цепочки заданий. Кроме того, можно включить или оставить отключенной новую создаваемую цепочку заданий. Цепочку можно будет включить и позднее. Пример кода PL/SQL: DBMS^SCHEDULER. CREATE__CHAIN ( chain_nanie -> ’bulk__load__chain ’ , rule__set_name -> NULL, evaluation ^interval => NULL, comments => ’Load data and run reports1); Шаги цепочки можно вводить по одному после присвоения имени цепочки заданий, а также необязательного заполнения поля описания. Для цепочки заданий можно создать шаги следующих типов: • шаг, выполняющий программу (PROGRAM); * шаг, выполняющий другую пеночку заданий (SUBCHAIN); • шаг, использующий хранимое расписание, основанное на событиях (EVENT__SCHEDULE) В ходе одного шага может быть выполнена только одна программа. Каждый шаг в цепочке должен быть определен перед тем, как цепочка может быть включена и использована. Oracle Database 10g: Administration Workshop II 14-22
Й *'-•» им 2. Определение шагов цепочки DBMS_SCHEDULER.DEFINE_CHAIN_EVENT_STEP ( chain_name => 'bulk_load_chain', step__name 'load_data_evt’, •vent_condition => 'tab.user_data.object_owner = ’’HR1' and tab.user_data.object_name = ''DATA.TXT'’ and tab.user_data.event_type = ’'•Fll^ARRiVAf1 ’ , ' '* queue_spec => ' HR. LOAD_ JOB_EVENT_Q * ) ;, D0MS_SCHEE)bbER.DEFINE_CHAIN_STE₽ ( chain_name => 'bulk_load_chain', step_naxne => 'do_bulk_load’, program_name => 'hr.load_data_prog); DBMS JSCHEDULER. DEFINEJ=HAIN_STE₽ ( chain_name => 'bulk_load__chain', •ptep_name => 'rebuxld_xndx', program_name ®> 'hr.rebuild_indexes') ... i'ur' ......i.и,..,. .... ’ Copyright © 2006, Oracle. АН rights reserved. 2. Определение шагов цепочки L На шаге load__data_evt используется расписание, основанное на событиях. Шаг load_data__evt ждет появления в очереди-HR. LOAD__JOB__EVENT__Q сообщения о событие FILE__ARRIVAL. Это событие уведомляет планировщик о том, что в файловую систему поступил файл DATA. TXT. Так как аргумент queue_spec не содержит имя агента, задаваемая очередь не является защищенной очередью. 2. Шаг do_Jbulk__load выполняет массовую загрузку данных в таблицы схем. 3. На шаге rebuild__indx перестраиваются индексы для таблиц после загрузки данных. 4. На шаге run__reports выполняется формирование отчета о новых данных. HR. GEN_REPORTS - это другая цепочка заданий. DBMS__SCHEDULER. DEFINE__CHAIN__STEP ( chain__name => 'bulk__load_chain ’, step_name => ’ run__reports ’, program__name => ’ hr. gen__reports ’) ; 5. Шаг stop__when__disk___full__evt завершает цепочку выполнения, когда происходит переполнение диска на уровне системы. DBMSJSCHEDULER. DEFINE_CHAIN_EVENT__STEP ( chain___name => ’bulk__load__chain ’ t Stephanie ==> ’ stop__when__disk__full_evt ’ event__schedule__name ==> ’disk__full__sched’) Oracle Database 10g: Administration Workshop II 14«23
Rules 3. Определение правил цепочки Selves Hamp Sy stem_AssignedJ 1-1 START Icadjhta, «4. i:stGp..v4)en..cisk_Hll...e4 <Add} . EairJ Deiere ) " I Start the chain, by waiting tot the file to arrive О Sygtem_AssigH8fl_2 '!oad_d3ta_e4. COMPLETED-'TRUE" Г SystemAssigned„3 • do Julkjsed STATE-WCCEEDED" C Systern_Assigned„4 rebuifdjdnx.COMPLETED-"TRUE" r System_Assignsd_6 .recatejstats.STATE-"SUCCEEDED'’ START' dqjsull- ...load START rsbuiHJridK START recale ...stats START гип_герогН Systern_Assfgnedj6 .tecalc_stats.STATE I- •SUCCEEDED” END 10 r System_Assigned„7 .siop_when_disk Jull. COMPLETED-’TRUE“iEND 99 r Sy5tem_A$5igned_8 tunjeparts.STATE-'bUCCEEDED" END recaic stats after indexes re-built Start generating reports ONLY if stat s recalculated Exit chain (1 Or if stats recalc falls Exit chain i'99i if disk full Exit normaily when successful Evaluation Interval (minutes') | Copyright © 2006, Oracle. AH rights reserved. з. Определение правил цепочки После задания шагов цепочки можно создать правила для цепочки заданий. Правила цепочки указывают, когда выполняются шаги, а также определяют зависимости между шагами. Каждое правило содержит условие и действие. Когда обрабатываемое условие верно (TRUE), действие выполняется. Условие может также содержать синтаксические конструкции цепочки планировщика. Чтобы создать правило в ЕМ, щелкните на кнопке Add в секции Rules. При вводе условий для правил символьные строки должны заключаться в одинарные кавычки. GUI-интерфейс автоматически производит преобразования (escapes) для одинарных кавычек, когда это необходимо, при выполнении команд. Пример кода PL/SQL DBMS__SCHEDULER. DEFINE__CHAIN__RULE ( chain___name => fbulk__load__chain ’ f condition => ’TRUE, action ~> ’START load data_evt f stop_when_disk__f ull_evt ’ , rule__name -> ’ dataload__rulel ’, comments ’start the chain’); Примечание: пример кода PL/SQL отличается от полученного в ЕМ. В нем задается пользовательское имя правила, в то время как в примере с использованием ЕМ показывается имя, сгенерированное по умолчанию. Oracle Database 10g: Administration Workshop II 14-24
4. Запуск цепочки BEGIN DBMS_SCHEDULER, ENABLE (1 bulk_load_chain *) i END; / BEGIN DBMS_SCHEDULER.CREATE_JOB ( job name => ’bulk load chain job'f jpb^type —> ?CHAIN’ job_action => ’bulk_load_chain‘ f repeatjlnterval => ’freq^daily;byhour-7; byminute»5;bysecbnd-0 * f tlabled -> true). ) Copyright © 2006, Oracle. All rights reserved. 4. Запуск цепочки После завершения создания и внесения изменений в цепочку заданий вы можете включить эту цепочку с помощью процедуры ENABLE. Для выполнения цепочки необходимо создать задание с параметром job__type, имеющем значение ’ CHAIN'. В качестве действия должно быть указано имя цепочки заданий. Остальные параметры определяются также, как и для других типов заданий. Oracle Database 10g: Administration Workshop II 14-25
Мониторинг цепочек заданий Scheduler Chains one Refreshed LLh 212116 ?:3$:2Й ДГ4 . Refresh :sCreate|Gb Using Ch^nX.^O Qgatg MteJ-: Gw GSN REPORTS HR __Ijj£o®8i0 8 jFALSE BULK LOAD DKFAjHR FALSE ^Generate reports based on HR data Load data from fils and run reports Rei&ted Links Global Attributes Programs Windows Jeb Classes Schedules Jobs WindOr, Ips Abb | USER]_SCHEDULER_CHAINS [DBA [DBA | ALL I USER]_SCHEDULER_CHAIN_RULES [DBA [DBA ALL I USER]_SCHEDULER_CHAIN_STEPS ALL } USER]SCHEDULERJRUl!miNGjCHAINS I 7 6 5 .v- Copyright © 2006, Oracle. All rights reserved. Мониторинг цепочек заданий Представление ALL_SCHEDULER_CHAINS содержит информацию: владелец и имя цепочки, владелец и имя набора правил, количество правил; количество шагов; включена ли цепочка или нет; использует или не использует цепочка интервал для оценки условий правил; использует или не использует цепочка набор определенных пользователем правил. Представление ALL__SCHEDULER__CHAIN__RULES содержит информацию: владелец и имя цепочки, для которой было определено правило; владелец и имя правила; условие и действие, которое должно быть выполнено, когда условие верно (TRUE). Представление ALL__SCHEDULER__CHAIN__STEPS отображает следующие сведения: владелец и имя цепочки, для которой был создан шаг; имя шага; владелец и имя программы; следует ли пропускать шаг или нет; следует ли делать паузу или же нет по завершению шага. Представление ALL__SCHEDULER__RUNNING__CHAINS выводит следующую информацию: владелец и имя цепочки; владелец и имя задания, указывающего на цепочку; наименования шагов цепочки и их текущее состояние; ошибки, зафиксированные на шаге цепочки; время, в которое стартовал и завершился шаг задания; как долго выполнялся шаг; имя задания, исполняющего шах, если он сейчас выполняется. Oracle Database 10$: Administration Workshop II 14*26
Дополнительные понятия планировщика Осн. компоненты & шаги Расписания Цепочки заданий Расш.понятия я ж. Цепочка заданий —------ Ресурсный ; | план ' | Группа окон _ 1... Окно Программа Задание Аргументы Время Событие Аргументы Группа потребителей ресурсов Класс заданий Расписание Copyright © 2006, Oracle. Al! rights reserved. I Дополнительные понятия планировщика Дополнительные объекты обеспечивают расширенные возможности управления различными аспектами расписания, например, определяют приоритеты заданий. Ниже кратко описаны такие компоненты, на последующих слайдах они рассматриваются более подробно. • Окно (window) отражает интервал времени с четко очерченными границами начала и завершения. Оно используется для активизации различных ресурсных планов в различное время. Окна позволяют изменять распределение ресурсов в определенные периоды времени, например, в дневное время или в течении торгового года. • Группа окон (window group) отражает список окон и упрощает управление окнами. Окно или группу окон можно использовать в качестве расписания для задания, что гарантирует выполнение работы только в том случае, когда окно и связанный с ним ресурсный план активны. • Класс заданий (job class) определяет категорию заданий с общими требованиями по использованию ресурсов и другими характеристиками. Класс заданий объединяет задания в рамках большей сущности. • Группа потребителей ресурсов (resource consumer group), связанная с классом заданий, определяет ресурсы, которые выделяются заданию в классе заданий. • Ресурсный план (resource plan) позволяет пользователям устанавливать для групп потребителей приоритеты использования ресурсов (главным образом ЦП). Примечание: дополнительные сведения о группах потребителей ресурсов и ресурсных планах см. в уроке “Управление ресурсами”. Oracle Database 10g: Administration Workshop II 14-27
Создание класса заданий ORACLE' fwteiprbe йапа^ег 10g № Umt Dat^b-^e arcl-us otacte.com > Scn^duk<Jub Classes • Create Job Class-ugged in as HR Create Job Class * Name foMNJOBS Description | Logging Level [Leg: everyiMrig Log Retention Period (Days) | Resource Consumer Group |DAYTtME„JOBS EXECUTE DBMS_SCHEDULER.CREATE_JOB_CIASS( - job_class_name => 1 ADMIN_JOBS1 z - resource_consumer_group 1DAYTIME_JOBS’f -< logging^Jevel => DBMS SCHEDULER. LOGGING OFF) ; ORACLE Copyright © 2006, Oracle. All rights reserved. Создание класса заданий Класс заданий можно создать с помощью процедуры 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). BEGIN — ——— —— . —__ DBMS_SCHEDULER.CREATE_WINDOW( window^name => 'DEC_NIGHTS', resource_plan.«> 'END_OF_YEAR', start_date «> '01-DEC-03 06.00.00 PM EST', repeat_interval => 'FREQ«DAILY; BYHOUR=18', duration -> '0 12:00:00', end_date => '31-DEC-03 06.00.00 AM EST’, comments => 'Every day at 6:00 PM’); END; / & _________________ U-PACLe______________ Copyright © 2006, Oracle. AH 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
A Приоритеты заданий внутри окна Job1 Job2 APPL JOBS Job4 Job5 ADMIN JOBS Временное окно ГЗоьз] OTHER Задание Приоритет Jobl 1 Job2 2 Job3 3 Job4 5 Job5 2 Copyright © 2006, Oracle. All rights reserved. »ACL< Приоритеты заданий внутри окна Когда в базе данных создается большое количества заданий, требуется способ, по которому выстраивается порядок обработки заданий с учетом бизнес-требований и определяются задания с наивысшим приоритетом. В каждом конкретном окне может быть несколько классов выполняемых заданий со своим собственным приоритетом. Классы позволяют отнести задание к определенной категории. Между классом заданий и группой потребителей ресурсов устанавливается соответствие. Активный ресурсный план базы данных определяет, как выделяются ресурсы каждой группе потребителей и, следовательно, каждому классу заданий. Имеется два уровня, на которых задания могут получить приоритеты: на уровне классов и на уровне заданий. • Первый уровень установки приоритетов использует ресурсные планы, задаваемые для классов. Приоритеты заданий различных классов устанавливаются исключительно исходя из распределения ресурсов между классами заданий. • Второй уровень установки приоритетов действует внутри класса и использует атрибут приоритета каждого задания. Уровни приоритетов имеют значение только, когда два задания запускаются в одно и то же время. Задание с большим приоритетом запускается первым. Не гарантируется соблюдение приоритетов для работ различных классов. Например, работа класса APPL__JOBS с более высоким приоритетом может не стартовать раньше, чем работа класса ADMIN_JOBS с более низким приоритетом, даже когда оба задания совместно используют одинаковое расписание. Если задание класса A PPL JOBS имеет доступ к ресурсам на более низком уровне плана, тогда оно, даже если у него более высокий приоритетом, должно ждать, пока ресурсы станут доступными, так как они выделяются заданиям с более низким приоритетом в другом классе Oracle Database 10$: Administration Workshop II 14*30
Итоги Упрощение управления задачами с помощью планировщика Создание задания, программы и расписания Мониторинг выполнения заданий Использование расписаний, основанных на времени или событиях, для выполнения заданий планировщика Использование цепочек заданий для выполнения последовательности связанных задач Использование дополнительных понятий планировщика для установления приоритетов заданий Copyright © 2006, Oracle.AHrightsjreserved. 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