- PVSM.RU - https://www.pvsm.ru -

Postgresso #2 за 2022 (39)

Postgresso #2 за 2022 (39) - 1

В эти безрадостные дни многим трудно работать, сочинять и даже читать статьи. Но ИТ-инфраструктура это как водопровод — без неё жизнь уже почти невозможна. И мы продолжаем выпускать Postgresso. По понятным причинам в этом выпуске будет много ссылок, меньше анализа. И главная тема — миграция

Миграция

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

Начнём с Oracle to Postgres Conversion [1]

Это официальный документ сообщества PostgreSQL [2]. Есть список инструментов миграции.

The Complete Oracle to PostgreSQL Migration Guide: Move and convert Schema, Application & Data [3]

Довольно пространное руководство от EDB. Есть матрица возможностей миграционных инструментов.

Oracle to Postgres Migrations [4]

Полуторачасовая презентация, рассказывает Пётр Петров (Postgres Professional) — очень рекомендуем. Это умелый практик и знаток нюансов миграции. Но презентация на английском.

Почему мы перешли с Oracle на PostgreSQL, и как это сделать [5]

Эта статья 2021-го в хаброблоге Ростелекома [6]. Их серверы на RedOS 7.2 «Муром», а СУБД брали самую свежую (на тот момент) — Postgres Pro Standard 13. Репликацию делали при помощи расширения Oracle FDW [7], которое поддерживает Лоренц Альбе (Laurenz Albe).

В статье разобрано немало нюансов, связанных с различиями Oracle и Postgres, но непредсказуемость ORDER BY — выделили даже в раздел Почему ваши данные скорее всего никогда не сойдутся:
«Все запросы, в которых нет order by будут выполняться „как решил сервер БД“, т.е. порядок сортировки в общем случае „не задан“. К сожалению это влияет на все, где нет ORDER BY — вывод списков с данными на фронте, вывод данных в отчетах. Да, в таких случаях хорошо бы было всегда использовать ORDER BY, но как быть в ситуациях, когда так не было изначально? Отмечать эти особенности как „не ошибка“ и комментировать различия пользователям.»

Более подробно мы говорили об этой статье в Postgresso #33 [8].

Миграция приложения Oracle PL/SQL на Postgres pl/pgSQL: взгляд два года спустя [9]

Доклад Анатолия Анфиногенова из АО «ВНИИЖТ» (ДЗО ОАО «РЖД») на PGConf.Russia 2021 [10]. Анатолий — заместитель директора научного центра, начальник отдела разработки программного обеспечения АО «ВНИИЖТ». Речь о большом проекте РЖД. Распределенное серверное приложение, работающее 24/7 на полигоне 16 железных дорог от Калининграда до Хабаровска плюс несколько БД центрального уровня — РЖД есть РЖД. Перенесли с Oracle 11g SE на ванильный PostgreSQL 11.9. В докладе: как переходили, с какими проблемами столкнулись при переходе и при эксплуатации, что сегодня сделали бы иначе.

Всем доступны слайды, а тем, у кого есть вход в личный кабинет участников конференции, и видео тоже.

Экстремальная миграция на PostgreSQL: без остановки, потерь и тестирования [11]

Блог компании ЮMoney (ранее — Яндекс.Деньги, входит в экосистему Сбера). Статья 2017-го. Миграция прошла без остановки и без потерь, заняла 4 с половиной месяца усилиями 4 человек. Переносить пришлось около 50 таблиц.

