Руководство по диагностике и устранению проблем в Oracle
Покупка
Тематика:
Системы управления базами данных (СУБД)
Издательство:
ДМК Пресс
Авторы:
Фарук Тарик, Олт Майк, Португал Пауло, Хури Мохамед, Хуссейн Сайед Джаффар, Чупрински Джим, Хэррисон Гай
Перевод:
Снастин А. В.
Год издания: 2018
Кол-во страниц: 498
Дополнительно
Вид издания:
Практическое пособие
Уровень образования:
Профессиональное образование
ISBN: 978-5-97060-448-9
Артикул: 805526.02.99
Доступ онлайн
В корзину
Книга предоставляет исчерпывающие и актуальные рекомендации по обеспечению надежной и эффективной работы СУБД Oracle в сложных производственных корпоративных средах. Семь ведущих экспертов по Oracle объединили свои усилия, чтобы создать не имеющий аналогов сборник испытанных решений, практических примеров и пошаговых описаний процедур для Oracle версий 12c, 11g и более поздних. Каждое решение тщательно подготовлено, для того чтобы помочь опытным администраторам понять и устранить серьезные проблемы как можно быстрее. Рассмотрены сегменты LOB, пространства таблиц UNDO, циклы ожидания высоконагруженных буферов сборщика мусора, время задержек при ответах на запросы, конкуренция при блокировках, индексация, распределенные XA-транзакции, резервное копирование/восстановление RMAN и др. Описаны оптимизация языка определения данных, настройка механизма VLDB, исследование и тестирование баз данных, гибкая настройка совместного использования курсоров, извлечение больших объемов данных, перемещение данных, SSD, индексация, а также способы решения проблем с Oracle RAC. Издание предназначено администраторам баз данных, а также программистам, работающим с Oracle.
- Полная коллекция по информатике и вычислительной технике
- ДМК Пресс. Информационные системы и технологии
- ДМК Пресс. ИТ-технологии для профессионалов
- Интермедиатор. Информационные системы и технологии (сводная)
- Интермедиатор. ИТ-технологии для профессионалов (сводная)
- Системы управления базами данных (СУБД)
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Бакалавриат
- 09.03.01: Информатика и вычислительная техника
- 09.03.02: Информационные системы и технологии
- 09.03.03: Прикладная информатика
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов.
Для полноценной работы с документом, пожалуйста, перейдите в
ридер.
Тарик Фарук, Майк Олт, Пауло Португал, Мохамед Хури, Сайед Джаффар Хуссейн, Джим Чупрински, Гай Хэррисон Руководство по диагностике и устранению проблем в Oracle
Tariq Farooq, Mike Ault, Paulo Portugal, Mohamed Houri, Syed Jaffar Hussain, Jim Czuprynski, Guy Harrison Oracle Database Problem Solving and Troubleshooting Handbook Boston • Columbus • Indianapolis • New York • San Francisco • Amsterdam • Cape Town Dubai • London • Madrid • Milan • Munich • Paris • Montreal • Toronto • Delhi • Mexico City São Paulo • Sidney • Hong Kong • Seoul • Singapore • Taipei • Tokyo
Тарик Фарук, Майк Олт, Пауло Португал, Мохамед Хури, Сайед Джаффар Хуссейн, Джим Чупрински, Гай Хэррисон Руководство по диагностике и устранению проблем в Oracle Москва, 2018
УДК004.65:004.451OracleDatabase ББК32.973.34 Ф25 ФарукТ.,ОлтМ.,ПортугалП.,ХуриМ.,ХуссейнС.Дж.,Чупрински Дж.,ХэррисонГ. Ф25 Руководство по диагностике и устранению проблем в Oracle / пер. с англ. А. В. Снастина. – М.: ДМК Пресс, 2018. – 498 с.: ил. ISBN978-5-97060-448-9 Книга предоставляет исчерпывающие и актуальные рекомендации по обеспечению надежной и эффективной работы СУБД Oracle в сложных производственных корпоративных средах. Семь ведущих экспертов по Oracle объединили свои усилия, чтобы создать не имеющий аналогов сборник испытанных решений, практических примеров и пошаговых описаний процедур для Oracle версий 12c, 11g и более поздних. Каждое решение тщательно подготовлено, для того чтобы помочь опытным администраторам понять и устранить серьезные проблемы как можно быстрее. Рассмотрены сегменты LOB, пространства таблиц UNDO, циклы ожидания высоко- нагруженных буферов сборщика мусора, время задержек при ответах на запросы, конкуренция при блокировках, индексация, распределенные XA-транзакции, резервное копирование/восстановление RMAN и др. Описаны оптимизация языка определения данных, настройка механизма VLDB, исследование и тестирование баз данных, гибкая настройка совместного использования курсоров, извлечение больших объемов данных, перемещение данных, SSD, индексация, а также способы решения проблем с Oracle RAC. Издание предназначено администраторам баз данных, а также программистам, работающим с Oracle. УДК 004.65:004.451Oracle Database ББК 32.973.34 Authorized translation from the English language edition, entitled Oracle Database Problem Solving and Troubleshooting Handbook; ISBN 0134429206; by Farooq, Tariq; and by Ault, Mike; and by Portugal, Paulo; and by Houri, Mohamed; and by Hussain, Syed Jaffar; and by Czuprinski, Jim; and by Harrison, Guy; published by Pearson Education, Inc., publishing as Addison-Wesley professional. Copyright © 2016 by Pearson Education, Inc. All rights reserved. No part of this book may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording or by any information storage retrieval system, without permission from Pearson Education, Inc. RUSSIAN language edition published by DMK PUBLISHERS, Copyright © 2017. Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. ISBN 978-0-13-442920-5 (анг.) ISBN 978-5-97060-448-9 (рус.) Copyright © 2016 Pearson Education, Inc. © Оформление, издание, перевод, ДМК Пресс, 2018
Содержание Предисловие ..........................................................................................................................14 Благодарности .......................................................................................................................16 Об авторах ..............................................................................................................................19 О технических рецензентах и прочих участниках проекта .....................................23 Глава 1. Диагностика и настройка производительности сегментов LOB .............25 Краткое описание типа данных LOB .......................................................................................25 Устранение проблемы с LOB-объектом: пример из практики .........................................26 Еще один пример из реальной практики: HW Resolution .................................................28 Проблемы BASICFILE LOB: более эффективное решение .................................................32 Сравнение LOB-объектов BASICFILE с SECUREFILE LOB .......................................................32 Различия между новыми и старыми типами LOB .............................................................33 Преобразование BASICFILE LOB-объектов в SECUREFILE LOB-объекты .........................36 Воздействие параметра PCTFREE на LOB-объекты ................................................................38 Улучшение производительности операции вставки данных INSERT ...................................41 Резюме .......................................................................................................................................42 Глава 2. Восстановление табличного пространства, поврежденного при выполнении операции UNDO ...................................................................................43 Общий обзор процедуры отмены изменения данных...........................................................43 Важность параметра UNDO_RETENTION ............................................................................44 Настройка параметра UNDO_RETENTION ..........................................................................45 Сегменты DTP, XA и сегмент отката (rollback) ........................................................................46 Прочие нестандартные ситуации, возникающие в сегментах отката и сегментах Undo ..................................................................................................................48 Восстановление поврежденного табличного пространства Undo ........................................48 Профилактика, обнаружение и восстановление повреждений ........................................49 Обработка повреждений памяти ........................................................................................50 Обработка логических повреждений..................................................................................53 Устранение повреждений носителей информации ...........................................................53 Резюме .......................................................................................................................................56 Глава 3. Обработка событий ожидания освобождения буферов глобального кэша .................................................................................................................58 Обзор событий ожидания освобождения буферов ................................................................58 Практическое применение утилиты ORAchk .........................................................................59 Установка утилиты ORAchk .................................................................................................59 Результаты выполнения ORAchk : пример выводимой информации ..............................61 Устранение событий gc buffer busy wait ..................................................................................61 Использование ADDM для поиска информации о событии .............................................63 Использование AWR для поиска информации о событии ................................................64 Использование ASH для поиска информации о событиях ................................................66 Определение проблем, связанных с событием gc buffer busy wait .......................................67 Использование представлений ASH для поиска ожидающих сеансов .............................68 Быстрое определение узких мест, снижающих производительность ..............................69
Содержание Методики устранения событий gc buffer busy wait ................................................................72 Резюме .......................................................................................................................................73 Глава 4. Адаптивное разделение курсора .....................................................................74 Алгоритм работы механизма ACS ...........................................................................................75 Чувствительность к связыванию с определением диапазона избирательности.............75 Чувствительность к связыванию с предикатом равенства и гистограммой ...................78 Чувствительность к связыванию при секционировании по диапазонам ключей ..........79 Работа механизма адаптивного разделения курсора (ACS) ..................................................81 Мониторинг осведомленности о связывании в механизме ACS ...........................................85 Связь BUCKET_ID и COUNT ..................................................................................................86 Как сделать курсор осведомленным о связывании ...........................................................89 Курсор, осведомленный о связывании ...................................................................................96 Практический пример ..............................................................................................................99 Резюме ..................................................................................................................................... 105 Глава 5. Стабилизация времени ответа на запрос с помощью механизма управления планами SQL.................................................... 106 Общие положения .................................................................................................................. 107 Создание базовой линии плана выполнения SQL ................................................................ 110 Автоматический захват плана выполнения..................................................................... 110 Загрузка планов из кэша курсора ..................................................................................... 113 Имитация базовых линий ...................................................................................................... 115 Оптимизатор Oracle и его взаимодействие с механизмом управления планами SQL ..... 119 План стоимостного оптимизатора не соответствует базовой линии плана выполнения SQL ...................................................................................................... 122 Базовая линия плана выполнения SQL не является воспроизводимой ......................... 128 Воспроизводимость базовой линии плана выполнения SQL .............................................. 132 Переименование индекса .................................................................................................. 133 Изменение типа индекса ................................................................................................... 135 Добавление в индекс замыкающих столбцов .................................................................. 136 Реверсирование индекса ................................................................................................... 137 Параметр NLS_SORT и воспроизводимость базовой линии плана выполнения SQL ........ 138 Сравнение параметров ALL_ROWS и FIRST_ROWS ............................................................... 142 Адаптивное разделение курсора и механизм управления планами SQL ........................... 146 Взаимодействие механизмов ACS и SPM в версии Oracle 11g Release 11.2.0.3.0 ........... 147 Взаимодействие механизмов ACS и SPM в версии Oracle 12c Release 12.1.0.1.0 ........... 152 Резюме ..................................................................................................................................... 155 Глава 6. Советы, методики и особые приемы оптимизации для языка определения данных (DDL) ........................................................................ 156 Основы оптимизации операций языка определения данных ............................................ 156 Механизм оптимизации операций языка определения данных (DDL) .............................. 159 Оценка мощности таблицы ............................................................................................... 160 Столбец C_DDL в виртуальном столбце ............................................................................ 162 Столбец C_DDL в расширении группы столбцов ............................................................. 163 Что происходит при изменении значения по умолчанию для столбца C_DDL ............. 165 Столбец C_DDL и индексы ................................................................................................. 168 Оптимизация операций языка определения данных для столбцов с атрибутом NULL ..... 170 Резюме ..................................................................................................................................... 175
Содержание 7 Глава 7. Управление, оптимизация и настройка очень больших баз данных ........................................................................................................................... 176 Общие сведения об очень больших базах данных ............................................................... 176 Оптимальная базовая конфигурация ................................................................................... 177 Шаблон конфигурации хранилища данных ..................................................................... 178 Выбор оптимального размера блока данных ................................................................... 178 Табличные пространства большого файла ....................................................................... 179 Выбор правильных размеров системной глобальной области (SGA) и программной глобальной области (PGA) ...................................................................... 180 Группы временных табличных пространств .................................................................... 181 Секционирование данных ................................................................................................. 181 Секционирование по индексу: сравнение локального и глобального индексов .............. 182 Сжатие данных ................................................................................................................... 183 Сжатие таблицы ................................................................................................................. 183 Инструменты Heat Map и Automatic Data Optimization (ADO)........................................ 184 Расширенная функция сжатия секционированного индекса ............................................ 185 Основные правила настройки производительности очень большой БД ........................... 185 Пример из реальной жизни ............................................................................................... 186 Ограничение воздействия индексов на операции загрузки данных ............................. 187 Максимальное использование ресурса ............................................................................ 188 Сбор статистических данных оптимизатора ........................................................................ 189 Краткий обзор постепенно накапливаемых статистических данных ........................... 189 Сбор статистических данных в параллельном режиме ................................................... 191 Установка значения параметра ESTIMATE_PERCENT ...................................................... 193 Наилучшие практические методики резервного копирования и восстановления данных ..................................................................................................................................... 193 Решения на основе Exadata ............................................................................................... 195 Использование среды Data Guard ..................................................................................... 195 Резюме ..................................................................................................................................... 195 Глава 8. Эффективные практические методики резервного копирования и восстановления данных с использованием диспетчера восстановления ............................................................................................ 196 Идеальный план резервного копирования и восстановления ............................................ 196 Общий обзор диспетчера восстановления ........................................................................... 197 Рекомендации по проектированию стратегий резервного копирования баз данных ...... 198 Процедуры полного и инкрементального резервного копирования ............................. 199 Резервное копирование со сжатием данных ................................................................... 199 Инкрементальное резервное копирование ..................................................................... 200 Ускоренные операции инкрементального резервного копирования ............................ 201 Операции отката к предыдущему состоянию в технологии Oracle Flashback ............... 202 Резервное копирование с использованием дисковой памяти ....................................... 203 Стратегия Recover Forward Forever .................................................................................... 203 Проверка корректности резервных копий диспетчера восстановления ........................... 211 Оптимизация и настройка операций резервного копирования ......................................... 212 Настройка производительности операций резервного копирования с использованием дисковых накопителей ....................................................................... 213 Использование диспетчера восстановления в кластерных (RAC) базах данных ............... 214 Хранение данных в каталоге восстановления ...................................................................... 216 Надежная стратегия восстановления .................................................................................... 216 Использование консультанта по восстановлению данных DRA ......................................... 218 Резюме ..................................................................................................................................... 219
Содержание Глава 9. Методики тестирования и настройки базы данных с использованием анализа автоматического репозитория рабочей нагрузки: часть 1 ............................................................................................... 221 Общий обзор автоматического репозитория рабочей нагрузки ........................................ 222 Что нужно искать .................................................................................................................... 223 Раздел заголовка ..................................................................................................................... 224 Профиль нагрузки .............................................................................................................. 226 Характеристики производительности экземпляра БД ................................................... 227 Совместно используемый пул оперативной памяти ....................................................... 228 Ожидание событий ............................................................................................................ 228 Средняя нагрузка ............................................................................................................... 231 Использование процессоров экземпляром БД ................................................................ 232 Статистические характеристики оперативной памяти .................................................. 232 Специальные разделы отчета по кластерным (RAC) базам данных ................................... 233 Статистические данные по использованию процессоров в кластерной базе данных ........................................................................................................................ 234 Статистические данные по нагрузке глобального кэша ................................................. 234 Глобальный кэш и сервисы формирования очереди ....................................................... 234 Сетевые соединения в кластере ........................................................................................ 236 Статистические характеристики временной модели .......................................................... 236 Статистические характеристики операционной системы .................................................. 237 Ожидание событий в интерактивном режиме................................................................. 238 Ожидание событий в фоновом режиме ............................................................................ 240 Гистограммы времени ожидания событий ...................................................................... 241 Статистические данные по сервисам ............................................................................... 242 Раздел команд SQL ................................................................................................................. 243 Общее затраченное время ................................................................................................. 243 Общее процессорное время .............................................................................................. 244 Общее время использования буфера ................................................................................ 244 Общее время операций чтения с диска ............................................................................ 245 Общее количество выполнения команд ........................................................................... 245 Общее количество операций (вызовов) синтаксического анализа ................................ 245 Совместно используемая память ...................................................................................... 246 Счетчик версий команд ..................................................................................................... 246 Общее время ожидания событий в кластере ................................................................... 247 Статистические данные по операциям в экземпляре базы данных ................................... 247 Статистические данные для согласованных операций чтения ...................................... 250 Статистические характеристики операций получения блоков базы данных ............... 251 Статистические данные по «грязным» блокам ................................................................ 251 Статистические данные по очередям ............................................................................... 251 Счетчик выполнения ......................................................................................................... 251 Статистические данные по свободным буферам ............................................................ 251 Статистические данные по глобальному кэшу (GC) ........................................................ 252 Статистические данные для поиска по индексу .............................................................. 252 Статистические данные по листьям-узлам в B-деревьях ............................................... 253 Статистические данные по открытым курсорам ............................................................. 253 Статистические данные по операциям синтаксического анализа ................................. 253 Статистические данные по физическим операциям чтения и записи .......................... 253 Статистические данные по рекурсивным операциям .................................................... 256 Статистические данные о повторно выполняемых командах ....................................... 256 Статистические данные по курсорам сеанса ................................................................... 257
Содержание 9 Статистические данные по операциям сортировки ........................................................ 257 Общая длина «грязной» очереди ...................................................................................... 257 Статистические данные по выборкам из таблиц ............................................................. 258 Откаты транзакций ............................................................................................................ 258 Статистические данные по вектору изменений отмены операций ............................... 259 Статистические данные пользователей ........................................................................... 259 Статистические данные по рабочей области ................................................................... 260 Статистические данные по операциям экземпляра БД – абсолютные значения ......... 260 Статистические данные по операциям экземпляра БД – потоковые операции ........... 260 Резюме ..................................................................................................................................... 260 Глава 10. Методики тестирования и настройки базы данных с использованием анализа автоматического репозитория рабочей нагрузки: часть 2 ............................................................................................... 261 Статистические данные по вводу/выводу в табличном пространстве ............................... 261 Статистические данные по пулу буферов ............................................................................. 263 Статистические данные по пулу буферов ........................................................................ 265 Статистические данные по восстановлению экземпляра ............................................... 265 Раздел рекомендаций по пулу буферов ............................................................................ 266 Статистические данные по программной глобальной области .......................................... 266 Общие показатели по программной глобальной области .............................................. 268 Сводные статистические показатели цели PGA .............................................................. 268 Сводная гистограмма цели PGA ........................................................................................ 268 Рекомендации по использованию памяти в PGA ............................................................ 270 Статистические данные по совместно используемому пулу .............................................. 271 Прочие рекомендации ........................................................................................................... 271 Рекомендации по параметру SGA_TARGET ...................................................................... 273 Рекомендации по пулу потоков (streams) ........................................................................ 273 Рекомендации по пулу Java ............................................................................................... 273 Статистические данные по ожиданиям, связанным с буферами ....................................... 273 Статистические данные по очередям ................................................................................... 275 Статистические данные по сегментам отмены действий (откатов) ................................... 276 Статистические данные по защелкам ................................................................................... 278 Операции с защелками ...................................................................................................... 280 Нарушения состояния «сна» защелок ............................................................................... 280 Счетчик защелок и циклов ожиданий .............................................................................. 280 Защелки как источники промахов .................................................................................... 281 Обзор спящих мьютексов .................................................................................................. 281 Защелки-предки и защелки-потомки .............................................................................. 282 Области доступа к сегментам ................................................................................................ 282 Разделы операций с библиотечным кэшем .......................................................................... 284 Разделы компонентов динамической памяти ..................................................................... 287 Разделы памяти процессов .................................................................................................... 289 Общая сводка по памяти процессов ................................................................................. 290 Общая сводка по памяти системной глобальной области .............................................. 291 Различия в сегментации системной глобальной области ............................................... 291 Разделы компонентов потоков .............................................................................................. 291 Статистические данные по ограничениям ресурсов ........................................................... 293 Изменения параметров инициализации .............................................................................. 294 Статистические данные по глобальной очереди и другие разделы по кластерной БД ..... 295 Статистические данные по глобальной очереди ............................................................. 298 Статистические данные по службе глобального согласованного чтения ...................... 298
Содержание Статистические данные по обслуживанию текущих глобальных объектов .................. 299 Статистические данные по обмену с глобальным кэшем ............................................... 299 Статистические данные по временам обмена с глобальным кэшем ............................. 299 Статистические данные по прямому обмену с глобальным кэшем ............................... 299 Статистические данные по времени прямого обмена с глобальным кэшем ................ 300 Статистические данные по задержкам пингования сетевого соединения .................... 300 Пропускная способность сетевого соединения на стороне клиента .............................. 300 Статистические данные об устройстве сетевого соединения ......................................... 300 Резюме ..................................................................................................................................... 301 Глава 11. Сценарии устранения проблем в кластерных базах данных ............. 302 Устранение проблем и настройка кластерной базы данных ............................................... 303 Первая проверка с помощью ORAchk ............................................................................... 303 Использование утилиты TFA Collector ............................................................................. 303 Использование репозитория автоматической диагностики .......................................... 303 Проверка журнальных файлов предупреждений и трассировки ................................... 304 Применение трех «А» ......................................................................................................... 304 Проверка защищенного соединения в кластерной БД.................................................... 304 Установка режима трассировки и отслеживание журналов трассировки ...................... 304 Использование монитора работоспособности кластера ................................................. 305 Прочие инструменты и утилиты ....................................................................................... 305 Полезные ресурсы My Oracle Support (MOS) .................................................................... 305 Бесперебойно работающая экосистема RAC ........................................................................ 305 Архитектура, обеспечивающая максимальную доступность ......................................... 306 Оптимизированные и эффективные базы данных в кластере RAC ............................... 307 Устранение проблем в кластере RAC с помощью Диспетчера предприятия Oracle 12c ...... 309 Утилиты и команды для устранения проблем ..................................................................... 309 Резюме ..................................................................................................................................... 315 Глава 12. Использование консультантов по командам SQL для анализа и устранения проблем с языком SQL .................................................. 316 OEM 12c – SQL Advisors Home ................................................................................................ 317 Консультант по настройке команд SQL ................................................................................. 317 Запуск консультанта по настройке команд SQL в среде OEM 12c .................................. 318 Запуск консультанта по настройке команд SQL вручную в среде SQL*Plus .................. 321 Консультант по оптимизации доступа SQL ......................................................................... 322 Запуск консультанта по оптимизации доступа SQL в среде OEM 12c ............................ 322 Запуск консультанта по оптимизации доступа SQL вручную в среде SQL*Plus ............ 325 Консультант по исправлению кода SQL ................................................................................ 326 Анализатор производительности SQL .................................................................................. 327 Резюме ..................................................................................................................................... 328 Глава 13. Применение утилиты Data Pump для перемещения данных и объектов............................................................................................................. 329 Использование механизма Data Pump .................................................................................. 329 Копирование объектов ...................................................................................................... 330 Режимы механизма Data Pump ......................................................................................... 331 Работа с частными и общедоступными объектами ............................................................. 332 Сохранение и восстановление связей БД ......................................................................... 332 Экспорт общедоступных связей БД и синонимов ........................................................... 333 Проверка корректности содержимого файла дампа экспорта ....................................... 334
Содержание 11 Поиск корректных значений параметров INCLUDE и EXCLUDE ......................................... 334 Экспорт подмножеств данных ............................................................................................... 336 Изменение свойств объекта ................................................................................................... 338 Импорт секционированных таблиц как несекционированных ...................................... 338 Импорт секций таблицы как отдельных таблиц .............................................................. 339 Маскирование данных ....................................................................................................... 339 Переименование таблиц или изменение табличных пространств ................................ 339 Использование параметров хранения по умолчанию .................................................... 340 Изменение размеров табличных пространств во время импорта ................................. 340 Объединение нескольких табличных пространств ......................................................... 340 Использование программного интерфейса (API) PL/SQL совместно с Data Pump ............ 342 Контроль и изменение ресурсов ............................................................................................ 344 Повышение производительности ......................................................................................... 345 Обновление баз данных ......................................................................................................... 346 Резюме ..................................................................................................................................... 347 Глава 14. Стратегии быстрого перемещения данных между базами данных ...................................................................................................... 349 Почему необходимо перемещение данных .......................................................................... 350 Определение наилучшей стратегии ...................................................................................... 350 Сравнение перемещения в реальном времени с перемещением в «почти реальном времени» ............................................................................................ 351 Способность работать в режиме только для чтения ........................................................ 351 Обратимость ....................................................................................................................... 351 Какие данные действительно требуют перемещения ......................................................... 352 Методики перемещения данных ........................................................................................... 352 Методики перемещения с возможностью фиксаций транзакций ................................. 353 Методики перемещения без возможности выполнения транзакций ............................ 355 Методики постепенного перемещения ............................................................................ 369 Резюме ..................................................................................................................................... 376 Глава 15. Диагностика проблем и восстановление из временного файла ввода/вывода TEMPFILE .................................................................................................. 377 Общий обзор временных табличных пространств .............................................................. 377 Базы данных в режиме только для чтения ....................................................................... 378 Локально управляемые временные табличные пространства ....................................... 378 Группы временных табличных пространств .................................................................... 379 Глобальные временные таблицы ...................................................................................... 380 Корректировка файла TEMPFILE для изменения состояний ожидания завершения операций ввода/вывода .................................................................................... 383 Недостаточный размер программной глобальной области ............................................ 384 Нецелесообразное изменение размера экстента TEMPFILE ........................................... 388 Нецелесообразное использование групп временных табличных пространств ............ 389 Резюме ..................................................................................................................................... 389 Глава 16. Работа с защелками и обработка состояния конкуренции между мьютексами ............................................................................................................ 390 Обзор архитектуры защелок и мьютексов ............................................................................ 390 Что такое защелки .............................................................................................................. 391 Что такое мьютексы ........................................................................................................... 393 Внутреннее устройство защелки и мьютекса .................................................................. 393
Содержание Количественные характеристики конкуренции защелок и мьютексов ............................. 394 Идентификация отдельных защелок ................................................................................ 396 Исследование сегментов и команд SQL ............................................................................ 396 Сценарии использования защелок и мьютексов ................................................................. 398 Ожидание библиотечного кэша для мьютексов .............................................................. 399 Ожидание освобождения занятого библиотечного кэша ............................................... 401 Защелка совместно используемого пула .......................................................................... 401 Защелка цепочек кэш-буферов ......................................................................................... 402 Прочие ситуации конкуренции за защелки ..................................................................... 405 Трудноразрешимые проблемы конкуренции за защелки ................................................... 407 Алгоритмы точной настройки защелок ........................................................................... 407 Резюме ..................................................................................................................................... 408 Глава 17. Использование SSD-накопителей для устранения проблем с производительностью подсистемы ввода/вывода .............................................. 410 Сравнение SSD-технологии с HDD-технологией ................................................................. 411 Появление твердотельных flash-накопителей ................................................................. 412 Задержки flash SSD-накопителей ...................................................................................... 413 Экономические характеристики SSD-накопителей ........................................................ 413 Накопители SLC, MLC и TLC .............................................................................................. 415 Производительность операций записи и долговечность ................................................ 416 Сборка мусора и регулирование уровня износа .............................................................. 416 Сравнение SATA SSD и PCIe SSD ........................................................................................ 418 Использование SSD-устройств в базах данных Oracle .................................................... 419 Механизм Oracle Database Flash Cache .................................................................................. 419 Случаи ожидания свободных буферов ............................................................................. 419 Конфигурирование и регулирование механизма DBFC .................................................. 422 Использование опции FLASH_CACHE ............................................................................... 423 Статистические данные о производительности flash-кэша ........................................... 424 Сравнение характеристик SSD-накопителей ....................................................................... 426 Чтение индексированных данных .................................................................................... 426 Рабочая нагрузка при операциях чтения/записи в OLTP-системе ................................. 427 Производительность при поиске по всей таблице .......................................................... 427 Собственный кэш SSD-накопителей и поиск по всей таблице ....................................... 428 Операции сортировки с использованием диска и операции хэширования .................. 429 Оптимизация для журналов повторно выполняемых операций ................................... 430 Расслоение хранимых данных ............................................................................................... 434 Использование секций для расслоения данных .............................................................. 434 Flash-устройства и комплекс Exadata .................................................................................... 438 Создание групп дисков ASM на основе flash-устройств в комплексе Exadata ............... 440 Резюме ..................................................................................................................................... 442 Глава 18. Проектирование и контроль индексов для достижения оптимальной производительности ............................................................................... 443 Типы индексов ........................................................................................................................ 443 B-tree-индексы .................................................................................................................... 444 Битовые индексы ............................................................................................................... 447 Секционированные индексы ............................................................................................ 449 Другие типы индексов ....................................................................................................... 452 Сжатые индексы ................................................................................................................. 453 Несколько индексов по одинаковым столбцам .................................................................... 454
Содержание 13 Проблемы производительности индексов............................................................................ 454 Статистика по индексам .................................................................................................... 454 Влияние низкого фактора кластеризации ....................................................................... 456 Важность индексов при выполнении операций .............................................................. 457 Скрытие неиспользуемых индексов ................................................................................. 459 Проблемы производительности индексов в кластерных (RAC) базах данных .............. 461 Резюме ..................................................................................................................................... 463 Глава 19. Использование SQLT для повышения производительности запросов ................................................................................................................................ 464 Установка утилиты SQLT ........................................................................................................ 465 Использование метода XTRACT ............................................................................................ 466 Использование метода XECUTE ............................................................................................. 467 Применение других методов утилиты SQLT ........................................................................ 470 Пример из реальной практики .............................................................................................. 471 Резюме ..................................................................................................................................... 472 Глава 20. Устранение проблем в распределенных транзакциях расширенной архитектуры (XA) .................................................................................... 473 Устранение общих проблем при использовании распределенных транзакций ................ 474 Восстановление распределенных транзакций-«невидимок» ............................................. 475 Информация существует, но транзакция отсутствует ..................................................... 475 При возникновении ошибки ORA-1591 не найдено соответствующей информации ....................................................................................................................... 476 Транзакция зависает при попытке выполнения команды COMMIT или ROLLBACK .................................................................................................................... 478 Контроль распределенных транзакций ................................................................................ 481 Резюме ..................................................................................................................................... 482 Предметный указатель ..................................................................................................... 483
Предисловие Жизнь администраторов СУБД становится все более и более сложной, а напряженный режим работы быстро становится нормой. Администраторы баз данных постоянно сталкиваются с проблемами, которые при определенных условиях могут привести организации и прочие юридические лица к многомиллионным убыткам буквально за минуту или, при самом худшем развитии событий, к полной остановке работы инфраструктуры баз данных компании. Конечно, подобные ситуации маловероятны, но к потенциальной возможности их возникновения должен быть готов каждый администратор баз данных, чтобы вовремя устранить надвигающиеся проблемы. Главная задача этой книги – показать способы максимально оперативного устранения в базах данных серьезных проблем, которые могут оказать воздействие на эксплуатационную среду в целом. Читателям демонстрируется пошаговое руководство, необходимое для решения конкретной проблемы, с разбором случаев из реальной практики, которые могут произойти (и происходят) в любой день, в любое время, в любой базе данных Oracle. Чтобы не терять времени в попытках поиска решения проблемы, которая представляет опасность для вашей базы данных или уже нарушила ее работоспособность, вы можете сразу же обратиться к этой книге, предлагающей решения некоторых самых крупных проблем, вероятность возникновения которых наиболее велика. Даже если решение текущей проблемы не найдено здесь, вы узнаете, как нужно быстро искать в Интернете способы устранения любой конкретной проб лемы. Основная идея данной книги заключается в том, чтобы предложить вам реаль- ную помощь при возникновении серьезных проблем с базами данных Oracle в различных эксплуатационных средах. Наряду с описанием самых эффективных обобщенных методик в книге исследуются некоторые наиболее важные проблемы, возникающие в базах данных Oracle, а также способы оперативного решения этих проблем, описанные в простой и понятной форме. Ориентированная в основном на администраторов СУБД Oracle (DBA) и на администраторов аппаратно-программных комплексов (кластеров серверов) Oracle Database Machine (DMA) книга «Руководство по диагностике и устранению проблем в СУБД Oracle» может служить практическим техническим руководством для выполнения повседневных действий по диагностике и устранению неисправностей, по настройке и устранению проблем в ходе операций администрирования семейства программных продуктов Oracle Database Server. Написанная известными во всем мире авторами с огромным опытом работы в группах Oracle ACE, в качестве руководителей ACE и независимых экспертов, эта книга должна стать настольным справочником по решению проблем, объединяющим практические примеры из реальной жизни и планы действий по диагностике и устранению неисправностей в сложных совокупностях баз данных Oracle. В данной книге подробно описаны методы решения следующих задач: выбор наикратчайшего пути для решения крупномасштабных проблем; наиболее эффективная организация рабочего дня с помощью надежных методик, основанных на практическом опыте экспертов этой области;
Предисловие 15 создание собственного плана по устранению неисправностей и решению проблем; осуществление повседневного «упреждающего» сопровождения, обеспечивающего стабильность эксплуатационной среды; использование стандартных инструментальных средств и сценариев, наиболее пригодных для быстрых и эффективных решений проблем. Авторы этой полезной, изобилующей разнообразными техническими подробностями книги при ее написании ориентировались на различные уровни (средний, опытный эксперт) пользователей семейства программных продуктов Oracle Database Server. В этой книге рассматриваются версии Oracle Database 11g и Oracle Database 12c и весь комплект соответствующего вспомогательного и дополнительного программного обеспечения для СУБД Oracle.
Благодарности Тарик Фарук Я хочу выразить безграничную благодарность за все хорошее в моей жизни всемогущему Аллаху, властелину миров, всемилостивейшему, всемилосердному. Я посвящаю эту книгу моим родителям, г-ну и г-же Абдулла Фарук (Abdullah Farooq), моей прекрасной жене Эмбрин (Ambreen), моим чудесным детям Сумайе (Sumaiya), Хафсе (Hafsa), Фатиме (Fatima) и Мухаммад-Тала (Muhammad-Talha), а также моим племянникам Мухаммаду-Хамзе (Muhammad-Hamza), Мухаммаду- Сааду (Muhammad-Saad), Мухаммеду-Муазу (Muhammed-Muaz), Абдул-Кариму (Abdul-Karim) и Ибраиму (Ibrahim), без постоянной поддержки которых эта книга никогда бы не появилась на свет. Я бесконечно благодарен им за то, что в течение почти двух лет у меня была возможность уделять часть времени написанию этой книги, главным образом в самолетах, а также поздними ночами и по выходным дома. Сердечно благодарю моих друзей в Oracle Technology Network (OTN), коллег по Oracle ACE, сотрудников и всех участников сообщества Oracle, а также товарищей по работе, поддержавших меня в стремлении к завершению этого проекта, особенно Дэйва Витало (Dave Vitalo). Замысел написания книги по диагностике и устранению неисправностей в СУБД Oracle и решению различных проблем в этой области я вынашивал достаточно долго. Идея окончательно оформилась в реальный проект после встречи с Пауло Португалом (Paulo Portugal) в Сан-Франциско на конференции Oracle Open World в 2013 году. Я очень горжусь своим сотрудничеством с лучшими умами в данной отрасли ИТ, в том числе с сотрудниками Oracle ACE, руководителями ACE и дипломированными специалистами, которые внесли свой вклад в написание и техническое рецензирование этой книги от начала и до конца. С момента написания самого первого подготовительного технического материала до выхода из печати создание книги представляет собой сложный, трудоемкий, длительный и иногда мучительный процесс, и эту книгу невозможно было бы написать без огромной помощи и руководства превосходной команды издательства Addison-Wesley. Особая благодарность Грегу Дунчу (Greg Doench), главному редактору, и всем другим сотрудникам издательства, обеспечившим надежную поддержку проекта. Честь и слава техническим редакторам, рецензентам и редакторским группам Addison-Wesley за великолепную работу над этой книгой. Глубоко признателен моим друзьям, соавторам и техническим рецензентам – Пауло Португалу (Paulo Portugal), Мохамеду Хури (Mohamed Houri), Майку Олту (Mike Ault), Джиму Чупрински (Jim Czuprynski), Сайеду Джаффару Хуссейну (Syed Jaffar Hussain), Камрану Агаеву (Kamran Agayev), Анжу Гарг (Anju Garg), Берту Шальцо (Bert Scalzo) и Гаю Хэррисону (Gay Harrison) – за выдающуюся совместную работу, которая позволила представить эту книгу тебе, уважаемый читатель. Особая благодарность моему другу и соратнику, руководителю Oracle ACE Биджу Томасу (Biju Thomas), за написание главы 13.
Благодарности 17 И наконец, спасибо тебе, мой уважаемый читатель, за то, что ты присоединился к нам в этом нелегком походе за знаниями, – искренне надеюсь, что ты много узнаешь из этой книги и что чтение ее доставит тебе не меньше удовольствия, чем нам, авторам, при ее подготовке и создании. Майк ОлТ Благодарю компании Texas Memory Systems (TMS) и IBM за предоставление мне свободного времени для продолжения написания и исследования тем, связанных с СУБД Oracle. ПаулО ПОрТугал Я отдал много времени работе над этой книгой, и все это время моя маленькая принцесса была слишком юна, чтобы понять мою поглощенность этим проектом. Я посвящаю эту книгу ей и моей любимой жене, которая всегда поддерживала меня в любых делах и при любых обстоятельствах. МОхаМед хури Эту книгу я посвящаю моим родителям, моим любимым дочерям Имани Соне (Ima- ne Sonia), Ясмин (Yasmine) и Селме (Selma), а также моей семье и моим друзьям. Сайед джаФФар хуССейн За все в моей жизни я благодарен всемогущему Аллаху, властелину миров, всемилостивейшему, всемилосердному. Я посвящаю эту книгу моим родителям, г-ну и г-же Саифулла (Saifulla), моей восхитительной жене Айше (Ayesha), моим чудесным детям Ашфаку (Ashfaq), Арфану (Arfan) и Аахилу (Aahil), моим братьям Садаку (Sadak), Сабдару (Sabdar) и Нууру (Noor), а также моим друзьям и коллегам. Огромная благодарность сотрудникам издательства Addison-Wesley за их безмерную помощь и руководство при создании данной книги. Глубоко признателен моим соавторам и техническим рецензентам – Пауло Португалу (Paulo Portugal), Мохамеду Хури (Mohamed Houri), Майку Олту (Mike Ault), Джиму Чупрински (Jim Czuprynski), Сайеду Джаффару Хуссейну (Syed Jaffar Hussain), Камрану Агаеву (Kam ran Agayev), Анжу Гарг (Anju Garg), Берту Шальцо (Bert Scalzo) и Гаю Хэррисо- ну (Gay Harrison) – за выдающуюся совместную работу, которая позволила представить эту книгу тебе, уважаемый читатель. Особая благодарность моему другу и брату Тарику Фаруку (Tariq Farooq) за то, что пригласил меня участвовать в этом проекте. джиМ ЧуПринСки Свою часть книги я посвящаю моей дорогой жене Рут (Ruth) – моей помощнице, лучшему другу и спутнику жизни в течение уже почти сорока лет. Без ее внимательной, чуткой поддержки, без ее навыков корректорского вычитывания, без ее безграничного терпения во время долгих ночей, когда я писал, редактировал,
Благодарности брюзжал и бранился, пытаясь уложиться в срок, завершение моих трудов стало бы просто невозможным. гай хэрриСОн Спасибо Тарику за предоставленную возможность поработать в такой великолепной группе технических писателей, спасибо Анжу (Anju) за превосходное техническое редактирование, спасибо всем сотрудникам издательства Addison-Wesley, которые работали над этим проектом. Спасибо моей семье за постоянную любовь и поддержку. Биджу ТОМаС Я очень признателен Тарику за приглашение к участию в этом выдающемся проекте и очень горжусь тем, что работал вместе с такими уважаемыми и известными авторами. Моя искренняя благодарность Тарику и всем соавторам этой книги. Спасибо Камрану за чрезвычайно полезное техническое редактирование и ценные предложения. Я весьма высоко оцениваю все усилия сотрудников издательства Addison-Wesley, которые они приложили для обеспечения качества содержания, оформления и внешнего вида книги. Благодарю Oracle Technology Network (OTN) и программу Oracle ACE за всю поддержку. Спасибо моей семье, которая всегда рядом со мной, обеспечивая прочную поддержку и ободрение.
Об авторах ТарикФарук(TariqFarooq) – инженер, архитектор и специалист по решению задач, связанных с СУБД Oracle, который работает с различными технологиями Oracle более 24 лет в особо сложных программных средах в нескольких самых крупных в мире организациях. Присутствуя практически на всех основных конференциях/мероприятиях Oracle по всему миру, Тарик является ведущим церемоний награждения, лидером/ организатором сообщества, автором различных изданий, участником форумов и техническим блоггером. Он также является президентом-основателем рабочей группы IOUG Virtualization & Cloud Computing Special Interest Group и социальной сети Brain-Surface для разнообразных сообществ Oracle. Тарик основал, организовал и провел несколько конференций по Oracle, в том числе OTN Middle East and North Africa (MENA) Tour, VirtaThon (самая крупная онлайн-конференция, объединившая различные домены, применяющие Oracle), ряд конференций CloudaThon & RACaThon, а также самую первую, посвященную только Oracle конференцию в Массачусетском технологическом институте (Massachu- setts Institute of Technology) в 2011 году. Он был основателем и основным ведущим цикла программ VirtaThon Internet Radio. Тарик является сертифицированным экспертом Oracle RAC Certified Expert, обладателем 14 профессиональных сертификатов Oracle. Тарик – автор более ста статей, докладов и прочих публикаций, соавтор нескольких книг по СУБД Oracle: Expert Oracle RAC 12c (Apress, 2013), Oracle Exadata Expert’s Handbook (Addison-Wesley, 2015), Building Database Clouds in Oracle 12c (Addison-Wesley, 2016). Тарик удостоен нескольких наград Oracle ACE и ACE Director. МайкОлт(MikeAult) начал работать с компьютерами в 1980 го ду – в течение шести лет службы по контракту в ВМФ США обслуживал атомные подводные лодки, затем программировал на Basic и Fortran IV для архитектуры PDP-11 в атомной индустрии. За годы работы в этой отрасли Майку приходилось иметь дело с архитектурами PDP, IBM-PC, Osborne, позже c VAX-VMS и HP, а также с СУБД Informix и Ingres. После резкого падения активности в атомной промышленности Майк начал работать с Oracle как единственный администратор СУБД в Luka, основанном на Миссисипи проекте Advanced Solid Rocket Motor (ASRM) для НАСА в 1990 году. После 1990 го- да Майк работал с Oracle как в компаниях, так и в качестве независимого консультанта. Большой опыт использования Flash Майк получил, работая в качестве ведущего специалиста по Oracle в компании Texas Memory Systems. После поглощения TMS корпорацией IBM в 2012 году Майк продолжил работу как ведущий специалист по Oracle в подразделении IBM STG Flash group. Майк является автором более
Доступ онлайн
В корзину