Экспресс-курс по Миграции с Oracle на PostgreSQL
Авторские курсы PostgreSQL

Продолжительность курса:

8 академических часов 

На курсе рассказывается о методологии миграции, этапах миграции, какие мероприятия нужно запланировать и провести на каждом этапе и по его завершению. А также легкий обзор различий в архитектуре, типах данных.

 Аудитория курса:

Администраторы и разработчики баз данных  Oracle и  PostgreSQL, участвующие в проектах миграции.

 Необходимая подготовка:
Для прохождения курса достаточно знаний SQL и понимания принципов работы и организации БД.

Программа

  1. Введение.

Определение миграции данных. Причины и предпосылки миграции данных. Отличие миграции данных от интеграции данных и репликации данных. Основные типы миграции данных.

  1. Процесс миграции данных

Описание основных подходов к миграции данных (миграция данных «большого взрыва», тонкая или «капельная миграция»). Описание процесса миграции данных:

·         Планирование

·         Аудит, профилирование и очистка данных

·         Резервное копирование данных

·         Разработка дизайна миграции данных

·         Остановка источника данных

·         Тестирование миграции данных

·         Постмиграционный аудит

  1. Знакомство с СУБД Oracle

Структура экземпляра. Физическая архитектура. Основные типы сегментов. Типы данных. Поддержка национальных языков и кодировки.

  1. Знакомство с СУБД PostgreSQL

Базы данных и шаблоны. Физическая архитектура. Объекты для хранения данных. Типы данных. Поддержка национальных языков и кодировки.

«Золотые» правила миграции. Пример миграции регулярной таблицы.

Практическое применение расширений PostgreSQL
Авторские курсы PostgreSQL

Продолжительность курса:

1 день/8 академических часов. 

При выполнении проектов по миграции целесообразно использовать "сильные" стороны Postgresql - механизм расширений для компенсации отсутствующей функциональности исходных систем на базе Oracle.

 

В рамках курса слушатели выполняют практические задания на персональных виртуальных машинах с установленной ОС Astra Linux.

 

Необходимая предварительная подготовка:

·         Базовые знания по администрированию PostgreSQL, знание SQL и PgSQL.

·         Дополнительно приветствуются знания языков программирования C, Python, R, Go и тд.

 

Аудитория курса:

·         слушатели, которые работают с Postgresql и им интересна эта тема (расширения Postgresql).

 

Программа курса

 

Рассматриваются следующие темы:

·         Общие требования к системному ПО для установки расширений Postgresql;

·         Процесс установки расширения;

·         Установка расширений, распределённых по следующим темам:

√  Расширения для разработки хранимых подпрограмм на разных языках программирования и средства отладки для PL/pgsql;

√  Расширения для реализации дополнительной функциональности БД.

            √ Каждая тема сопровождается практическими занятиями, включающими установку конкретного расширения и примеры использования.

Администрирование PostgreSQL 13. Краткий и интенсивный курс для администраторов
Авторские курсы PostgreSQL

Продолжительность

2 дня /16 академических часов 

Общее устройство сервера PostgreSQL
Работа экземпляра кластера. Процессы экземпляра. Структуры памяти экземпляра. Подключение клиентов. Организация хранения данных кластера.
Установка ПО сервера PostgreSQL и создание кластера
Пакетная установка. Установка из исходных кодов. Создание кластера.
Подключение к базе данных кластера (утилита psql)
Параметры утилиты psql. Команды утилиты psql. Конфигурация утилиты psql.
Настройка подключения и аутентификации
Файл конфигурации подключения и аутентификации. Пример конфигурации.
Конфигурирование кластера
Файлы конфигурации кластера. Обновление файлов конфигурации. Установка локальных параметров. Мониторинг значений параметров.
Буферный кэш и журнал предзаписи
Назначение буферного кэша. Конфигурация буферного кэша. Назначение журнала предзаписи. Конфигурация журнала предзаписи.
Контрольная точка
Цель выполнения контрольной точки. Процессы, выполняющие контрольную точку. Параметры контрольной точки. Мониторинг контрольной точки.
Механизм многоверсионности
Цель использования механизма многоверсионности. Формирование новых версий строк. Блокировки.
Уровни изоляции транзакций
Свойства транзакций. Уровни изоляции транзакций в стандарте SQL. Уровни изоляции транзакций в PostgreSQL.
Снимки данных
Назначение снимков данных. Использование снимков в транзакциях. Получение информации о снимке.
Создание баз данных
Базы данных кластера. Создание базы данных. Информация о базах кластера.
Создание схем
Назначение схем. Создание и использование схем. Информация о схемах.
Табличные пространства
Схема формирования табличных пространств. Администрирование табличных пространств. Информация о табличных пространствах.