Использовали SymmetricDS [12], но без «ручных» усилий все равно не обошлось. Инструмент миграции выбирался из такого списка (воспроизводим плюсы и минусы, кратко описанные в статье):

  • Oracle GoldenGate [13] — может показаться, что это та самая серебряная пуля. По крайней мере, до момента ознакомления с ценой.
  • SymmetricDS [12] — есть миграция схемы, она будет создана или обновлена при регистрации узла PostgreSQL в мастер-узле Oracle. Есть возможность трансформировать данные при выгрузке или загрузке, используя BASH, Java или SQL.
  • Full Convert [14] — умеет мигрировать схему и данные, но ограничены возможности кастомизации, нет изменяемых трансформеров (код для изменения данных при миграции).
  • Oracle to PostgreSQL Migration [15] — переносит схему, данные, внешние ключи, индексы. Полуавтоматическая репликация, трансформации нет, но можно задать соответствие типов в разных БД.
  • ESF Database Migration Toolkit [16] — переносит все то же, что и Oracle to PostgreSQL Migration. Данные передаются в пакетном режиме, возможность миграции в несколько потоков отсутствует.
  • Ora2Pg [17] — переносит схему, данные, внешние ключи, индексы, возможна миграция в несколько потоков. Из минусов: медленный перенос таблиц с типами blob/clob (около 200 записей/сек), нет трансформатора.
  • SQLData Tool [18] — мигрирует только схему, ограничены возможности кастомизации.

От Oracle к PostgreSQL — путь длиною в 4 года [19]

Статья по мотивам одноименного доклада [20] Андрея Рынкевича (Phorm) на PGDay 2017.

Немаловажная предыстория: «Как только выросло количество данных [в Oracle] и нагрузка — стало понятно, что оптимизации запросов и структуры недостаточно. Как минимум, надо было включить партиционирование, а, в идеале, надо было перейти на какое-то MPP решение, которое у Oracle стоит безумных денег: grid, RAC, Exadata.»

В результате за основу взяли PostgreSQL. Сначала запустили один мощный сервер рядом с Oracle, постепенно на него мигрировали. После собирались переходить на MPP-решение от Greenplum, но не сложилось.

Вся работа заняла 4 года. Задача усложнялась непрерывном ростом статистики и нагрузки, и тем что существует еще один продукт, который интенсивно использует БД.

Во время миграции было реализовано много решений, таких как:

  • online репликация Oracle в PostgreSQL;
  • система патчинга баз данных, синхронизации и запуска приложений;
  • система загрузки большого объема статистических данных;
  • система мониторинга, в том числе было реализовано что-то вроде Oracle Enterprise Manager для PostgreSQL;
  • переход на BI систему Pentaho на этой базе данных.

История успеха «Яндекс.Почты» с PostgreSQL [21]

Доклад Владимира Бородина (из Яндекс, не путать с его коллегой Андреем Бородиным) на Highload++ 2016 [22]. Он знакомит со сложностями миграции крупного проекта с Oracle Database на PostgreSQL. Это расшифровка доклада с конференции HighLoad++ 2016. Получасовое видео есть на youtube [23].

Это нешуточный проект, мягко говоря: больше 10 миллионов пользователей в сутки, более 200 тысяч запросов в секунду в пике, более 150 миллионов писем в сутки, прошедших проверки на спам и вирусы. Суммарный объём писем за все 16 лет — больше 20 петабайт.

Но речь о переезде метаданных из Oracle в PostgreSQL. Их тоже немало: больше трехсот ТБ. Более 250 тысяч запросов в секунду. В основном это маленькие OLTP-запросы, по большей части (80%) чтение.

О том, как справились, почитайте в статье. Есть там и список проблем, с которыми самим справиться не удалось. По этим вопросам пришлось обратиться к комьюнити, и комьюнити помогло. Есть и перечень того, чего в Postgres этой команде не хватает.

Миграция с Oracle на PostgreSQL при помощи Ora2Pg [24]

Видео Клуба разработчиков СПб [25]. Вадим Краузе, специалист-разработчик ИС делится собственным опытом миграции данных из Oracle на PostgreSQL. А также о необходимых настройках инструмента миграции Ora2Pg, ошибках и сложных ситуациях, способах их решения, производительности процесса миграции данных. Запись с 6-й конференции «Проекты, процессы и практики» Клуба разработчиков СПб ИАЦ.

Полезные скрипты при миграции из Oracle в PostgreSQL [26]

«Процесс переноса выглядел следующим образом: создание структуры таблиц через ora2pg, исправление структуры по эталонной схеме, перенос данных, конвертация blob и Boolean, добавление отсутствующих в PostgreSQL функций (nvl, nvl2, regexp_substr), создания оставшейся структуры — индексов, view и прочего. В статье — накопившиеся за время конвертации sql скрипты для полуавтоматической миграции.»

