Целевая аудитория

Начинающие администраторы баз данных, курс также может быть полезен для разработчиков SQL, руководителей IT подразделений.
Необходимая подготовка: основы реляционной модели базы данных и языка запросов 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. Утилиты резервирования и восстановления базы данных и отдельных объектов. Примеры полного и частичного восстановления базы данных.