Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц
Данная публикация изъята из фонда.

Ядро Oracle. Внутреннее устройство для администраторов и разработчиков баз данных

Покупка
Артикул: 712438.01.99
В данной книге автор приводит только самую необходимую информацию о внутреннем устройстве СУБД Oracle, которую должен знать каждый администратор баз данных, чтобы успешно бороться с неполадками. Снаружи Oracle выглядит сложной. В действительности же обширные функциональные возможности основываются на очень небольшой базовой инфраструктуре, являющейся результатом архитектурных решений, принятых в самом начале и выдержавших испытание временем. Эта инфраструктура управляет транзакциями, реализует механизмы подтверждения и отката изменений, защищает целостность базы данных, позволяет выполнять резервное копирование и восстановление из резервных копий, а также обеспечивает масштабируемость до поддержки тысяч пользователей, одновременно обращающихся к одним и тем же данным. Большинство проблем, с которыми администраторы баз данных сталкиваются ежедневно, можно легко идентифицировать, если знать и понимать, как действует ядро Oracle, о чем и рассказывается в книге. Издание предназначено администраторам баз данных, готовых совершенствовать свое мастерство, когда управление СУБД осуществляется на основе глубоких знаний и понимания особенностей ее работы.
Льюис, Д. Ядро Oracle. Внутреннее устройство для администраторов и разработчиков баз данных / Джонатан Льюис ; пер. с англ. А.Н. Киселев. - Москва : ДМК Пресс, 2015. - 372 с. - ISBN 978-5-97060-169-3. - Текст : электронный. - URL: https://znanium.ru/catalog/product/1027788 (дата обращения: 29.09.2024)
Фрагмент текстового слоя документа размещен для индексирующих роботов
Джонатан Льюис

Ядро Oracle 

Внутреннее устройство 
для администраторов 
и разработчиков 
баз данных

В своей книге Джонатан Льюис приводит только самую необходимую информацию о внутреннем устройстве СУБД Oracle, 
которую должен знать каждый администратор баз данных, 
чтобы успешно бороться с неполадками, – ни больше, ни 
меньше.

Интернетмагазин:
www.dmkpress.com
Книга – почтой:
email: orders@alians-kniga.ru
Оптовая продажа: 
«Альянскнига»
Тел./факс: (499) 782-3889
email: 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. Спустя три или четыре года работы по 
контракту, в течении которых он обрел опыт строительства больших 
систем, Джонатан решил закончить работы по контракту и заняться 
оказанием консалтинговых услуг, и теперь полностью посвящает свое