Заодно напоминаем об интересном пакете — orafce [27]

Это набор Oracle-совместимых функций поверх PostgreSQL. Главный разработчик Павел Штехуле (Pavel Stehule).

Cybertec Migrator [28]

Он позиционируется как самый простой, безопасный способ миграции с Oracle на PostgreSQL. И с малым временем останова.

Миграция с Oracle в PostgreSQL. Как мигрировать базу данных Oracle в PostgreSQL? [29]

Видео от Ispirer Systems. В этой презентации: как Ispirer MnMTK осуществляет автоматическую конвертацию базы данных Oracle в PostgreSQL.

Ещё там есть несколько ссылок по теме:
Миграция с Oracle на PostgreSQL [30] — коротенький ролик об автоматизации миграции;
Oracle to PostgreSQL Migration with ora2pg [31] — доклад на PostgresConf South Africa;
Демо [32] миграции.

Миграция на СУБД PostgreSQL/Postgres Pro [33]

Есть ещё PDF и видео доклада Миграция на СУБД PostgreSQL/Postgres Pro с многоядерными серверами Bull. Реальный опыт [34] (видео только через личный кабинет участника) на PGConf.Russia 2019 [35] Артёма Иванова и Алексея Игнатова

Интересно в том числе тем, что здесь касаются сложного вопроса: PostgreSQL и многоузловые NUMA-сервера (Артём Иванов представлял Atos, Алексей Игнатов в то время работал в Postgres Professional). Они рассказывают об опыте стрессового тестирования PostgreSQL и Postgres Pro на BullSequana S и Bullion S. В Postgres Professional делали некоторые доработки (патчи) специально на случай NUMA. Вообще на эту тему советуем почитать здесь: Параллелизм в PostgreSQL: не сферический, не конь, не в вакууме [36].

Oracle to PostgreSQL Migration Tutorial part 1 [37] и part 2 [38]

Видео мастер-класса Альваро Эрнандеса (Álvaro Hernández Tortoza) на PGConf.Russia 2019 [38]. Впрочем, это скорее 3-часовой доклад. Важно, что он основан на собственном опыте: переносе софта мессинджера BlackBerry (BBM [39]) с 150 млн пользователей, который был на Oracle на серверах DC самой компании BlackBerry. А переехал на PostgreSQL в облачную инфраструктуру. На youtube есть только 1-я часть. Обе части [38] есть на сайте конференции, но там видео доступно только через личный кабинет.

Миграция из Oracle в Postgres [40]

Статья 2020-го года от InfoWatch, в которой показывается перенос небольшой схемы (15 Гбайт) с Oracle 11.2.0.4 на Linux Redhat 6.8 в Postgres 9.4 на Windows — нечастый случай переезда на Postgres под Windows, да ещё и с Linux.

Миграция с MS SQL

Миграция OLTP с MSSQL на PostgreSQL [41]

Это ссылка на PDF-презентацию, есть и 40-минутное видео [42]. Кристина Кучерова из Distillery рассказывает не только о том, как надо, но и о собственных ошибках (в презентации раздел Грабли).

Миграция с DB2

Миграция БД больше 10Тб с DB2 на PostgreSQL без простоя БД [43]

Рассказывает Дмитрий Погибенко (НИИ Восход). Это ссылка на видео, а здесь тезисы [44].

Да, случаются ещё миграции и с DB2. Среди сложностей, о которых рассказывается в этом видео, были: необходимость трансформации данных из-за отличий между DB2 и PG и перемещением BLOB'ов в Ceph. Решали миграционные задачи так:

  • отслеживая изменения с помощью триггеров;
  • анализируя зависимости с помощью доработанного SchemaSpy [45];
  • переносили с помощью Spring Batch [46];
  • разбиение на секции (два подхода: 1. деление диапазона id между min и max на равные части и 2. деление на диапазоны с равным числом строк).

Ещё

Пользовательские агрегатные и оконные функции в PostgreSQL и Oracle [47]

