Дайджест новостей из мира PostgreSQL. Выпуск №16
Мы продолжаем знакомить вас с самыми интересными новостями по PostgreSQL.
Главная новость июня
EnterpriseDB приобретена инвестиционным фондом Great Hill Partners. Сумма сделки не разглашается. Майкл Стоунбрейкер назначен техническим советником. Энди Палмер вошел в совет директоров EDB. Он известный ИТ-инвестор, сооснователь Vertica и автор главы в книге Making Databases Work: The Pragmatic Wisdom of Michael Stonebraker. Great Hill Partners — частный (непубличный) фонд, управляющий $2.7 млрд. Событие не менее впечатляющее, чем недавняя покупка Citus Microsoft-ом: из 5 участников Core Team двое сотрудники EDB.
Релизы
PostgreSQL 11.4, 10.9, 9.6.14, 9.5.18, 9.4.23 и 12 Beta 2
Этих релизов ждали не из-за новых фич, а из-за того, что надо было закрывать обнаруженную дырку в безопасности под кодовым названием CVE-2019–10164. Любой прошедший проверку при аутентификации по методу scram-sha-256 пользователь мог переполнить буфер в стеке, сменяя свой пароль на специально сконструированную строку. Этим способом можно было не только уронить сервер, но и выполнить произвольный код от имени пользователя ОС, запускающего PostgreSQL.
Подобная возможность переполнения существовала и в libpq, и эксплуатируя её, подставной сервер мог уронить клиентское приложение или выполнить коварный код на клиенте от имени пользователя, запускавшего это приложение.
Эта уязвимость проявилась только в относительно новых версиях PostgreSQL: 10 и выше, когда появилась SCRAM-аутентификация. На сайте сообщества можно увидеть «особую благодарность» Александру Лахину (Postgres Professional), который обнаружил проблему.
Можно почитать статью на эту тему: eVOL Monkey. Who’s affected and how to protect your systems.
Postgres Pro Standard 11.4.1, 10.9.1, 9.6.14.1, 9.5.17.1 и Postgres Pro Enterprise 11.4.1
В этих версиях дыра в безопасности уже закрыта. Об этом и о других багфиксах можно прочитать в документации к соответствующей версии. Из нового: поддержка российских ОС Rosa Enterprise Linux Server 7 и РОСА «КОБАЛЬТ» (серверная редакция) на платформе РОСА 7 (предыдущие версии этих операционных систем более не поддерживаются), ОС AlterOS 7.5, а также и других новых версий: ОС Ubuntu 19.04 (поддержка Ubuntu 14.04 прекращена), SUSE Linux Enterprise Server 12 SP3 и SUSE Linux Enterprise Server 15. Модуль pg_probackup обновлён до версии 2.1.3, а pg_pathman обновлён до 1.5.8. Эти изменения относятся и к Standard, и к Enterprise.
Изменения в Enterprise: в расширение pgpro_scheduler добавлена функция schedule.is_enabled (), позволяющая проверить, работает ли pgpro_scheduler в данный момент, а параметр конфигурации schedule.enabled, служивший этой цели ранее, перешёл в разряд устаревших. Зато добавлен параметр конфигурации schedule.auto_enabled, определяющий, будет ли pgpro_scheduler включаться при запуске сервера.
В расширение multimaster добавлена поддержка декларативного синтаксиса pg_pathman (при этом использованием функций pg_pathman с текущей реализацией multimaster несовместимо).
Оставшиеся обновления линейки Enterprise появятся в ближайшие дни.
pgAdmin4 4.10
В этой версии появилась возможность перетаскивать мышью объекты в Query Tool. И теперь можно переписать путь к /pgadmin4/servers.json в дистрибутиве контейнера. Обновления pgAdmin зачастили, поэтому напомним, что в предыдущих версиях улучшена поддержка PostgreSQL 12; pgAdmin научился по-разному отображать обычные таблицы и унаследованные или имеющие наследников; в графическом интерфейсе теперь есть возможность зафиксировать окна и фреймы, защитив их от неумышленного передвижения.
pg_probackup 2.1.3
В этой версии изменено в том числе дефолтное поведение: при восстановлении из резервной копии раньше использовалась маска прав доступа по умолчанию (0700). Теперь при восстановлении файл получает ту же маску, которой обладал при снятии резервной копии. Исправлены ошибки при выполнении backup, restore, validate. Напоминаем, что с версии 2.1.1 pg_probackup поддерживает дистанционное (remote) снятие и восстановление резервной копии.
barman 2.8
Среди изменений поддержка инкрементального бэкапа (не на уровне блоков) в конфигурациях гео-избыточности. Есть улучшения в производительности. Начиная с этого релиза не поддерживаются PostgreSQL 9.3 и старше.
WAL-G 0.2.9
В новой версии этого инструмента бэкапа PostgreSQL, написанного на Go, появилась поддержка быстрых дельта-бэкапов. Так здесь называют инкрементальный бэкап на уровне блоков, когда во время архивации сканируется WAL, и собранная информация используется для ускорения бэкапа (похожий принцип используется в pg_probackup, но сканирование делают в начале бэкапа). К сжатию lz4 и lzma добавили brotli. Появилась поддержка PGP-шифрования без внешнего GPG. Поддерживаются S3, GCS, SWIFT, Azure и работа на уровне файловых систем.
repmgr 4.4
В новой версии этой среды управления бэкапом от 2ndQuadrant мого нового. Например, изменилось поведение при исполнении repmgr standby switchover: игнорируются недоступные и помеченные как неактивные узлы. Раньше при недоступности любого узла repmgr падал, так как нельзя было проверить, жив ли демон. Теперь демон умеет мониторить соединения и, если видит, что число доступных нод меньше заданного, исполняет созданный по этому случаю скрипт. Фенсинг работает надежней.
pg_partman 4.1.0
В новой версии для встроенного (native) секционирования в PostgreSQL 10+ не обязательно быть суперюзером (но для секционирования на базе триггеров и для непосредственного доступа к дочерним таблицам — суперюзер по-прежнему нужен).
dbForge Studio for PostgreSQL v. 2.1
Вышла новая версия dbForge Studio for PostgreSQL. Графический интерфейс теперь показывает: дерево планов; дерево запросов, диаграмму выполнения запросов со стоимостями всех операций в процентном соотношении к общей стоимости, вывод плана выполнения в XML формате. Появилась возможность подключения к Greenplum DB. Также были улучшены подсказки в Code Completion и Database Explorer.
pgFormatter 4.0
Эта симпатичная утилита Жиля Дароля из Dalibo работает онлайн, она отформатирует введенный в окошечко текст, расцветит ключевые слова, расставит отступы.
Psycopg2 2.8.3
В новой версии коннектора Python для PostgreSQL (который используется в том числе и в pgAdmin4) есть изменения в способе обмена сообщениями при логической репликации. Поток подтверждений, идущий от клиента, теперь устроен более рационально, нагрузка на сервер и сеть уменьшилась.
Pgpool-II 4.0.5, 3.7.10, 3.6.17, 3.5.21 и 3.4.24
Здесь можно загрузить 4.0.5 и другие обновленные версии. Тацуо Ишии (Tatsuo Ishii) убыстрил фейловер в случае, когда упали все бэкэнды. Расширение pgpool-recovery и pgpool_setup готовы к следующему мажорному релизу PostgreSQL 12.
HAProxy 2.0
Новая версия балансировщика нагрузки умеет в том числе проверять доступность серверов и оценивать уровень нагрузки и даже противостоять DDoS первичной фильтрацией данных. Может применяться для координации взаимодействия компонентов в системах на базе архитектуры микросервисов. Об этом можно прочитать на русском языке.
PostgreSQL JDBC 42.2.6
Драйвер этой версии поддерживает PostgreSQL 12; протестирован с Java 11 и Java EA. Об изменениях и исправлениях ошибок можно узнать здесь.
psqlODBC 11.01.0000
В этой версии драйвера исправлены некоторые ошибки. В том числе есть некоторые корректировки, учитывающие изменения, произошедшие в версии PostgreSQL 12.
PostGIS 3.0.0alpaha3
В новой альфе PostgreSQL 9.5–12beta2 и GEOS не старше 3.6. Пишут, что «подавать на стол лучше с PostgreSQL 12beta2». Напомним, что в 3.0 произошли серьезные изменения: вся растровая функциональность вынесена в отдельное расширение. Подробности здесь.
postgres-checkup 1.1
Эта версия, «Юная сова» (Young Owl), отличается, например, новыми опциями --html, --pdf
и --list-limit
, которые определяют, как будут выводиться данные.
Рекомендации и заключения, которые выдает эта утилита проверки работоспособности, учитывают приближение wraparound-а, распухание (bloat) индексов и хипа. Сова умеет оповещать о ненужных и не использованных индексах. Самый первый релиз (1.0) вышел всего лишь месяц с лишним назад.
pgwatch2 v1.6
Эта версия «приборной панели» для мониторинга СУБД вышла через промежуток в полгода, в ней накопились существенные изменения. PostgreSQL поддерживается начиная с предыдущей версии pgwatch. Новая версия поддерживает также базу временнЫх рядов Prometheus TSDB, но создатели рекомендуют для этой цели использовать Postgres (а также InfluxDB). Не менее важная новость — появление поддержи Patroni, как базе которой нередко строят и HA-кластеры PostgreSQL. Новая версия сможет мониторить PostgreSQL 12, поддерживает трекинг и визуализацию значений большинства pg_settings, предупреждает о wraparound-е и максимальном времени autovacuum. Разработчик — Cybertec.
pgBadger 11.0
В этом анализаторе логов появились новые возможности, например: можно групировывать запросы, связанные с курсорами (DECLARE, CLOSE, FETCH, MOVE) в отдельный раздел — CURSOR; можно использовать опцию --exclude-client
, чтобы исключить строчки логов, связанные с определенным (и) клиентским (и) IP; можно вести инкрементальные отчёты на уровне базы. Внимание! В новой версии нет обратной совместимости со старыми двоичными и JSON-файлами, а в инкрементальном режиме не удастся прочитать старые двоичные файлы.
pgMustard
Это пользовательский интерфейс для EXPLAIN ANALYZE. Он умеет не только визуализировать планы, но и умеет подсказывать, как увеличить производительность.
Новые коммиттеры и контрибьютеры
Дэвид Роули (David Rowley) стал коммиттером. Сейчас в сообществе 30 коммиттеров.
Анастасия Лубенникова (Postgres Professional) вошла в официальный список контрибьюторов. Всего в списке действующих major и просто контрибьюторов 90 человек.
Образование
Сертификация началась
Первые 3 специалиста (уже вне самой Postgres Professional, организовавший процесс) получили сертификаты «Администратор PostgreSQL 10. Профессионал». Для получения такого сертификата необходимо пройти тест DBA1–10.
Курсы DBA2
Выложены на сайте организатора и доступны бесплатно все 18 фрагментов видео курса DBA2 (Администрирование PostgreSQL 10. Настройка и мониторинг).
Курсы DBA1 на английском
Организаторы израильских курсов DBA — компания Postgres Miktzoanim, продвигающая в Израиле HA-решение PostgreSQL на Stolon и Postgres Pro Enterprise, обнародовала видеозаписи 2-дневного вводного курса по мотивам курса DBA1, прочитанного в Тель-Авиве 13–14 февраля 2019.
Видео курсов Б.А. Новикова
Напоминаем, что слайды и видео (по ссылкам) можно посмотреть на сайте Postgres Professional в разделе «Образование». Слайды доступны все, а видео выкладываются постепенно. Сейчас видео-серия заканчивается на третьей теме курса «Основы технологий баз данных. ч.3 Другие модели данных». Они выложены в youtube на канале Postgres Professional.
Конференции
Анонс:
PGConf.Russia 2020
Определены предварительные даты и место проведения PGConf.Russia 2020:
Экономический факультет МГУ, 3–5 февраля 2020. На сайте уже можно регистрироваться и подавать заявки на доклады.
Прошедшие:
PGCon 2019 Ottawa
Прошла в Оттаве 28–31 мая. Зайдя в Программу, можно посмотреть слайды многих докладов.
DevConfX
Конференция разработчиков прошла в Москве 21-го июня. Среди участников был, например, Павел Лузанов из отдела образования Postgres Professional, который объяснял, как подготовиться к сертификации. Некоторые презентации выложены, см. программу.
pgibz
Впервые на Ибице 19–23 июня прошла конференция «Постгрес на пляже» (Postgres on the Beach). Из России на пляже были: Олег Бартунов (Postgres Professional) и Андрей Фефелов (Mastery.Pro); Брюс Момжан (Bruce Momjian) считает, что эксперимент с пляжной конференцией удачный. Бали (см. ниже) докажет или опровергнет это мнение.
Будущие:
PostgresConf Beijing
Уже началась 3 июля в Пекине, закончится 7 июля. Один из сопредседателей совета конференции — Джошуа Дрейк (Joshua Drake). На англоязычном потоке Олег Бартунов рассказал о JSONPath.
PGConf.Brazil 2019
Состоится 1–3 августа в Сан-Паоло.
PGconf.ASIA 2019, Bali
Долгожданная пляжная конференция на острове Бали должна состояться 9–12 сентября. Заявки на доклады уже принимаются. Ожидают около 500 участников. Есть панорама пляжей, гостиниц и конгресс-центров.
PostgresOpen
Пройдет в Орландо (Флорида) 11 — 13 сентября. Подать заявку на доклад можно здесь.
PostgreSQL Conference Europe 2019
Состоится в Милане 15–18 сентября. Поторопитесь: заявки до 15.
PostgresConf South Africa 2019
Запланирована на 8–9 октября. Место проведения — Йоханнесбург. Заявки на доклады принимаются до 30 июня.
Highload+
В Сколково 7 и 8 ноября состоится конференция по высокозагруженным системам. Заявиться можно здесь.
Статьи
PostgreSQL Deep Dive: PostgreSQL Defaults and Impact on Security — Part 1, 2
Огромная двучастная статья классика Postgres Джо Конвея (Joe Conway) о том, как параметры по умолчанию сказываются на безопасности. В частях 1 и 2 много деталей и примеров.
Postgres 12 highlight — SQL/JSON path
Мишель Пакье (Michael Paquier) продолжает обозревать новшества версии 12. Дошла очередь до SQL/JSONpath. Но это действительно только хайлайтс для быстрого ознакомления. Тем, кому нужны подробности, лучше почитать вот эту статью. В предыдущей серии Мишеля были Table Access Methods and blackholes — методы доступа к таблицам и черные дыры (которые оказались шаблоном расширений, созданным автором статьи).
WAL в PostgreSQL: 1. Буферный кеш
Егор Рогов (Postgres Professional) открывает этой статьей новую серию — про WAL.
Игра в прятки с оптимизатором. Гейм овер, это CTE PostgreSQL 12
Эта статья — продолжение темы PostgreSQL 12, начатой в Что заморозили на feature freeze 2019. Часть I. JSONPath.
Профессиональный Postgres
Это расшифровка доклада Олега Бартунова на конференции PGConf.Russia 2019. Доклад не о компании, а о том, как Postgres вырос из любительской академической СУБД в профессиональную промышленную.
Linear Interpolation with PostgreSQL
Статья Филиппа Вагнера (Philipp Wagner aka bytefish) на довольно необычную тему: о том, как заполнить дыры во временнЫх рядах и как их обнаружить с помощью оконных функций. Он также писал о том, как это сделать на InfluxDB. Так что можно сравнить.
Distributed PostgreSQL on a Google Spanner Architecture — Storage Layer
Здесь рассказывают об интересном проекте — YugaByte. У этой документоориентированной распределенной и облачной СУБД два API, один из них PostgreSQL-совместимый, а другой уходит корнями в Cassandra QL. Нижний слой, DocDB, вдохновлен Spanner. Поддерживает ACID-транзакции с изоляцией снэпшотов и с SERALIZABLE в будущем.
PostgreSQL logging best practices
В этом блоге пропагандируют собственный инструмент strongDM, но и объясняют разные подходы к логированию.
Отказоустойчивость для СУБД PostgreSQL
Во 2-м номере журнала «Открытые системы. СУБД» за этот год (выходит и на бумаге, и онлайн) Игорь Косенков и Игорь Лёвшин рассказывают о кластерах Corosync&Pacemaker.
Why the RDBMS is the future of distributed databases
Марко Слот (Marco Slot) из Citus Data пишет: 10 лет назад я пришел работать в Amazon Web Services и еще тогда понял, что главное в архитектуре распределенных систем — это найти компромисс. Но на практике спектр компромиссов в распределенной системе намного шире, чем в CAP-теореме.
Managing Query Execution Plans for Aurora PostgreSQL
Что дает управление планами запросов и как настроить Аврору.
Hypothetical Indexes in PostgreSQL
Авинаш Валларапу (Avinash Vallarapu) из Percona разъясняет смысл гипотетических индексов. А есть ли они в PostgreSQL? Да. Но надо установить расширение.
Подписывайтесь на канал postgresso!
Идеи и пожелания присылайте на почту: news_channel@postgrespro.ru
Предыдущие выпуски: #15, #14, #13, #12, #11 (спец), #10, #9, #8, #7, #6, #5, #4, #3, #2, #1