УДК 004.65:004.451Oracle Database
ББК 32.973.34
Л91
Л91
Льюис, Джонатан.
Ядро Oracle. Внутреннее устройство для администраторов и разработчиков
баз данных / Дж. Льюис ; пер. с англ. А. Н. Киселева. — 2-е изд., эл. —
1 файл pdf : 373 с. — Москва : ДМК Пресс, 2023. — Систем. требования:
Adobe Reader XI либо Adobe Digital Editions 4.5 ; экран 10". — Текст : электронный.
ISBN
978-5-89818-327-1
В данной книге автор приводит только самую необходимую информацию о внутреннем
устройстве СУБД Oracle, которую должен знать каждый администратор
баз данных, чтобы успешно бороться с неполадками.
Снаружи Oracle выглядит сложной. В действительности же обширные функциональные
возможности основываются на очень небольшой базовой инфраструктуре,
являющейся результатом архитектурных решений, принятых в самом начале и выдержавших
испытание временем. Эта инфраструктура управляет транзакциями,
реализует механизмы подтверждения и отката изменений, защищает целостность
базы данных, позволяет выполнять резервное копирование и восстановление из резервных
копий, а также обеспечивает масштабируемость до поддержки тысяч пользователей,
одновременно обращающихся к одним и тем же данным.
Большинство проблем, с которыми администраторы баз данных сталкиваются
ежедневно, можно легко идентифицировать, если знать и понимать, как действует
ядро Oracle, о чем и рассказывается в книге.
Издание предназначено администраторам баз данных, готовых совершенствовать
свое мастерство, когда управление СУБД осуществляется на основе глубоких знаний
и понимания особенностей ее работы.
УДК 004.65:004.451Oracle Database
ББК 32.973.34
Электронное издание на основе печатного издания: Ядро Oracle. Внутреннее устройство для
администраторов и разработчиков баз данных / Дж. Льюис ; пер. с англ. А. Н. Киселева. —
Москва : ДМК Пресс, 2015. — 372 с. — ISBN 978-5-97060-169-3. — Текст : непосредственный.
Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то ни было
форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав.
Материал, изложенный в данной книге, многократно проверен. Но поскольку вероятность технических
ошибок все равно существует, издательство не может гарантировать абсолютную точность и правильность
приводимых сведений. В связи с этим издательство не несет ответственности за возможные ошибки, связанные
с использованием книги.
В соответствии со ст. 1299 и 1301 ГК РФ при устранении ограничений, установленных техническими средствами защиты
авторских прав, правообладатель вправе требовать от нарушителя возмещения убытков или выплаты компенсации.
ISBN 978-5-89818-327-1
© by Jonathan Lewis
© Оформление, перевод на русский язык
ДМК Пресс, 2015
Стр.5
оглавление
Об авторе ..........................................................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
Стр.6
6
Оглавление
Номер 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
Стр.7
Оглавление
7
Сканирование таблиц ...................................................................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
Стр.8
8
Оглавление
Выполнение, блокировка и закрепление .......................................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
Стр.9