Не о миграции, но при миграции может пригодиться. В этой статье Егора Рогова в двух системах создаются пользовательские агрегатные и оконные (в терминологии Oracle — аналитические) функции. Несмотря на различия в синтаксисе и в целом в подходе к расширяемости, механизм этих функций очень похож. Но и различия тоже имеются.

Но не менее полезна может оказаться другая статья Егора, которая фокусируется на серьёзнейшем архитектурном отличии Oracle от Postgres: Обработка запросов в Oracle и PostgreSQL: следствия одного решения [48]

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

Zero-downtime schema migrations in Postgres using Reshape [49]

О миграции, хотя и не с Oracle: статья этого года Фабиана Линдфорса (Fabian Lindfors), который и создал расширение reshape [50]. У него статус экспериментального, для промышленной эксплуатации автором не рекомендовано, но стоит обратить внимание. Фабиан делал Reshape для миграции (PG -> PG) без останова. Reshape в каждый момент времени убеждается, что доступны и старая, и новая схема. Это даёт возможность разворачивать миграцию постепенно. Все изменения делаются так, чтобы избежать лишних блокировок. Работает начиная с PostgreSQL 12.

Сейчас доступна версия reshape 0.5.1 [51]

В ней исправление багов. А вот в тоже недавней 0.5.0 [52] немало нового:

  • добавлена возможность remove_foreign_key;
  • переменные окружения для соединения автоматически загружаются из .env-файла, если он есть;
  • Reshape можно будет использовать без времени простоя для уже существующих приложений и баз данных;
  • введён таймаут для блокировок в случае, когда блокировка может вызвать остановку; перед следующей попыткой получить блокировку должна пройти секунда;
  • автоматически возобновляются попытки запросов при ошибках (например, ошибках соединений);
  • добавлены переменные окружения для всех опций соединения; переменная POSTGRES_URL переименована в DB_URL;
  • добавлен флаг --version при котором распечатывается текущая версия.

migra [53]

migra — инструмент для сравнения схем баз данных PostgreSQL, представляет собой CLI и Python-библиотеку. Предназначен для автоматизации изменений. Разработчик — DatabaseCI, Австралия. По отзывам довольно необычный и удобный интструмент.

ARM и Postgres

Тема очень актуальна. Сейчас многие пробуют, например, Байкал-М [54], работающий на ARM. Но мы здесь не касаемся производительности и архитектуры [55] Байкалов. Только о том, как он работает с PostgreSQL.

Тема началась давно. Вот, например, статья 2017-го года:

Running Production PostgreSQL Systems On ARM Architecture [56]

Это любопытный проект, поддержанный Евросоюзом: Modular Microserver Data Centre [57]. Железо на базе 4-ядерных 2.2GHz Tegra [58] (то есть ARM+GPU) от Nvidia. Соответственно, использовалось расширение PG-Strom [59]. Автор — Каарел Моппел (Kaarel Moppel, старший консультант Cybertec) — выложил и PDF [60].

Опыт тестирования PostgreSQL 13 на ARM-серверах HUAWEI TaiShan 200 [61]

Свежая статья от самой Huawai, автор — пре-сейлз Вадим Суфияров. Настройка, оптимизация, pgbench, сравнение с архитектурой x-86.

Выводы: Производительность системы зависит от используемого оборудования, операционной системы и базового программного обеспечения. На это также влияет общий дизайн каждой подсистемы, используемые алгоритмы и настройки компилятора.

Основываясь на результатах текущего тестирования с синтетическими данными, мы можем сделать вывод, что серверы могут использоваться в качестве высоконагруженных узлов PostgreSQL и способны выдать производительность не ниже, чем аналогичные платформы x86. В среднем производительность сервера на платформе ARM выше аналогичной конфигурации на платформе x86 на уровне 10-15%.

PostgreSQL on Oracle free tier ARM [62]

Швейцарец Франк Пашо (Franck Pachot), представляет Oracle Team. PostgreSQL на Oracle — звучит странновато, но речь о всего лишь о PostgreSQL 14 beta на Oracle Linux 7.9. Процессоры — ARM v8.2 с инструкциями LSE (по словам Франка это большая разница — см. статью Александра Короткова, ныне OrioleDB [63] Dramatical Effect of LSE Instructions for PostgreSQL on Graviton2 Instances [64]).