Управление ролями
Назначение ролей. Создание ролей. Выдача привилегий на роли. Информация о ролях.
Управление привилегиями
Виды привилегий. Выдача привилегий. Информация о привилегиях.
Работа команды vacuum
Назначение процесса очистки. Режимы работы команды vacuum. Мониторинг работы процесса очистки.
Настройка autovacuum
Процессы автоматической очистки. Параметры autovacuum. Информация о работе autovacuum.
Cбор статистики
Процессы сбора статистики. Конфигурация сбора статистики. Просмотр статистики.
Настройка локальной памяти серверного процесса
Использование локальной памяти серверным процессом. Параметры настройки локальной памяти.
Параметры оптимизации
Способы оптимизации. Параметры оптимизации.

Логическое резервирование

Использование логической копии данных. Команды и утилиты для логического резервирования.

Физическое резервирование
Использование физической копии данных. Утилита для физического резервирования. Архивирование журнальных файлов.

Варианты обновления сервера
Формирование версий сервера. Обновление дополнительного выпуска. Обновление с помощью утилиты pg_dumpall. Обновление с помощью утилиты pg_upgrade.
Работа с внешними данными
Назначение внешних таблиц. Настройка доступа к внешним данным. Встроенные обертки внешних данных.
Управление расширениями
Назначение расширений. Структура расширений. Команды управления расширениями.
Настройка файловой репликации для физической реплики
Цель использования репликации. Создание физической реплики. Механизм передачи изменений на реплику при файловой репликации. Возможности и ограничения физической реплики.

Настройка потоковой репликации для физической реплики
Сравнение потоковой и файловой репликации. Механизм передачи изменений на реплику при потоковой репликации. Настройки для потоковой репликации. Мониторинг репликации. Проблемы репликации.

Переключение между репликами
Причины переключения на реплику. Процедуры переключения на реплику. Восстановление мастера.
Логическая репликация
Особенности логической репликации. Механизм передачи изменений на реплику при логической репликации. Режимы идентификации строк и конфликты.
Варианты конфигурации реплик
Подключение нескольких реплик. Синхронная реплика. Каскадная репликация. Отложенная репликация.

Настройка производительности и оптимизация СУБД PostgreSQL
Авторские курсы PostgreSQL

Продолжительность курса:

5 дней/40 академических часов.

Введение.
1. Знакомство с PostgreSQL. 2. Архитектура и организация данных.

Планирование запросов. Интерпретация работы планировщика.
1. Как на самом деле выполняется запрос в БД. 2. Разбор и переписывание запросов планировщиком. 3. Команда EXPLAIN и EXPLAIN ANALYZE.

Интерпретация результатов. Параллельное выполнение запросов.
1. Как работают параллельные запросы. 2. Параллельные планы выполнения. 3. Параллельные сканирования, соединения и агрегирование.

Архитектурные и проектные аспекты.

1. Проектирование БД. 2. Нормализация и денормализация. 3. Типы данных. Их влияние на производительность и емкость.

Индексы.
1. Что такое индекс. 2. Создание, удаление индексов. 3. Влияние индексов на производительность запросов и в каких случаях он необходим. 4. Влияние индексов на обновление, удаление данных.

Приемы оптимизации при наполнении БД.
1. Удаление индексов и ограничений ключей. 2. Использование операции COPY. 3. Увеличение параметров maintenance_work_mem и max_wal_size. 4. Управление автофиксацией транзакций. 5. Обновление статистики командой ANALYZE.

Регламентные задачи обслуживания БД.
1. Операция VACUUM. 2. Регламентная очистка. 3. Периодическая переиндексация.

Управление памятью.
1. Параметры, отвечающие за использование ресурсов памяти. 2. Настройка и изменение параметров. 3. Настройка журнала WAL.

Оптимизация больших таблиц.

1. Секционирование таблиц. Методы управления секциями. 2. Создание и использование представлений. Материализованные представления. 3. Создание и использование общих табличных выражений CTE. Материализованные CTE.

Статистика и мониторинг.
1. Отслеживание статистики планирования и выполнения SQLоператоров. 2. Статистика запросов. 3. Другая статистика.

Проектирование и разработка БД для промышленных OLTP систем под управлением Postgres
Авторские курсы PostgreSQL

Продолжительность

10 дней /30 академических часов 

Курс рассматривает особенности проектирования и обработки данных в высоконагруженных средах с учетом архитектурных свойств СУБД Postgres.

По окончании курса слушатель сможет:

·      Проектировать структуру данных в соответствии с бизнес-моделью, с оптимизацией под задачи обработки транзакций в реальном времени

