Фоновый баннер

Миграция базы данных Oracle в Postgresql для администраторов и разработчиков

Москва
Иконка

Дата: 16.09.2024

Цена: 48200 руб.

Записаться на курс

Москва
Иконка

Дата: 11.10.2024

Цена: 48200 руб.

Записаться на курс

Подробнее о курсе

Краткое описание курса
По окончанию курса слушатели смогут  ориентироваться  в вопросе миграции структур данных, данных, программных модулей, конфигураций сервера базы данных Oracle в PostgreSQL. На конкретных примерах будет рассмотрен перенос данных и создание программных единиц в PostgreSQL, подобных тем, что были в базе данных Oracle
Задача курса — показать архитектурные особенности сервера PostgreSQL, его тонкую настройку с точки зрения сервера Oracle, отличие механизма хранения данных в Oracle от PostgreSQL, правила прозрачного переноса хранимых программных модулей из Oracle в PostgreSQL, разница между языком Postgres PLPGSQL и Oracle SQL. Также на примерах будет рассмотрен механизм взаимодействия базы данных PostgreSQL  с базой данных Oracle с использованием встроенного языка программирования Python

Целевая аудитория курса
Профессиональные администраторы и разработчики Oracle, переводящие свои данные, приложения, конфигурации сервера Oracle в современную базу данных  PostgreSQL

Необходимая предварительная подготовка
Знания основ операционной системы Linux, желательно знание базовой архитектуры сервера Oracle, основы языков программирования — Oracle PL/SQL, языка запросов SQL, Python, Java

Содержание курса
М
одуль 1

  • PostgreSQL и Oracle – интегрированные базы данных
  • Логическая и физическая компоновка баз данных
  • Процессы управления
  • Архитектура табличных пространств
  • Оптимальное использование памяти сервером
  • Основные конфигурационные файлы PostgreSQL, настройка логирования
  • Общая и рабочая области памяти, серверные процессы
  • Калькулятор настройки производительности сервера PostgreSQL

Модуль 2

  • Утилиты разработчика и администратора для взаимодействия с базой данныхPostgresql(psql, pgcli, dbevar, pgadmin)
  • Сравнение с популярными в прошлом утилитами: sqlplus, SQLDeveloper, PLSQL Developer, Oracle EnterpriseManager

Модуль 3

  • Типы данных данных PostgreSQL (обзор)
  • Рациональное использование табличных пространств для размещения больших объектов
  • Слои хранения данных в табличных пространствах
  • TOASTфайлы
  • Использование объектных и агрегатных типов для хранения данных
  • Порядок доступа к объектам базы данных, их размер, страничное хранение
  • Стандартные схемы и каталоги — введение в архитектуру словаря метаданных PostgreSQL — отличие от словаря Oracle
  • Два каталога словаря метаданных PostgreSQL
  • Разница между ролямиPostgresqlи пользователями, и ролями Oracle

Модуль 4

  • Расширения базы данныхPostgresqlдля организации наблюдения за распределением памяти и процессом подготовки SQL запросов, страницы в разделяемой памяти, подключение дополнительных механизмов логирования приложений (подобные механизмы в Oracle были доступны через представления словаря метаданных)

Модуль 5

  • SELECT
  • Использование подзапросов во фразе From
  • Подзапросы
  • Коррелированные подзапросы
  • Древовидные структуры
  • Конструкции во фразеSELECT. (rollup,cube, case)
  • Аналитические функции в запросах. Вложенные таблицы в виде агрегатных типов данных
  • Работа со структурами записей, создание сложных типов данных — в сравнении Oracle и PostgreSQL
  • Массивы и особенности их хранения вTOASTфайлах
  • Особенности хранения больших данных в PostgreSQL

Модуль 6

  • Язык манипулирования данными DML
  • Команды копирования данных — вместо INSERT
  • Загрузка и выгрузка данных — по аналогии с утилитами импорта и экспорта в Oracle
  • Доступ из базы данных PostgreSQL к внешним данным, по аналогии с внешними таблицами в Oracle

