Целевая аудитория
Начинающие администраторы баз данных, курс также может быть полезен для разработчиков SQL, руководителей IT подразделений.
Необходимая подготовка: основы реляционной модели базы данных и языка запросов SQL.
Необходимая подготовка: основы реляционной модели базы данных и языка запросов SQL.
Программа
-
Введение в PostgreSQL. Краткая история. Предназначение и функциональность, управление базой данной. Место базы данных в трехзвенной архитектуре вычислений масштаба предприятия.
Архитектура PostgreSQL. Общее устройство сервера базы данных, основные компоненты. Управление транзакциями. Отличие бизнес транзакций от транзакций базы данных. Двухфазный и однофазный commit. Как сервер приложений помогает базе данных. Базы данных и схемы, системный каталог и метаданные базы данных. Как устроены табличные пространства базы данных PG
Установка PostgreSQL. Подготовка операционной системы CentOS для размещения на ней базы данных. Использование ARM процессоров для работы PG. Компиляция базы данных из исходных кодов. Подготовка каталогов для размещения в них баз данных и табличных пространств. Задачи администратора. Основные утилиты администратора для управления базой данных - инсталяция. Запуск PG из командной строки и как сервис операционной системы. Расширения сервера PG.
Подключение и аутентификация. Конфигурационный файл pg_hba.conf. Утилиты createuser и dropuser. Членство в роли. Методы аутентификации - trust, password, ident. Использование аутентификации на уровне сервера приложений, декораторы и интерцепторы на основе EJB компонент. Роли базы данных, операционной системы и сервера приложений.
Использование psql, pgcli, pgadmin - на примерах. JDBC драйвер для работы с базой данных, доступ к PG из java приложений, основные интерфейсы. Управление и наблюдение за клиентскими процессами.
Базы данных. Создание. Кластер базы данных. Схемы и пространства имен внутри базы данных. Пользователи. Специальные схемы и их назначение. Временные схемы и таблицы - особенности взаимодействия с сервером приложений. Порядок авторизации пользователя в базе данных. Настройка пула соединений сервера приложений для авторизации конкретного пользователя
Табличные пространства и каталоги. Управление табличными пространствами. Табличные пространства и метаданные. Перенос табличных пространств на другие разделы физических дисков.
Системный каталог - предоставляет доступ к метаданным сервера. Стандартные представления метаданных и метаданные postgresql. Организация SQL доступа. Общие объекты кластера базы данных. Правила именования объектов в PG. Специальные типы данных в определении первичных и внешних ключей системного каталога. Уникальный идентификатор OID. Управляющий (control) файл, основные переменные файла. Потеря control файла, порядок восстановления базы данных. Каталог глобальных таблиц и метаданных.
Основные объекты БД. Таблицы и типы данных. Создание таблиц и размещение данных в конкретных табличных пространствах. Описание колонок. Ограничения целостности в PG - проверки, внешние и первичные ключи, NOT NULL, UNIQUE. Системные столбцы. Изменение и удаление таблиц. Представления и материализованные представления - производительность запросов. Схемы в базе данных, изменение последовательности поиска объектов в базе данных. Определение размера объектов в базе данных.
Выборка данных из таблиц. Соединение, агрегирование и группировка, подзапросы - правила работы команды SELECT, команды DML. PL/pgSQL процедурный язык. Легкий Обзор . Преимущества и недостатки. Поддерживаемые типы данных. Структура блока. Объявление переменных, параметров , процедурных блоков. Наследование типов данных базы данных. Тип данных запись. Обзор операторов. Явные и неявные курсоры. Динамический SQL. Расширение pg_stat_statements.
Индексы- назначение. Построчное и поколоночное хранение данных. Типы индексов и их создание. Составные и уникальные индексы. Функциональные индексы. Индексирование части строк таблицы. Индекс - организованные таблицы (INCLUDE). Сбор статистической информации по индексам, отбраковка и реорганизация индексов. Партиционные таблицы, декларативное описание партиций в postgres 10 и выше, списочные, ранжированные и другие виды партиций.
Транзакции в базе данных PG. Уровни изоляции транзакций. Многоверсионность строк в таблицах. Блокировки на уровне строк и таблиц. Просмотр информации о блокировках. Поиск и удаление «плохих» сессий клиента.
Конфигурация сервера - файл postgresql.conf . Имена и типы параметров, изменения. Управления параметрами через SQL, просмотр параметров - команда SHOW. Управление параметрами через командную строку при старте сервера. Вложенные конфигурационные файлы Управление производительностью PG. Методы доступа к данным , доступ к данным на основе индекса, индексный просмотр данных. Битовые карты для просмотра данных, Nested loop, Hash join, Merge Join. Планы выполнения запросов - explain. Управление планом выполнения запросов при помощи команды SET текущего сеанса. Оптимизация запросов - сбор и обновление статистики, управление методами доступа, использование механизмов хеширования
Мониторинг работы системы. Стандартные инструменты Unix. Конфигурация системы сбора статистики, просмотр статистики через представления словаря метаданных. Дополнительные функции для просмотра статистической информации. Компиляция сервера с предоставлением трассировки во время выполнения. Мониторинг использования дискового пространства. Журнал упреждающей записи (WAL) и асинхронное подтверждение транзакций
Управление журналами WAL. Перевод базы данных в режим архивирования. Потеря журнальных файлов, восстановление работы базы данных. Контрольные точки, переключение журналов и влияние на производительность. Перенос WAL журналов в другое место физического диска. Мониторинг. Резервирование журналов транзакций, восстановление после аварийного сбоя и откат базы данных на период назад. Полный backup. Планирование восстановления базы данных после аварии.
Логические и поточные репликации. Режим работы standby. Примеры логических репликаций между несколькими базами данных postgres. Утилиты резервирования и восстановления базы данных и отдельных объектов. Примеры полного и частичного восстановления базы данных.