Данная публикация изъята из фонда.
Ядро Oracle. Внутреннее устройство для администраторов и разработчиков баз данных
Покупка
Тематика:
Системы управления базами данных (СУБД)
Издательство:
ДМК Пресс
Автор:
Льюис Джонатан
Перевод:
Киселев Артём Николаевич
Год издания: 2015
Кол-во страниц: 372
Дополнительно
Вид издания:
Практическое пособие
Уровень образования:
ВО - Бакалавриат
ISBN: 978-5-97060-169-3
Артикул: 712438.01.99
В данной книге автор приводит только самую необходимую информацию о внутреннем устройстве СУБД Oracle, которую должен знать каждый администратор баз данных, чтобы успешно бороться с неполадками. Снаружи Oracle выглядит сложной. В действительности же обширные функциональные возможности основываются на очень небольшой базовой инфраструктуре, являющейся результатом архитектурных решений, принятых в самом начале и выдержавших испытание временем. Эта инфраструктура управляет транзакциями, реализует механизмы подтверждения и отката изменений, защищает целостность базы данных, позволяет выполнять резервное копирование и восстановление из резервных копий, а также обеспечивает масштабируемость до поддержки тысяч пользователей, одновременно обращающихся к одним и тем же данным. Большинство проблем, с которыми администраторы баз данных сталкиваются ежедневно, можно легко идентифицировать, если знать и понимать, как действует ядро Oracle, о чем и рассказывается в книге. Издание предназначено администраторам баз данных, готовых совершенствовать свое мастерство, когда управление СУБД осуществляется на основе глубоких знаний и понимания особенностей ее работы.
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Бакалавриат
- 02.03.01: Математика и компьютерные науки
- 02.03.02: Фундаментальная информатика и информационные технологии
- 09.03.01: Информатика и вычислительная техника
- 09.03.02: Информационные системы и технологии
- 09.03.03: Прикладная информатика
- 09.03.04: Программная инженерия
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
Джонатан Льюис Ядро Oracle Внутреннее устройство для администраторов и разработчиков баз данных В своей книге Джонатан Льюис приводит только самую необходимую информацию о внутреннем устройстве СУБД Oracle, которую должен знать каждый администратор баз данных, чтобы успешно бороться с неполадками, – ни больше, ни меньше. Интернетмагазин: www.dmkpress.com Книга – почтой: email: orders@alians-kniga.ru Оптовая продажа: «Альянскнига» Тел./факс: (499) 782-3889 email: books@alians-kniga.ru Ядро Oracle 9 785970 601693 ISBN 978-5-97060-169-3 www.дмк.рф В этой книге: • приводится проверенная информация из рук всемирно известного эксперта по проблемам производительности и устранению неисправностей; • подчеркивается важность знания внутреннего устройства для быстрого выявления проблем производительности базы данных; • рассказывается об устройстве внутренней инфра структуры и не тратится время на домыслы и догадки. Что вы узнаете здесь: • основы архитектуры Oracle; • какие накладные расходы можно считать разумными; • как распознать, когда делается лишняя работа; • как заранее увидеть узкие места и понять причины их появления; • как свести к минимуму конфликты и простои на блокировках; • почему параллелизм может отрицательно сказываться на производительности.
Джонатан Льюис Ядро Oracle Внутреннее устройство для администраторов и разработчиков баз данных
Oracle Core Essential Internals for DBAs and Developers Jonathan Lewis
Москва, 2015 Ядро Oracle Внутреннее устройство для администраторов и разработчиков баз данных Джонатан Льюис
УДК 004.65:004.451Oracle Database ББК 32.973.34 Л91 Ядро Oracle. Внутреннее устройство для администраторов и разработчиков баз данных / пер. с англ. Киселев А. Н. – М.: ДМК Пресс, 2015. – 372 с.: ил. ISBN 978-5-97060-169-3 В данной книге автор приводит только самую необходимую ин формацию о внутреннем устройстве СУБД Oracle, которую должен знать каждый администратор баз данных, чтобы успешно бороться с неполадками. Снаружи Oracle выглядит сложной. В действительности же обшир ные функциональные возможности основываются на очень небольшой базовой инфраструктуре, являющейся результатом архитектурных решений, принятых в самом начале и выдержавших испытание временем. Эта инфраструктура управляет транзакциями, реализует механизмы подтверждения и отката изменений, защищает целостность базы данных, позволяет выполнять резервное копирование и восстановление из резервных копий, а также обеспечивает масштабируемость до поддержки тысяч пользователей, одновременно обращающихся к одним и тем же данным. Большинство проблем, с которыми администраторы баз данных сталкиваются ежедневно, можно легко идентифицировать, если знать и понимать, как действует ядро Oracle, о чем и рассказывается в книге. Издание предназначено администраторам баз данных, готовых совер шенствовать свое мастерство, когда управление СУБД осуществляется на основе глубоких знаний и понимания особенностей ее работы. УДК 004.65:004.451Oracle Database ББК 32.973.34 Все права защищены. Любая часть этой книги не может быть воспроиз ведена в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Материал, изложенный в данной книге, многократно проверен. Но, по скольку вероятность технических ошибок все равно существует, издательство не может гарантировать абсолютную точность и правильность приводимых сведений. В связи с этим издательство не несет ответственности за возможные ошибки, связанные с использованием книги. ISBN 978-1-4302-3954-3 (англ.) Copyright © by Jonathan Lewis ISBN 978-5-97060-169-3 (рус.) © Оформление, перевод на русский язык ДМК Пресс, 2015 Л91 Джонатан Льюис
оглавление Об авторе ..........................................................9 О технических рецензентах ................................ 11 Благодарности ................................................. 12 Введение ........................................................ 14 Глава 1. Начало... ............................................. 17 Oracle в процессах ................................................................... 18 Oracle в действии .................................................................... 21 В заключение .......................................................................... 22 Глава 2. Повтор и отмена ................................... 24 Изменение простых данных ..................................................... 24 Подход ...........................................................................................25 Пример ...........................................................................................26 Коротко о главном ..........................................................................30 Подведение итогов .........................................................................32 ACID ........................................................................................ 32 Простота механизма повторения ............................................. 35 Сложность механизма отмены ................................................. 44 Согласованное чтение ....................................................................45 Откат ..............................................................................................46 В заключение .......................................................................... 48 Глава 3. Транзакции и согласованность ................ 50 Разрешение конфликтов ......................................................... 51 Транзакции и механизм отмены ............................................... 52 Начало и конец транзакции .............................................................54 Таблица транзакций ........................................................................55 Обзор блока отмены .......................................................................58 Блоки данных и механизм отмены ........................................... 62 Подготовка полигона ......................................................................62 Список заинтересованных транзакций ...........................................64 Параллельные операции ................................................................67 Поддержка согласованности ................................................... 69
Оглавление Номер SCN подтверждения ..................................................... 75 Фиксирующая очистка ....................................................................76 Отложенная очистка блока ..............................................................79 Откат таблицы транзакций ..............................................................84 Большие объекты .................................................................... 92 В заключение .......................................................................... 93 Глава 4. Блокировки и защелки ........................... 95 В первую очередь... ................................................................. 96 Массивы .........................................................................................96 Указатели .......................................................................................97 Связанные списки ..........................................................................97 Хэш-таблицы ................................................................................100 Защелки ................................................................................ 105 Логика работы защелок ................................................................106 Статистики по операциям с защелками ........................................110 Защелки и масштабируемость .....................................................117 Блокировки ........................................................................... 120 Инфраструктура ...........................................................................120 Представление v$lock ...................................................................122 Взаимоблокировка .......................................................................127 Режимы блокировок .....................................................................133 Защелки для блокировок ..............................................................134 Блокировки KGL (и закрепления) ..................................................137 Блокировки и закрепления ...........................................................138 В заключение ........................................................................ 141 Глава 5. Кэши и копии ...................................... 143 Управление памятью ............................................................. 144 Гранулы ........................................................................................144 Гранулы и буферы ........................................................................146 Несколько кэшей данных ....................................................... 148 Гранулы и пулы буферов ...............................................................151 Пулы буферов ...............................................................................152 Рабочие наборы данных ........................................................ 155 Алгоритм LRU/TCH ................................................................ 156 Алгоритм LRU/TCH в действии ......................................................158 Переустановка ссылок в буфере ...................................................159 REPL_AUX .............................................................................. 161 Поиск данных ........................................................................ 164 Закрепленные буферы .................................................................168 Логический ввод/вывод ................................................................171 Изменение ...................................................................................172 Загрузка хэш-цепочки ..................................................................173 Согласованные копии ...................................................................174 Физический ввод/вывод ...............................................................175
Оглавление Сканирование таблиц ...................................................................176 В заключение ........................................................................ 178 Глава 6. Запись и восстановление ..................... 181 Цели ...................................................................................... 181 Запись в журнал .................................................................... 183 Цикл записи в журнал ...................................................................186 Оптимизация PL/SQL ....................................................................189 Аномалия ACID .............................................................................193 Расширенные механизмы подтверждения ....................................194 Механика ......................................................................................196 Непроизводительные потери памяти в буфере .............................200 Приватные буферы журнала .........................................................203 Запись данных ....................................................................... 204 Заголовки буферов.......................................................................206 Очереди контрольных точек ..........................................................206 Инкрементальные контрольные точки ...........................................209 Взаимодействия процесса записи данных............................. 211 Взаимодействие dbwr и lgwr .........................................................211 Процесс записи данных и списки LRU ...........................................213 Контрольные точки и очереди .......................................................217 Очереди заголовков буферов .......................................................223 Контрольные точки и файлы журнала ............................................224 Восстановление .................................................................... 227 Восстановление носителя ............................................................229 Резервные базы данных ...............................................................230 Ретроспективные базы данных .....................................................231 Побочные эффекты ......................................................................233 В заключение ........................................................................ 234 Глава 7. Парсинг и оптимизация ........................ 237 Понимание SQL ..................................................................... 237 Парсинг ........................................................................................238 Оптимизация ................................................................................238 Интерпретация результатов tkprof ................................................240 Кэш словаря .......................................................................... 243 Структура .....................................................................................248 Функционирование кэша словаря .................................................251 Вызов парсера – что это? ...................................................... 255 Кэш курсора .................................................................................257 Удержание курсоров .....................................................................260 Библиотечный кэш ................................................................ 262 Организация разделяемого пула ..................................................265 Детали организации разделяемого пула ......................................270 … и его работы! ............................................................................277 Парсинг и оптимизация ......................................................... 280
Оглавление Выполнение, блокировка и закрепление .......................................284 Мьютексы .....................................................................................286 В заключение ........................................................................ 287 Глава 8. rac и крах ......................................... 290 Общая картина ...................................................................... 291 Бесперебойная работа .................................................................294 Для чего это надо? ................................................................ 296 Отказоустойчивость .....................................................................297 Масштабируемость ......................................................................298 Oracle Grid ....................................................................................299 Как это работает? .................................................................. 301 GRD ..............................................................................................302 Ведущие и теневые ресурсы .........................................................305 GCS и GES ....................................................................................309 Cache Fusion .................................................................................312 Следствия ....................................................................................315 Восстановление .................................................................... 319 Последовательности ............................................................. 321 Кэширование последовательностей .............................................322 Внутреннее устройство последовательности ...............................323 Упорядоченные последовательности............................................325 Последовательности и индексы ....................................................328 В заключение ........................................................................ 331 Приложение. Вывод и отладка .......................... 334 oradebug ................................................................................ 334 Приостановка процессов ..............................................................334 Вывод дампов ..............................................................................335 Вывод содержимого памяти .........................................................340 Вывод дампа из инструкций SQL ........................................... 343 Альтернативы oradebug ................................................................344 Блоки файлов данных ...................................................................345 Файлы журнала ............................................................................346 Рекомендации ....................................................................... 350 Словарь терминов .......................................... 351 Предметный указатель .................................... 366
об авторе Джонатан Льюис (Jonathan Lewis) – опытный преподаватель с математической подготовкой из Оксфордского университета. Хотя первый интерес к компьютерам появился у него еще в нежном возрасте, чтото около 12 лет, – во времена, когда под высокими технологиями понималось использование клавиатуры, а не устройства для перфорирования карт – он, все же, не получил развития, пока Джонатан не закончил университет и не начал заниматься вычислениями профессионально. Кроме первого года после обучения, когда он, как неопытный продавец отвечал на любой вопрос «Да», вместо «Да, но это займет несколько недель на программирование и настройку», Джонатан работал только на себя. Первое знакомство Джонатана с Oracle состоялось с версией 5.1, которую он использовал на ПК, проектируя и создавая систему управления рисками для сырьевой торговой площадки в одной из крупных нефтяных компаний. (Тогда он написал на ПК первую версию системы с названием dBase III, в которой использовались таблицы, индексы и некоторые другие механизмы, характерные для систем управления реляционными базами данных.) Благодаря Oracle он узнал, что должна делать настоящая система управления реляционными базами данных, и эти знания немедленно были взяты им на вооружение. С того времени Джонатан сосредоточился исключительно на использовании Oracle RDBMS. Спустя три или четыре года работы по контракту, в течении которых он обрел опыт строительства больших систем, Джонатан решил закончить работы по контракту и заняться оказанием консалтинговых услуг, и теперь полностью посвящает свое