Тема 16_3 Мониторинг и настройка БД. Тема Мониторинг и настройка производительности бд
Скачать 4.55 Mb.
|
Курс: Администрирование Oracle 11g Тема: Мониторинг и настройка производительности БД Oracle. Часть 3. Автор: Барабанщиков И.В. План • Разбор SQL-команды • Статистики оптимизатора • Консультант по настройке SQL-кода • Консультант по настройке путей доступа • Автоматические задачи сопровождения Производительность SQL- кода • Важная задача DBA – обеспечение хорошей производительности команд SQL. • Для этого надо регулярно обновлять статистики по объектам БД • Оптимизатор использует эти статистики при выборе плана выполнения для SQL- запроса. Разбор SQL-команды Статистики оптимизатора • Охватывают статистические данные о таблицах, столбцах, индексах. • Хранятся в словаре данных. • Предоставляют оптимизатору статистически корректный моментальный снимок сведений о хранении и распределении данных. • Оптимизатор использует статистики при выборе пути доступа к данным. Какие статистики собираются Для таблицы: • Размер таблицы в блоках БД • Количество строк • Средний размер строки • Количество мигрированных и сцепленных строк Для индекса: • Размер индекса в блоках БД • Высота В-дерева • Количество удаленных строк в листовых блоках Сбор статистик оптимизатора • Фактически статистики изменяются при обновлении данных таблицы. • Сопровождение статистик распределения данных в реальном времени не делается , т.к. это отразилось бы на производительности БД. • Статистические данные о таблицах и индексах собираются периодически • Сбор статистик выполняется с помощью процедур пакета DBMS_STATS Консультант настройки SQL • Анализирует отдельную команду SQL. • Выполняет: - анализ и сбор статистик - анализ альтернативных планов выполнения - профилирование SQL • Дает рекомендации по улучшению ее производительности. Пример: SQL Tuning Advisor • ADDM определяет SQL-команды, создавшие наибольшую нагрузку. • DBA определяет какие из них надо настроить. Пример: SQL Tuning Advisor Консультант доступа к данным из SQL • Анализирует все команды SQL за данный период. • Проверяет имеющиеся пути доступа к данным. • Выдает рекомендации по созданию : - дополнительных индексов; - материализованных представлений. Пример: SQL Access Advisor Автоматически выполняемые задачи сопровождения • Сбор статистик оптимизатора. • Выполнение сегментного консультанта. • Настройка SQL-кода. Выполнение заданий инициирует планировщик БД. Задания выполняются в действующем по умолчанию окне сопровождения. Автоматически выполняемые задачи сопровождения ИТОГИ • Для формирования оптимальных планов выполнения SQL-операторов важно иметь актуальные значения статистик. • В СУБД Oracle 11g сбор статистик выполняется автоматически 1 раз в сутки. • Для настройки SQL-операторов можно применять консультанты: - SQL Tuning Advisor - SQL Access Advisor Самонастраиваемая БД Курс: Администрирование Oracle 11g Тема: Мониторинг и настройка производительности БД Oracle. Часть 2. Автор: Барабанщиков И.В. План • Статистики и метрики БД • Наборы моментальных снимков • Консультанты: - ADDM - Консультанты по памяти - Консультанты по пространству Как использовать статистики? • Сами по себе статистики содержат мало полезной информации. • Статистика – это просто накопительное значение некоторой характеристики • Гораздо интереснее знать не абсолютное значение статистики, а скорость ее изменения. Метрика Метрика – нормализованная статистика. Метрика определяет скорость изменения кумулятивной статистики Пример: Статистика : Количество жестких разборов. Метрика : Количество жестких разборов за единицу времени. Наборы моментальных снимков • Для получения метрик используются наборы моментальных снимков (snapshot sets). • Snapshot set определяется на основе пары моментальных снимков. • Набор моментальных снимков создается про- цедурой DBMS_REPOSITORY.CREATE_BASELINE () • Snapshot set используется для удержания этой пары моментальных снимков. • Набор моментальных снимков создают для репрезентативных периодов времени. Автоматический диагностический монитор базы данных (ADDM) В состав БД Oracle 11g входит консультант ADDM, который анализирует период между двумя последними сборами данных. ADDM • ADDM автоматически отрабатывает после получения каждого нового снимка. • ADDM выполняет профилактический анализ экземпляра БД и определяет узкие места. • Результаты своей работы ADDM записывает в AWR. Проблемы, которые может обнаружить ADDM • SQL-команды, создающие большую нагрузку. • PL/SQL-программы, которые долго работают. • Слишком частое выполнение контрольных точек. • Слишком большие размеры структур памяти. • Конкуренцию блокировок. • Проблемы дискового ввода-вывода. • Проблемы, связанные с процессором. • Проблемы сетевых соединений Oracle Net. Находки ADDM Рекомендации ADDM ADDM может рекомендовать изменения: • Аппаратного обеспечения (добавить CPU). • Конфигурации БД (значения параметров). • Схем (хеш-секционирование таблицы). • Приложений (использовать связанные переменные). • Использовать другие консультанты (консультант настройки SQL-кода). Консультанты (Advisors) Консультанты – это компоненты сервера БД, которые предоставляют DBA полезную информацию об использовании ресурсов и эффективности соответствующих ресурсов сервера. Система консультантов Консультанты по памяти Memory Advisor (Консультант использования памяти) – объединяет несколько консультантов, позволяющих выбрать наилучшие значения размеров различных компонент памяти : • Кеш буфера БД. • Разделяемого пула. • Программной глобальной области (PGA). Пример: Memory Advisor Консультанты по пространству • Segment Advisor (Сегментный консультант) – помогает найти таблицы и индексы, которые занимают больше пространства, чем надо • Undo Management Advisor (консультант управления информацией отмены) – помогает определить размер ТП отмены, который необходим для удержания данных отмены в течении заданного периода времени. Пример: Segment Advisor Пример: Undo Management Advisor ИТОГИ • Для оценки производительности экземпляра БД используют метрики. • ADDM выполняет «общий» анализ состояния экземпляра БД • Более детальный анализ по отдельным направлениям работы БД выполняют специализированные консультанты. Курс: Администрирование Oracle 11g Тема: Мониторинг и настройка производительности БД Oracle. Часть 1. Автор: Барабанщиков И.В. План • Распределение времени АБД • Активное сопровождение БД • Статистики БД • Репозитарий рабочей нагрузки Распределение времени DBA Мониторинг БД • Основная задача DBA поддерживать БД в рабочем состоянии. • Для этого надо постоянно вести мониторинг состояния БД и своевременно выполнять необходимые действия по сопровождению БД. Виды сопровождения БД Активное сопровождение: • Позволяет заранее обнаружить проблемы и предпринять действия до того как проблема станет значительной. Пассивное сопровождение: • Реакция на проблемы происходит по мере их возникновения Активное сопровождение БД БД Oracle 11g имеет встроенные средства для активного сопровождения: • Автоматический репозитарий рабочей нагрузки (AWR) • Автоматические задачи сопровождения. • Серверные сигналы. • Консультанты. Статистики • Мониторинг состояния БД выполняется на основе статистик. • Статистики – это данные, представляющие более подробные сведения о БД и ее объектах. • Примеры статистик: - число чтений из кэша - число чтений с диска - число операций разбора Счетчики экземпляра • Подсчет статистик выполняется счетчиками экземпляра. • Каждый счетчик ведет подсчет по отдельной характеристике. • Счетчики экземпляра хранятся в SGA. Счетчики экземпляра • Все счетчики являются кумулятивными (накопительными). • При старте экземпляра значения всех счетчиков равны нулю. • В процесс работы происходит увеличение значения счетчика. Просмотр статистик Текущие значения статистик можно узнать через следующие динамические обзоры: • V$SYSSTAT – по экземпляру в целом • V$SESSTAT – по конкретному сеансу Использование статистик в старых версиях СУБД Oracle В старых версиях БД Oracle DBA должен был работать со статистиками вручную. Сохранение статистик в Oracle 11g • БД каждые 60 минут копирует статистики из SGA и сохраняет их в репозитарии рабочей нагрузки в виде моментального снимка. • Эти снимки заносятся на диск фоновым процессом MMON. Репозитарий рабочей нагрузки (AWR) • AWR – это встроенный в БД репозитарий, в котором хранится информация о производи-тельности экземпляра. • AWR содержит сотни таблиц, все они принадлежат схеме SYSMAN и хранятся в ТП SYSAUX. • Для работы с AWR надо использовать ЕМ или пакет DBMS_WORKLOAD_REPOSITORY. • AWR служит основой для реализации всех возможностей самоуправления. Инфраструктура AWR Инфраструктура AWR Инфраструктура AWR состоит из 2-х частей: 1. Возможность сбора статистик в памяти (статистики): • Они доступны через обзоры V$. 2. Моментальные снимки: • Это срез значений статистик на конкретный момент времени. • Они доступны через обзоры DBA_* или через EM Database Control. Почему надо сохранять статистики? • Статистики не должны теряться в случае отказа экземпляра. • Для некоторых видов анализа нужны хронологические данные. • Может произойти переполнение памяти – старые статистики замещаются новыми. Автоматический сбор статистик AWR дает возможность автоматического сбора статистик без участия администратора БД. Управление AWR Параметры конфигурации AWR: • Период удержания (по умолчанию – 8 дней). • Интервал между сбором данных (по умолчанию – 60 минут). • Уровень собираемой информации (параметр инициализации STATISTICS_LEVEL ): - BASIC (собирается минимум информации) - TYPICAL (рекомендуется) - ALL (собираются данные для настройки SQL) ИТОГИ • Важно выполнять активное сопровождение БД, чтобы заранее выявлять негативные моменты. • Информация о состоянии БД собирается в виде различных статистик. • Статистики являются кумулятивными. • Для автоматизации сбора и последующей обработки статистик предназначен AWR. Курс: Администрирование Oracle 11g Тема. Утилиты Oracle для перемещения данных. Часть 2. SQL*Loader Автор: Барабанщиков И.В. План • Назначение утилиты SQL*Loader • Архитектура SQL*Loader • Файлы SQL*Loader • Способы загрузки данных • SQL*Loader и ОЕМ 55 Назначение SQL*Loader • SQL*Loader - это утилита, используемая для загрузки данных из внешних файлов в таблицы базы данных Oracle. • Эта утилита имеет мощную машину разбора загружаемых данных и накладывает небольшие ограничения на формат данных во внешнем файле. 56 57 Входные файлы данных • SQL*Loader читает данные из одного или более файлов, имена которых заданы в управляющем файле. • С позиции SQL*Loader информация в файле данных располагается в виде записей (records). • Файл данных может быть в одном из трех форматов и в зависимости от этого содержать записи фиксированного формата, переменного формата или потокового формата. • Формат записи может быть задан в параметре INFILE управляющего файла. • Если ни один формат не указан, по умолчанию предполагается потоковый формат записей. 58 Управляющий файл (Control File) • Это текстовый файл - содержит инструкции языка, понимаемого утилитой SQL*Loader. • Управляющий файл загрузчика сообщает утилите SQL*Loader, где найти загружаемые данные, как анализировать и интерпретировать данные, куда их вставлять и многое другое. • управляющий файл загрузчика имеет три секции: - Первая секция содержит общую информацию о сеансе : имя входного файла данных, количество пропускаемых записей во входном файле данных (SKIP) и т.д. - Вторая секция состоит из одного или более блоков INTO TABLE. Каждый из этих блоков содержит информацию о таблице, в которую загружаются данные (имя таблицы и ее столбцы). - Третья секция необязательная и, если она имеется, то содержит входные данные. 59 Пример 1 управляющего файла 60 Пример 2 управляющего файла 61 Журнальный файл (Log File) • С оздается утилитой SQL*Loader, когда она начинает выполняться. • Если файл нельзя создать, выполнение прекращается. • Журнальный файл содержит детальную информацию о загрузке, в том числе и описание ошибок, возникших в ходе загрузки. 62 Файл некорректных записей (Bad File) • Содержит записи, которые были отбракованы либо при проверке утилитой SQL*Loader, либо при вставке сервером Oracle. • Записи файла данных отвергаются утилитой SQL*Loader, если формат входных данных неверен. • Если запись файла данных принята утилитой SQL*Loader, она передается для вставки в таблицу в виде строки таблицы. • База данных Oracle проверяет правильность строки. Если строка правильная, она вставляется в таблицу; в противном случае, запись отвергается и SQL* Loader записывает ее в файл некорректных записей. 63 Файл отвергнутых записей (Discard File) • Создается, если только он необходим и если было задано его создание. • Этот файл содержит не подходящие для загрузки записи, которые не удовлетворили хотя бы одному из критериев отбора, заданных в управляющем файле. 64 Способы загрузки данных SQL*Loader может использовать следующие способы загрузки данных: • Обычная загрузка - Генерируется SQL-команда INSERT - Другие пользователи могут обращаться к таблице одновременно с SQL*Loader • Прямая загрузка - Высокая производительность загрузки - Монопольная блокировка таблиц 65 Сравнение обычной и прямой загрузки 66 Загрузка данных с помощью ОЕМ 67 Доступ к возможностям SQL*Loader можно получить через Oracle Enterprise Manager. Мастер проведет по шагам настройки опций SQL*Loader. ИТОГИ • SQL*Loader – утилита командной строки, которая используется для загрузки даннных из внешних источников в БД Oracle. • Может использовать обычный и прямой методы загрузки 68 Курс: Администрирование Oracle 11g Тема. Утилиты Oracle для перемещения данных. Часть 1. Oracle Data Pump Автор: Барабанщиков И.В. План • Обзор утилит Oracle для перемещения данных • Традиционный экспорт\импорт • Oracle Datapump 70 Перемещение данных Ситуации, когда необходимо перемещать данные в/из БД: • Получение данных из внешних источников • Перенос данных из одной БД в другую • Миграция БД со старой версии на новую • Загрузка данных в хранилище данных 71 Утилиты Oracle Утилиты СУБД Oracle для перемещения данных: • Утилиты для импорта/экспорта - Старые утилиты Импорта/Экспорта - Oracle Data Pump • Утилиты для загрузки данных - Oracle SQL*Loader 72 API для перемещения данных 73 Традиционный Экспорт/Импорт • Работают в режиме клиент-сервер (толстый клиент) • Не масштабируются для больших БД • Медленная выгрузка и загрузка данных • Не работают в параллельном режиме • Трудно мониторить выполнение заданий • Трудно встраивать в приложения (нет API) 74 Параметры утилиты Import 75 Способ запуска 1 Значения параметров устанавливаются после запуска утилиты в результате ответа на вопросы 76 Способ запуска 2 Значения параметров устанавливаются в командной строке при запуске утилиты 77 Oracle Datapump • Технология экспорта/импорта данных и метаданных СУБД Oracle Database 10g/11g • Замена традиционных утилит экспорта/импорта (exp и imp ) • Новая серверная инфраструктура и утилиты (expdp и impdp ) • Имеется документированный API для разработчиков • Много новых возможностей по сравнению с утилитами exp и imp • Утилиты exp/imp оставлены в целях совместимости 78 Архитектура Oracle Datapump • Инфраструктура для поддержки “тонкого клиента” • Экспорт/импорт происходит на сервере • dmp-файл формируется на файловой системе сервера • Клиент только управляет процессами экспорта/импорта • Поддержка параллельности (Только для версии Enterprise Edition) 79 80 Серверный процесс • Клиентский процесс делает вызов Datapump API. • Получив запрос DBMS_DATAPUMP.OPEN серверный процесс создает задание (job) • Job состоит из: - Master Table , - очередей , используемых для коммуникации между процессами, - Master Control Process (MCP) • После запуска задания серверный процесс может проверять очередь статусов 81 Master Control Process • На каждое задание создается один МСР • MCP контролирует выполнение задания • МСР записывает в Master Table следующую информацию: - описание задания - состояние задания - данные о рестарте - информацию о файле дампа • Задание разбивается на последовательность шагов выгрузки/загрузки • На каждом шаге MCP делает вызовы к процессам-работникам (worker) 82 Процессы-работники и очереди • Получив запрос START_JOB, МСР создает определенное число процессов- работников. • Процессы-работники выполняют задачи по выгрузке/загрузке данных, которые им назначил МСР. • МСР записывает информацию о прогрессе выполнения задания и ошибках в очередь статусов. • Серверный процесс получает данные о прогрессе задания из этой очереди. • Очередь команд и управления используется для коммуникации между МСР и workers. 83 Возможности Oracle Datapump • Рестарт и останов экспорта/импорта на произвольной точке • Гибкий (fine-granted) выбор объекта • Трансформация DDL при импорте (метаданные выгружаются в XML) • Предварительная оценка размера dmp- файла • Детальный мониторинг с любого места • Импорт по сети - Из одной БД в другую - На “лету”: без промежуточного dmp- файла 84 85 Использование Oracle Datapump • Создаем директорию в СУБД для dmp- файлов SQL> CREATE DIRECTORY dump_dir AS ‘/backup/oradata’; • Выдаем привилегии на директорию SQL> GRANT READ,WRITE ON DIRECTORY dump_dir TO scott; • Выполняем экспорт C:\app>EXPDP scott/tiger@orcl TABLES=employees DUMPFILE=dump_dir:employees.dmp NOLOGFILE=y 86 Итоги • Утилиты Oracle Datapump – мощное средство («насос») для перемещения данных. • Работают быстрее, чем традиционные утилиты импорта/экспорта. • Работают на сервере БД • Могут быть рестартованы без потери данных. 87 Курс: Администрирование СУБД Oracle 11g Тема: Резервное копирование и восстановление БД. Часть 4 Автор: Барабанщиков И.В. План • Создание резервных копий с помощью RMAN • Сопровождение резервных копий • Восстановление БД • Enterprise Manager и RMAN Создание резервной копии БД в режиме ARCHIVELOG Если БД работает в режиме ARCHIVELOG, то можно делать резервное копирование при открытой БД. В этом случае при восстановлении БД будут использоваться журнальные файлы. Шаги резервного копирования: 1. Запустить RMAN. 2. Установить соединение с целевой БД. 3. Выполнить команду BACKUP DATABASE. RMAN> BACKUP DATABASE PLUS ARCHIVELOG; Пример скрипта RMAN sql 'alter system archive log current'; backup archivelog all delete all input; backup database plus archivelog; allocate channel for maintenance type disk; crosscheck backup; delete expired backup; crosscheck archivelog all; delete expired archivelog all; delete obsolete device type disk; release channel; Создание резервной копии БД в режиме NOARCHIVELOG • Если БД работает в режиме NOARCHIVELOG, то можно создавать резервную копию только, если БД находится в согласованном состоянии. • Перед резервированием БД должна быть корректно остановлена, а затем стартована в режиме MOUNT. • После извлечения из резервной копии восстановление БД не требуется. Шаги создания резервной копии БД в режиме NOARCHIVELOG 1. Запустить RMAN. 2. Установить соединение с целевой БД. 3. Остановить БД, затем смонтировать её: RMAN> SHUTDOWN IMMEDIATE; RMAN> STARTUP MOUNT 4. Выполнить команду BACKUP DATABASE: RMAN> BACKUP DATABASE; 5. Открыть БД для использования: RMAN> ALTER DATABASE OPEN; Сопровождение резервных копий копий • Выделение канала для задачи сопровождения: allocate channel for maintenance device type disk; • Проверка наличия копий, информация о которых хранится в репозитарии RMAN: crosscheck backup; • Удаление из репозитория резервных копий, которые отсутствуют на диске: delete expired backup; • Удаление устаревших резервных копий: delete obsolete backup; Восстановление целой БД Сценарий: потеряны файлы данных, управляющие файлы и файлы оперативного журнала сохранились . Шаги восстановления: 1. Запустить RMAN. 2. Установить соединение с целевой БД. 3. Стартовать экземпляр в режиме MOUNT. 4. Извлечь файлы из резервной копии: RMAN>restore database; 5. Восстановить БД: RMAN>recover database; 6. Открыть БД. RMAN>alter database open; Восстановление БД Enterprise Manager и RMAN • Enterprise Manager предоставляет графический интерфейс к возможностям утилиты RMAN. • На вкладке Availability можно выполнить основные задачи резервного копирования и восстановления БД. Создание резервных копий в EM Сопровождение резервных копий в EM Восстановление БД в ЕМ Итоги • Резервное копирование и восстановление БД Oracle можно делать с помощью RMAN или Entrprise Manager. • Наилучшим вариантом является использование утилиты RMAN. Курс: Администрирование СУБД Oracle 11g Тема: Резервное копирование и восстановление БД. Часть 3 Автор: Барабанщиков И.В. План • Параметры инициализации • FLASH RECOVERY AREA • Подключение к RMAN • Просмотр конфигурации • Конфигурирование RMAN • Политика удержания резервов • Просмотр структуры БД Параметры инициализации Для управления резервными копиями важны следующие параметры: • CONTROL_FILE_RECORD_KEEP_TIME – число дней, в течении которых RMAN пытается сохранить данные о резервных копиях в управляющем файле. • DB_RECOVERY_FILE_DEST – расположение области Flash Recovery Area (FRA). • DB_RECOVERY_FILE_DEST_SIZE - устанавливает лимит на максимальный размер FRA. Flash Recovery Area Flash Recovery Area - это каталог на диске, где Oracle хранит все файлы, которые необходимы для восстановления БД: - Резервные копии - Архивные журналы - Журналы Flashback Использование RMAN • Запуск RMAN $ rman TARGET / $ rman TARGET SYS@prod NOCATALOG $ rman TARGET / CATALOG rco@catdb • Выполнение команд RMAN>SHOW ALL RMAN>BACKUP DATABASE; • Выход из RMAN RMAN> EXIT Просмотр конфигурации RMAN Конфигурирование RMAN • Конфигурирование устройства, где будут создаваться резервные копии: CONFIGURE DEFAULT DEVICE TYPE TO disk; CONFIGURE DEFAULT DEVICE TYPE TO sbt; • Конфигурирование типа резервной копии (Image Copy или Backup Set): CONFIGURE DEVICE TYPE DISK BACKUP TYPE TO COPY; CONFIGURE DEVICE TYPE DISK BACKUP TYPE TO BACKUPSET; • Конфигурирование каналов: CONFIGURE CHANNEL DEVICE TYPE DISK MAXPIECESIZE 2G; CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT /tmp/%U; Уровень параллелизма Определяет количество серверных сеансов, которые будут использованы для создания резервной копии: RMAN> CONFIGURE DEVICE TYPE disk PARALLELISM 2; Политика удержания резервов Политика удержания определяет, как долго RMAN должен хранить резервы. Политика удержания задается: • Числом резервов (redundancy) CONFIGURE RETENTION POLICY TO REDUNDANCY 1; • Количеством дней (recovery window) CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 28 DAYS; Резервные копии, которые не удовлетворяют политике удержания, помечаются как устаревшие (obsolete). Политика удержания резервов Просмотр структуры БД RMAN> REPORT SCHEMA; Report of database schema for database with db_unique_name USER350 List of Permanent Datafiles =========================== File Size(MB) Tablespace RB segs Datafile Name ---- -------- -------------------- ------- ------------------------ 1 325 SYSTEM *** /u01/student/dbockstd/oradata/USER350system01.dbf 2 325 SYSAUX *** /u01/student/dbockstd/oradata/USER350sysaux01.dbf 4 5 USERS *** /u02/student/dbockstd/oradata/USER350users01.dbf 5 60 DATA01 *** /u02/student/dbockstd/oradata/USER350data01.dbf 6 2 INDEX01 *** /u03/student/dbockstd/oradata/USER350index01.dbf 7 1 COMP_DATA *** /u02/student/dbockstd/oradata/USER350comp_data. dbf 8 34 UNDO02 *** /u01/student/dbockstd/oradata/USER350undo02.dbf List of Temporary Files ======================= File Size(MB) Tablespace Maxsize(MB) Tempfile Name ---- -------- -------------------- ----------- -------------------- 1 50 TEMP 50 /u01/student/dbockstd/oradata/USER350temp01.dbf Итоги • RMAN – это гибкая, настраиваемая утилита резервного копирования • Для удобства работы с RMAN надо сконфигурировать ее параметры. • При необходимости отдельные параметры можно менять при каждом сеансе работы. |