·      Писать код запросов и процедурных единиц с учетом требований OLTP систем

·      Занятия проходят на выбор в очном или дистанционном формате с 18.00 – 21.00

Аудитория курса:

  • Будущие инженеры – программисты
  • Архитекторы баз данных           

Программа 

Принципы построения клиент-серверных систем — 1 час     
Протоколы взаимодействия, суперсерверная и многопоточная архитектуры, простейшие сервера, одновременное обслуживание соединений, прослушиватели.

Особенности архитектуры СУБД Postgres — 6 часов  
Процессы, пул соединений, память, буферный кэш, блокировки, версионность, вакууминг, файлы данных и журнала, табличные пространства и организация системного словаря.

Нормализация и избыточность, целостность данных — 2 часа         
Таблицы, отношения, избыточность, построение связей, нормализация и производительность, поддержка согласованности.         

Транзакционность, требования ACID — 2 часа
Разработка транзакций, коммит, обработка исключений, откат.  

Свойства и отличия OLTP платформ — 2 часа
Отличия OLTP от OLAP платформ.

Жизненный цикл данных — 2 часа        
Появление, очистка, нормализация, подготовка аналитики.

Поиск, сортировка, обновление — 2 часа          
Построение планов запросов, оптимизация запросов.

Накладные расходы на обслуживание — 6 часа           
Индексы, структура данных, построение связей, оптимизация для задач сбора, хранения, поиска данных.       

Распараллеливание, адаптация кода — 5 часов
Разработка запросов с параллельным выполнением, критерии распараллеливания.
Ведение логов, типы транзакций — 2 часа        
Разработка и отладка, методы отладки, автономность транзакций.

PostgreSQL: Уровень 1. Основы SQL
Авторские курсы PostgreSQL

Продолжительность курса:

3 дня/24 академических часов. 

Курс дает слушателям базовые знания SQL, которые позволяют разработчику писать запросы к одной или нескольким таблицам, создавать объекты базы данных и модифицировать данные таблиц.
После обучения на курсе Вы научитесь:

·         изменять данные в базе;

·         выполнять простые и перекрестные запросы;

·         проектировать и создавать объекты базы данных и взаимосвязи между ними;

·         адаптировать структуру базы данных под вновь возникающие требования.

            Курс предусматривает практические занятия. 

Аудитория курса:

·         администраторы баз данных

·         разработчики приложений

·         разработчики отчетов

·         бизнес-аналитики

·         научные работники 

Программа

Модуль 1. Введение в PostgreSQL
Обзор основных возможностей БД PostgreSQL. Язык SQL, его структура и основные команды. Обзор инструментария PostgreSQL.

Модуль 2. Проектирование базы данных и создание ее первичной структуры
Обзор структуры таблицы. Основные типы данных, используемые при создании столбцов таблицы. Понятия первичного и вторичного ключа. Команда CREATE TABLE. Правила целостности данных. Внешний ключ. Изменение структуры таблиц. Индексы. Представления.

Модуль 3. Выборка данных (SELECT)
Простой запрос. Его основные возможности. Арифметические выражения в выборке. Использование команды DESCRIBE для вывода структуры таблицы. Использование опции WHERE. Использование символьных литералов. Опция ORDER BY.

Модуль 4. Встроенные функции PostgreSQL
Числовые функции. Строковые функции. Функции для работы с датой. Преобразования типов. Функция COALESCE и связанные с ней функции. Операция CASE.

Модуль 5. Реализация финансовой арифметики

Модуль 6. Аггрегатные функции
Основные аггрегатные функции. Опция GROUP BY. Опция HAVING.

Модуль 7. Перекрестные запросы (выборка данных из нескольких таблиц)
Структура перекрестного запроса. Опция INNER JOIN. Опция OUTER JOIN. Соединение таблицы с самой собой. Подзапросы. Объединение результирующих множеств.

Модуль 8. Модификация данных в СУБД
Добавление строк в таблицу при помощи команды INSERT. Использование команды UPDATE для изменения строк таблицы. Удаление данных из таблицы при помощи команды DELETE. Понятие транзакции.

Модуль 9. Подключение к СУБД из прикладной программы
Понятие клиентской библиотеки. Основные виды клиентских библиотек. Понятие объектно-реляционного соответствия.

Миграция с Oracle на Postgresql на базе практического примера с анализом возникающих проблем и вариантами их решения
Авторские курсы PostgreSQL

Продолжительность курса:

2 дня/16 академических часов.

Соотношение теории к практике –50/50.

Основываясь на опыте  и решении задач, на базе практического примера с анализом возникающих проблем и вариантами их решения, Учебный Центр РДТЕХ подготовил уникальный, а самое главное актуальный  курс  по миграции  с СУБД Oracle на СУБД Postgresql. 

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