Ещё от Пашо:

SQLcl to transfer data from Oracle to PostgreSQL or YugabyteDB [65] — Oracle сделал сам утилиту для миграции ИЗ Oracle. В PostgreSQL и в YugabyteDB. Имеется руководство по экспорту запросов в CSV-файл: How to Export Query Results to a CSV File in SQLcl (Oracle) [66].

Образование

Удалось уже подержать в руках новые книги:

PostgreSQL изнутри [67] — 660 страниц, 29 глав, одно Содержание занимает 11 страниц.

Postgresso #2 за 2022 (39) - 2

По этому поводу 8-го февраля состоялся прямой эфир на Постгрес-вторнике [68] у Николая Самохвалова и Ильи Космодемьянского: Постгрес-вторник с Егором Роговым. Внутри PostgreSQL [69]

Postgres: первое знакомство [70] — новая «малютка» на основе 14-й версии Postgres.

Postgresso #2 за 2022 (39) - 3

awesome-postgres [71]

Список софта, библиотек, инструментов и ресурсов. Примером для подражания брали awesome-mysql [72].

Персона

Henrietta Dombrovskaya [73]

В середине февраля Генриэтта 'Хетти' Домбровская стала персоной недели [74]. Многие знают её по книге Оптимизация запросов в PostgreSQL [75] в соавторстве с Борисом Новиковым и Анной Бейликовой.

О расширениях

Джоэл Джейкобсон (Joel Jacobson) собрал все известные ему расширения в список [76]. Их больше тысячи, и список пополняется (для сравнения: на PGXN [77] их сейчас «всего» 338). Сообщество заинтересовалось, но предлагает структурировать и добавлять краткие описания. Это и было сделано — хотя бы по строчке текста есть о каждом расширении. Сейчас есть такие разделы:

Дерево разделов не сбалансировано никак: в разделе FDW много-много экранов, а в Access Method только одно расширение: RUM [85] access method — inverted index with additional information in posting lists — то есть обратный индекс с дополнительной информацией в дереве идентификаторов [86].

Implementing your first PostgreSQL extension: From Coding to Distribution [87]

В этом PDF Burak Yücesoy и Önder Kalacı из Citus (то есть Microsoft) делятся своим опытом написания расширений.

Разное

PostgreSQL 14.2, 13.6, 12.10, 11.15 и 10.20 [88]

Исправлено 55 багов.

A Hairy PostgreSQL Incident [89]

Любопытная статья Джереми Шнайдера (Jeremy Schneider, Ardent Performance Computing). Он считает, что случаи, когда база рухнула, не самые сложные — обычно удаётся понять, что случилось, по коркам или другим печальным результатам. Самыми тяжелым для диагностики могут оказаться (неумышленные) brownouts [90] (не знал этого интересного выражения) — когда катастрофа не произошла, но что-то определённо не так. Конечно, он обращается к pg_stat_statements [91] и pg_stat_activity [92], но и они не всегда спасают. На помощь Джереми призывает флеймграфы [93]. Их в статье аж 4. В ней и в комментариях также упоминается расширение pg_show_plans [94].

У нас в прошлом году была статья с диагностикой тоже своего рода браунаутов: Битвы на территории ZFS [95], тоже не без флеймграфа, кстати. Там используется диагностическое расширение pgpro_pwr/pg_profile [96]. Ещё в этом жанре у нас была статья Параллелизм в PostgreSQL: не сферический, не конь, не в вакууме [36].

SQL Notebook [97]

Опенсорсное приложение для анализа данных при помощи SQL в Python. Данные можно экспортировать из CSV-файлов, Excel, Microsoft SQL Server, PostgreSQL и MySQL, а потом работать в привычной среде Jupyter-notebook. Можно писать хранимые процедуры. Создано на базе расширенной SQLite, поддерживает и стандартные SQL-запросы, и специфические для SQL Notebook команды и функции.

Mirage of memory, part 4: why am I swapping? [98]