Модуль 7

  • Оптимизация SQL запросов: Настройка производительности приложения
  • Разделяемый пул и рабочая область. Оптимизатор. Команда Analyze
  • Организация и планирование сбора статистики по объектам. Вакуум
  • Ранжирование методов доступа
  • Анализ запросов с целью повышения скорости их выполнения
  • Команда Explain и алгоритмы её использования
  • Правила оптимизации запросов и их оценка
  • Практические примеры оптимизации.  Автоматический сбор статистики по таблицам и параметры конфигурации сервера
  • Отсутствие возможности в PostgreSQL управлением планом запросов с помощью подсказок (Oracle Hints), чем заменить?

Модуль 8

  • Язык DDL. Создание и изменение таблиц (DDL)
  • КомандаCreateTable. Определение параметров хранения таблиц на физическом уровне
  • Структура записи в PostgreSQL, отличия
  • Отсутствие привязки к текущему времени (OracleSCN), отсутствие ретроспективных запросов
  • Введение в WAL журналирование
  • Основные параметры WAL и VACUUM, контрольные точки и производительность, сравнение с параметром Oracle — fast_start_mttr_target

Модуль 9

  • Транзакции
  • Конкуренция параллельность и согласованность
  • Транзакции и взаимовлияние
  • Наблюдение за активными запросами и сессиями в PostgreSQL

Модуль 10

  • Создание временных транзакционных и сессионных таблиц
  • Использование временных таблиц (PostgreSQL) для эмуляции работы пакетных переменных (Oracle), использованиеCTEтаблиц в запросах, создание структур данных в памяти, без хранения их на диске в PostgreSQL
  • Разница в использовании временных табличных пространств в Oracle и PostgreSQL

Модуль 11

  • Создание таблиц с разбивкой на партиции
  • Ссылочные партиционные таблицы
  • Примеры использования партиционных таблиц с различными типами разбивки
  • Индексные таблицы
  • Доступ к данным в индексных таблицах, проблемы обновления данных
  • Особенности размещения индексных таблиц в физических блоках дисковой памяти
  • Отсутствие отдельного функционала в Postgres и способы обхода

Модуль 12

  • Другие объекты.
  • Представления. Материализованные представления данных в PostgreSQL.
  • Принудительное обновление данных. Расширение DBLINK в PostgreSQL, создание соединений с другими базами данных PostgreSQL
  • Расширение plpython3u. Создание соединений из Postgres с Oracle c использованием языка Python — перенос данных из Oracle

Модуль 13

  • Взаимодействие Python в PostgreSQL взаимодействовать с любыми серверами: SQL, NoSQL, серверами сообщений, LDAP и прочими — на примерах (Kafka, ActiveMQ)
  • Взаимодействие сервера PostgreSQL с микросервисной архитектурой предприятия на примере Spring или JakartaEE приложения. Использование в PostgreSQL типа данных JSON

Модуль 14

  • Особенности миграцииPL/SQLмодулей Oracle в PostgreSQL
  • Два языка программирования модулей -sqlи plpgsql
  • Отсутствие пакетов в стандартной версии PostgreSQL, механизм обхода этой проблемы с помощью схем и временных транзакционных таблиц
  • Особенности размещения модулей в базе данныхPostgresql- компиляция?
  • Обработка исключительных ситуаций. Повторное возбуждение исключений
  • Перехват ошибок
  • Создание логера приложения с возможностью записи сообщений в отдельный файл операционной системы

Модуль 15

  • Использование программных модулей в SQLзапросах. Транзакционные, волотильные и стабильные модули в сравнении с модулями Oracle, описанными прагмами
  • Модули, вложенные друг в друга, особенности повторной «компиляции» и определения пространства имён переменных в модулях
  • Переменные и курсорные ссылочные переменные — в сравнении

Модуль 16

  • Тригеры объектные и системные

Отзывы по курсу