- PVSM.RU - https://www.pvsm.ru -
В эти безрадостные дни многим трудно работать, сочинять и даже читать статьи. Но ИТ-инфраструктура это как водопровод — без неё жизнь уже почти невозможна. И мы продолжаем выпускать 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 к PostgreSQL — путь длиною в 4 года [19]
Статья по мотивам одноименного доклада [20] Андрея Рынкевича (Phorm) на PGDay 2017.
Немаловажная предыстория: «Как только выросло количество данных [в Oracle] и нагрузка — стало понятно, что оптимизации запросов и структуры недостаточно. Как минимум, надо было включить партиционирование, а, в идеале, надо было перейти на какое-то MPP решение, которое у Oracle стоит безумных денег: grid, RAC, Exadata.»
В результате за основу взяли PostgreSQL. Сначала запустили один мощный сервер рядом с Oracle, постепенно на него мигрировали. После собирались переходить на MPP-решение от Greenplum, но не сложилось.
Вся работа заняла 4 года. Задача усложнялась непрерывном ростом статистики и нагрузки, и тем что существует еще один продукт, который интенсивно использует БД.
Во время миграции было реализовано много решений, таких как:
История успеха «Яндекс.Почты» с 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.
Миграция OLTP с MSSQL на PostgreSQL [41]
Это ссылка на PDF-презентацию, есть и 40-минутное видео [42]. Кристина Кучерова из Distillery рассказывает не только о том, как надо, но и о собственных ошибках (в презентации раздел Грабли).
Миграция БД больше 10Тб с DB2 на PostgreSQL без простоя БД [43]
Рассказывает Дмитрий Погибенко (НИИ Восход). Это ссылка на видео, а здесь тезисы [44].
Да, случаются ещё миграции и с DB2. Среди сложностей, о которых рассказывается в этом видео, были: необходимость трансформации данных из-за отличий между DB2 и PG и перемещением BLOB'ов в Ceph. Решали миграционные задачи так:
Пользовательские агрегатные и оконные функции в 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-файла, если он есть;--version при котором распечатывается текущая версия.migra [53]
migra — инструмент для сравнения схем баз данных PostgreSQL, представляет собой CLI и Python-библиотеку. Предназначен для автоматизации изменений. Разработчик — DatabaseCI, Австралия. По отзывам довольно необычный и удобный интструмент.
Тема очень актуальна. Сейчас многие пробуют, например, Байкал-М [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 страниц.

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

awesome-postgres [71]
Список софта, библиотек, инструментов и ресурсов. Примером для подражания брали awesome-mysql [72].
В середине февраля Генриэтта 'Хетти' Домбровская стала персоной недели [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
Нажмите здесь для печати.