Это 4-я часть цикла статей Память как мираж Фрица Хугланда (Frits Hoogland). Кажется, не последняя. Вот предыдущие:

part 3: overcommit [99]

Обратите внимание: OOM killer может убить не (только) тот процесс PostgreSQL, который следует убить.

part 2. PSS [100]

part 1. [101]

На этом выпуск #2 за 2022, пожалуй, закончим.

Автор:
Igor_Le

Источник [102]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/postgresql/373187

Ссылки в тексте:

[1] Oracle to Postgres Conversion: https://wiki.postgresql.org/wiki/Oracle_to_Postgres_Conversion

[2] сообщества PostgreSQL: http://postgresql.org/

[3] The Complete Oracle to PostgreSQL Migration Guide: Move and convert Schema, Application & Data: https://www.enterprisedb.com/blog/the-complete-oracle-to-postgresql-migration-guide-tutorial-move-convert-database-oracle-alternative

[4] Oracle to Postgres Migrations: https://www.youtube.com/watch?v=w3ke0K21bYw

[5] Почему мы перешли с Oracle на PostgreSQL, и как это сделать: https://habr.com/ru/company/rostelecom/blog/566624/

[6] хаброблоге Ростелекома: https://habr.com/ru/company/rostelecom/blog/

[7] Oracle FDW: https://github.com/laurenz/oracle_fdw

[8] Postgresso #33: https://habr.com/ru/company/postgrespro/blog/568662/

[9] Миграция приложения Oracle PL/SQL на Postgres pl/pgSQL: взгляд два года спустя: https://pgconf.ru/202110/308499

[10] PGConf.Russia 2021: https://pgconf.ru/202110/talks-and-tutorials

[11] Экстремальная миграция на PostgreSQL: без остановки, потерь и тестирования: https://habr.com/ru/company/yoomoney/blog/326998/

[12] SymmetricDS: https://www.symmetricds.org/

[13] Oracle GoldenGate: https://www.oracle.com/integration/goldengate/

[14] Full Convert: https://www.fullconvert.com/

[15] Oracle to PostgreSQL Migration: https://github.com/cybertec-postgresql/ora_migrator

[16] ESF Database Migration Toolkit: https://www.dbsofts.com/

[17] Ora2Pg: https://ora2pg.darold.net/

[18] SQLData Tool: https://docs.microsoft.com/ru-ru/sql/ssdt/download-sql-server-data-tools-ssdt?view=sql-server-ver15

[19] От Oracle к PostgreSQL — путь длиною в 4 года: https://habr.com/ru/company/pgdayrussia/blog/327418/

[20] доклада: https://www.youtube.com/watch?v=s7nebARziek&list=PL6sRAkPwcKNn5AOiMp_bD-VljlX19mon7&index=17

[21] История успеха «Яндекс.Почты» с PostgreSQL: https://habr.com/ru/post/321756/

[22] Highload++ 2016: https://www.highload.ru/2016/

[23] на youtube: https://www.youtube.com/watch?v=pe_dwL38_o8

[24] Миграция с Oracle на PostgreSQL при помощи Ora2Pg: https://www.youtube.com/watch?v=vWQDO9QQzLc

[25] Клуба разработчиков СПб: http://devclub.spb.ru

[26] Полезные скрипты при миграции из Oracle в PostgreSQL: https://habr.com/ru/post/340566/

[27] orafce: https://github.com/orafce/orafce

[28] Cybertec Migrator: https://www.cybertec-postgresql.com/en/products/cybertec-migrator/

[29] Миграция с Oracle в PostgreSQL. Как мигрировать базу данных Oracle в PostgreSQL?: https://www.youtube.com/watch?v=PYDG_zetMSU

[30] Миграция с Oracle на PostgreSQL: http://www.ispirer.ru/products/oracle-to-postgresql-migration

[31] Oracle to PostgreSQL Migration with ora2pg: https://www.youtube.com/watch?v=_lxw1s-x9BU

[32] Демо: https://www.youtube.com/user/IspirerSystems

