Предисловие....8
Об этой книге....10
Глава 1. Обзор статистики....16
«Postgres — это сервис»....16
Внутреннее устройство PostgreSQL....17
Установка соединений и работа сеансов....18
Запросы как базовая единица рабочей нагрузки....18
Планирование и выполнение запросов....18
Ввод-вывод при выполнении запросов....19
Журнал упреждающей записи — Write-Ahead Log....21
Журнал сообщений СУБД....22
Репликация изменений....22
Архивирование журнала предзаписи....22
Фоновая синхронизация данных....23
Автоочистка....23
Интерфейс статистики....24
Статистика как отправная точка инструментов мониторинга....25
Особенности статистики....25
Тестовое окружение....26
Глава 2. Статистика активности....28
Ключ к пониманию происходящего в СУБД....28
Взаимодействие клиента и сервера....29
Источники информации об активности....32
Представление pg_stat_activity....32
Представление pg_locks....36
Особенности pg_stat_activity и pg_locks....38
Представление pg_stat_database....38
Подключенные клиенты....40
Отслеживание клиентских сеансов....42
Транзакционная активность....45
Статусы завершения сеансов....47
Состояния сеансов....50
Отслеживание состояний....51
Ожидания и блокировки....52
Отслеживание состояний с учетом ожиданий....54
Взаимоблокировки....56
Бездействующие транзакции....57
Время выполнения запросов и транзакций....59
Отслеживание времени ожидания блокировок....62
Использование pg_locks.waitstart....62
Использование pg_stat_activity.state_change....64
Дерево блокировок....66
Глава 3. Выполнение запросов и функций....72
Зачем нужен мониторинг запросов....72
Расширение pg_stat_statements....74
Метаданные запроса....76
Планирование запроса....77
Исполнение запроса....80
Сквозная идентификация с queryid....92
Построение отчетов на основе pg_stat_statements....92
Представление pg_stat_statements_info....95
Выполнение процедур и функций....96
Глава 4. Базы данных....100
Иерархия объектов СУБД....100
Кластер баз данных....101
Табличные пространства....102
Базы данных....104
Схемы....104
Таблицы и индексы....105
TOAST....107
События в кластере баз данных....107
Рабочая нагрузка в отношении таблиц и индексов....108
Ошибки и нежелательные события....115
Функции для работы с объектами СУБД....117
Определение размеров объектов СУБД....118
Размещение объектов в файловой системе....124
Глава 5. Область общей памяти и ввод-вывод....130
Анализ общей памяти....131
Представление pg_buffercache....131
Представление pg_shmem_allocations....136
Анализ памяти клиентских процессов....137
Оценка использования SLRU-кешей....138
Ввод-вывод в контексте объектов СУБД....139
Базы данных....140
Таблицы, индексы и последовательности....141
Ввод-вывод в контексте выполнения запросов....144
Временные файлы....145
Уровень баз данных....146
Ввод-вывод при выполнении запросов....147
Отслеживание в журнале сообщений....148
Отслеживание активных временных файлов....149
Ввод-вывод фоновых процессов....150
Глава 6. Журнал упреждающей записи....158
Write-Ahead Log — журнал упреждающей записи....158
Отслеживание активности в журнале....162
Представление pg_stat_wal....163
Представление pg_stat_statements....166
Архивирование журнала....167
Представление pg_stat_archiver....168
Очередь архивирования....170
Глава 7. Репликация....174
Обзор репликации....174
Инструменты отслеживания репликации....177
Представление pg_stat_replication....178
Представление pg_stat_wal_receiver....182
Cлоты репликации и pg_replication_slots....184
Публикации и подписки....188
Конфликты восстановления....191
Глава 8. Очистка....196
Введение в очистку....196
Особенности очистки на практике....198
Когда выполняется автоочистка?....198
Статистика выполнения очистки....201
Счетчик транзакций и предотвращение ошибок, связанных с его зацикливанием....203
Раздувание таблиц и индексов....211
Отслеживание активных процессов очистки....214
Представление pg_stat_activity....214
Представление pg_stat_progress_vacuum....218
Глава 9. Ход выполнения операций....222
Представление pg_stat_progress_analyze....223
Представление pg_stat_progress_basebackup....225
Представление pg_stat_progress_cluster....227
Представление pg_stat_progress_create_index....229
Представление pg_stat_progress_copy....232
Приложение. Тестовое окружение....236
Предметный указатель....240
Мониторинг PostgreSQL составляет важную часть работы администратора, помогая отвечать на многие вопросы, связанные с производительностью. Эта книга всесторонне охватывает обширную тему мониторинга, соединяя в себе справочные материалы об инструментарии, практические приемы его использования и способы интерпретации полученных данных. Знание внутреннего устройства PostgreSQL и особенностей мониторинга, почерпнутое из этой книги, поможет в долгосрочной перспективе эффективно эксплуатировать СУБД и успешно решать возникающие задачи.
Для администраторов баз данных, системных администраторов, специалистов по надежности.