Курс разделен на 3 части: 

Первая часть – общий обзор исходной СУБД с целью оценки трудоёмкости задачи по миграции.

Вторая часть курса посвящена физическому переносу объектов:  таблиц, представлений, ограничений, индексов и т.д., и  непосредственный перенос данных из одной базы в другую. Особое внимание уделяется разрешению конфликтов из-за несовместимости отдельных типов данных и возможных решениях, а также отдельных моментов, связанных со скоростью выполнения последних задач.

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

В результате слушатели смогут получить достаточно полное представление о содержании работ, выполняемых в процессе миграции. Достаточное для принятия решений по проведению миграции, а так же позволяющее оценить объем предстоящих работ.  

Аудитория курса:

Администраторы и разработчики баз данных  Oracle и  PostgreSQL, участвующие в проектах миграции. 

Необходимая подготовка:

Базовые знания по администрированию Oracle и  PostgreSQL, знание SQL, а также основ языков PL/SQL и PgSQL. Дополнительно приветствуются знания языков python и javascript.

 

Программа

 

1. Формирование среды для выполнения работ по миграции.

2. Анализ источника (исходной системы на СУБД Oracle).

·         Определение требований миграционного проекта

·         Оценка затрат миграционного проекта

·         Анализ операционных требований

·         Анализ приложения

·         Планирование миграционного проекта

3. Шаги по миграции объектов БД.

·         Создание целевой БД (Postgresql)

·         Анализ исходной БД на предмет необходимости выполнения преобразования модели исходных данных

·         Поэтапное формирование целевой модели исходных данных

4. Перенос данных. 

·         Создание скриптов для динамической трансформации данных с учётом изменений в целевой структуре

·         Пошаговая миграция данных

·         Оптимизация процесса переноса данных

·         Тестирование результатов переноса данных

5. Проблемы переноса бизнес-логики.

·         Расширения Postgresql

·         Миграция PL/SQL процедур

·         Миграция PL/SQL функций

·         Миграция типов данных

·         Миграция триггеров

·         Миграция пакетов

6. Некоторые аспекты миграции клиентских приложений и межсистемного взаимодействия.

·         Возможные решения при миграции приложений

·         Варианты миграция систем, использующих Oracle APEX

Реализация интерфейсов к внешним системам КИС.

PostgreSQL: Уровень 2. Процедурный код и дополнительные возможности
Авторские курсы PostgreSQL

Продолжительность курса:

3дня/24 академических часов.

Курс посвящен систематическому изучению процедурного программирования в СУБД PostgreSQL. Обсуждаются управляющие структуры блока, использование SQL команд в блоке, курсоры,  создание и особенности реализации функций, триггеров, процедур в PL/pgSQL, а также типы данных, в том числе составные, динамический код, обработка ошибок, разграничение доступа.

Практики курса позволяют получить навыки самостоятельной разработки подпрограмм. 

Необходимые требования: 

·         знание SQL команд;

·         понимание механизма транзакций;

·         знакомство с основными объектами базы данных в объеме курса "PostgreSQL Уровень1: Основы SQL" 

Аудитория курса:

·         Разработчики приложений;

·         Разработчики PL/pgSQL;

·         Специалисты отделов технической поддержки;

·         Системные аналитики.

Программа

1. Введение в PL/pgSQL

Преимущества и структура PL/pgSQL. Идентификаторы. Типы данных. Инициализация переменных. Операторы. Использование встроенных функций.

2. Использование операторов SQL в блоке

Извлечение данных с помощью SELECT. Соглашения об именовании. Изменение данных при помощи DML команд.

3. Управляющие структуры

Условные операторы IF и CASE. Циклы.

4. Функции и процедуры.

Создание подпрограмм на SQL и PL/pgSQL. Параметры. Перегрузка. Категории изменчивости функций.

5. Составные типы данных и массивы

Создание и использование составных типов данных. Работа с массивами.

6. Курсоры

Объявление курсора. Операции с курсором. Циклы по курсору.

7. Динамические запросы

Выполнение динамического запроса. Способы формирования динамического запроса.

8. Обработка ошибок

Обработка ошибок в блоке PL/pgSQL. Имена и коды ошибок. Выполнение обработчика.

9. Триггеры

Виды триггеров. Триггерные функции. Момент срабатывания. Контекст выполнения триггерной функции.

10. Использование XML и JSON

Создание, выборка и обновление данных XML и JSON. Проверки на вхождение.

11. Обзор разграничения доступа

Привилегии. Роли и атрибуты.

12. Рекурсивные запросы и система правил

Рекурсивные запросы в иерархических структурах. Назначение и создание правил.