[33] Миграция на СУБД PostgreSQL/Postgres Pro: https://www.youtube.com/watch?v=0tg2F_Txuew&list=PL6sRAkPwcKNn5AOiMp_bD-VljlX19mon7

[34] Миграция на СУБД PostgreSQL/Postgres Pro с многоядерными серверами Bull. Реальный опыт: https://pgconf.ru/2019/251292

[35] PGConf.Russia 2019: https://pgconf.ru/2019/

[36] Параллелизм в PostgreSQL: не сферический, не конь, не в вакууме: https://habr.com/ru/company/postgrespro/blog/423685/

[37] Oracle to PostgreSQL Migration Tutorial part 1: https://www.youtube.com/watch?v=c3qIjrZLZDE

[38] part 2: https://pgconf.ru/2019/248906

[39] BBM: https://en.wikipedia.org/wiki/BBM_(software)

[40] Миграция из Oracle в Postgres: https://habr.com/ru/company/infowatch/blog/494430/

[41] Миграция OLTP с MSSQL на PostgreSQL: https://pgday.ru/presentation/114/5964aa2acee17.pdf

[42] видео: https://www.youtube.com/watch?v=DW44aVTY1HQ

[43] Миграция БД больше 10Тб с DB2 на PostgreSQL без простоя БД: https://www.youtube.com/watch?v=MGo5djFvXK4

[44] тезисы: https://webscaleconf.ru/2017/abstracts/2833.html

[45] SchemaSpy: https://schemaspy.org/

[46] Spring Batch: https://spring.io/projects/spring-batch

[47] Пользовательские агрегатные и оконные функции в PostgreSQL и Oracle: https://habr.com/ru/company/postgrespro/blog/351008/

[48] Обработка запросов в Oracle и PostgreSQL: следствия одного решения: https://habr.com/ru/company/postgrespro/blog/275755/

[49] Zero-downtime schema migrations in Postgres using Reshape: https://fabianlindfors.se/blog/schema-migrations-in-postgres-using-reshape/

[50] reshape: https://github.com/fabianlindfors/reshape

[51] reshape 0.5.1: https://github.com/fabianlindfors/reshape/releases/

[52] 0.5.0: https://github.com/fabianlindfors/reshape/releases/tag/v0.5.0

[53] migra: https://databaseci.com/docs/migra

[54] Байкал-М: https://ru.wikipedia.org/wiki/Baikal-M

[55] архитектуры: https://habr.com/ru/post/584868/

[56] Running Production PostgreSQL Systems On ARM Architecture: https://www.cybertec-postgresql.com/en/running-production-postgresql-systems-on-arm-architecture/

[57] Modular Microserver Data Centre: https://www.m2dc.eu/en/

[58] Tegra: https://en.wikipedia.org/wiki/Tegra

[59] PG-Strom: https://heterodb.github.io/pg-strom/

[60] PDF: https://www.cybertec-postgresql.com/wp-content/uploads/2020/10/PostgreSQLonARM_2020.pdf

[61] Опыт тестирования PostgreSQL 13 на ARM-серверах HUAWEI TaiShan 200: https://huawei.ru/insights/opyt-testirovaniya-postgresql-13-na-arm-serverakh-huawei-taishan-200/

[62] PostgreSQL on Oracle free tier ARM: https://blog.dbi-services.com/postgresql-on-arm-oci/

[63] OrioleDB: https://github.com/orioledb

[64] Dramatical Effect of LSE Instructions for PostgreSQL on Graviton2 Instances: https://akorotkov.github.io/blog/2021/04/30/arm/

[65] SQLcl to transfer data from Oracle to PostgreSQL or YugabyteDB: https://dev.to/yugabyte/sqlcl-to-transfer-data-from-oracle-to-postgresql-or-yugabytedb-lha

[66] How to Export Query Results to a CSV File in SQLcl (Oracle): https://database.guide/how-to-export-query-results-to-a-csv-file-in-sqlcl-oracle/

[67] PostgreSQL изнутри: https://postgrespro.ru/education/books/internals

[68] Постгрес-вторнике: https://www.youtube.com/channel/UC0SBGSNmBLrTZIkbN-lJHnw

[69] Постгрес-вторник с Егором Роговым. Внутри PostgreSQL: https://www.youtube.com/watch?v=tTOQj7x0YcQ

[70] Postgres: первое знакомство: https://postgrespro.ru/education/books/introbook

[71] awesome-postgres: https://dhamaniasad.github.io/awesome-postgres/

[72] awesome-mysql: https://awesomeopensource.com/project/shlomi-noach/awesome-mysql

[73] Henrietta Dombrovskaya: https://postgresql.life/post/henrietta_dombrovskaya/

[74] персоной недели: https://postgresql.life/

[75] Оптимизация запросов в PostgreSQL: https://dmkpress.com/catalog/computer/databases/978-5-97060-963-7/

[76] список: https://gist.github.com/joelonsql/e5aa27f8cc9bd22b8999b7de8aee9d47#procedural-languages

[77] PGXN: https://pgxn.org/

[78] Uncategorized: https://gist.github.com/joelonsql/e5aa27f8cc9bd22b8999b7de8aee9d47#uncategorized

[79] Access Methods: https://gist.github.com/joelonsql/e5aa27f8cc9bd22b8999b7de8aee9d47#access-methods

[80] Aggregate Functions: https://gist.github.com/joelonsql/e5aa27f8cc9bd22b8999b7de8aee9d47#aggregate-functions

[81] Data Types: https://gist.github.com/joelonsql/e5aa27f8cc9bd22b8999b7de8aee9d47#data-types

[82] Dictionaries: https://gist.github.com/joelonsql/e5aa27f8cc9bd22b8999b7de8aee9d47#dictionaries

[83] Foreign Data Wrappers: https://gist.github.com/joelonsql/e5aa27f8cc9bd22b8999b7de8aee9d47#foreign-data-wrappers

[84] Spatial and Geographic Objects: https://gist.github.com/joelonsql/e5aa27f8cc9bd22b8999b7de8aee9d47#spatial-and-geographic-objects

[85] RUM: https://github.com/postgrespro/rum

[86] обратный индекс с дополнительной информацией в дереве идентификаторов: https://postgrespro.ru/docs/enterprise/13/rum

[87] Implementing your first PostgreSQL extension: From Coding to Distribution: https://www.postgresql.eu/events/pgconfeu2019/sessions/session/2641/slides/265/Implementing%20your%20first%20PostgreSQL%20extension.pdf

[88] PostgreSQL 14.2, 13.6, 12.10, 11.15 и 10.20: https://www.postgresql.org/about/news/postgresql-142-136-1210-1115-and-1020-released-2402/

[89] A Hairy PostgreSQL Incident: https://ardentperf.com/2022/02/10/a-hairy-postgresql-incident/

[90] brownouts: https://en.wikipedia.org/wiki/Brownout_(electricity)

[91] pg_stat_statements: https://postgrespro.ru/docs/postgresql/14/pgstatstatements

[92] pg_stat_activity: https://postgrespro.ru/docs/postgresql/14/monitoring-stats#MONITORING-PG-STAT-ACTIVITY-VIEW

[93] флеймграфы: https://github.com/brendangregg/FlameGraph

[94] pg_show_plans: https://github.com/cybertec-postgresql/pg_show_plans

[95] Битвы на территории ZFS: https://habr.com/ru/company/postgrespro/blog/588180/

[96] pgpro_pwr/pg_profile: https://postgrespro.ru/docs/postgrespro/14/pgpro-pwr

[97] SQL Notebook: https://sqlnotebook.com/

[98] Mirage of memory, part 4: why am I swapping?: https://dev.to/yugabyte/mirage-of-memory-part-4-why-am-i-swapping-3121

[99] part 3: overcommit: https://dev.to/yugabyte/mirage-of-memory-part-3-overcommit-5g84

[100] part 2. PSS: https://dev.to/yugabyte/mirage-of-memory-part-2-pss-1n8o

[101] part 1. : https://dev.to/yugabyte/the-mirage-of-memory-3366

[102] Источник: https://habr.com/ru/post/652375/?utm_source=habrahabr&utm_medium=rss&utm_campaign=652375