ВХОДИТ В ЕДИНЫЙ РЕЕСТР РОССИЙСКИХ ПРОГРАММ И БАЗ ДАННЫХ

СУБД Postgres Pro Standard

Российская система управления базами данных
на основе PostgreSQL

Почему выбирают СУБД Postgres Pro Standard?

СУБД Postgres Pro Standard разработана специально для российского рынка на основе открытой СУБД PostgreSQL.

Новые возможности
СУБД Postgres Pro Standard включает ряд новых возможностей, которые появятся в PostgreSQL только через год-два. Таким образом, пользователям Postgres Pro Standard не надо ждать завершения релизного цикла PostgreSQL, чтобы получить доступ к новым функциям и расширениям, разработанным компанией Postgres Professional, а также другими разработчиками PostgreSQL.
Популярная платформа
СУБД PostgreSQL - международный проект с открытым кодом, занимающий первые места в рейтинге DBEngines. Российское сообщество разработчиков и пользователей PostgreSQL составляет несколько тысяч человек и активно растет.
Техподдержка
Компания Postgres Professional предлагает пользователям СУБД Postgres Pro техническую поддержку в режиме 24х7. В штат компании входят как опытные инженеры, способные помочь в критической ситации и проконсультировать по вопросами использования СУБД, так и ведущие российские разработчики PostgreSQL, способные оперативно внести изменения в код продукта и исправить ошибку.
Российское законодательство
СУБД Postgres Pro Standard подходит для целей импортозамещения, так как входит в Единый реестр российских программ и электронных баз данных Минкомсвязи.

Отличия Postgres Pro Standard от PostgreSQL

Улучшения производительности на многоядерных системах
  • Оптимизация выделения хэш-таблиц в shared memory, исключающая lock contention при большом количестве процессов.
  • Оптимизация Resource Owner, повышающая производительность сложных запросов и запросов к таблицам с большим количеством партиций.
  • Оптимизации buffer manager.
  • Оптимизации двухфазного коммита.
Усовершенствования полнотекстового поиска
  • Поддержка поиска фраз.
  • Поддержка словарей hunspell для работы со словоформами.
  • Некоторые словари, в том числе русский и английский, включены в состав дистрибутива и их подключение требует одной команды SQL.
  • Модуль shared_ispell, оптимизирующий производительность полнотекстового поиска, путем загрузки словарей в память при старте сервера, а не при начале сессии.
Переносимость
Поддержка библиотеки libicu на всех платформах обеспечивает однозначную обработку порядка сортировки и прочих операций с юникодными символами. На ряде платформ эта библиотека улучшает производительность сортировки, и, что немаловажно, позволяет в Postgres Pro пользоваться abbreviated keys, которые были отключены в основной версии PostgreSQL.
Доступ к внутреннему представлению данных
Модуль pageinspect поддерживает доступ не только к метаинформации, но и к внутреннему представлению данных таблиц.
Сохранение планов выполнения запросов
Добавлен новый модуль sr_plan, позволяющий сохранять планы выполнения запросов и использовать сохраненные планы вместо того, чтобы формировать план запроса заново, при каждом выполнении.
Сохранение информации о статистике
Добавлен модуль dump_stat, позволяющий при дампе базы данных сохранять информацию о статистике и восстанавливать её. Это позволяет ускорить процедуру восстановления, избавляя от необходимости вычисления статистики командой VACUUM ANALYZE после восстановления.
Нечеткий поиск подстрок
Модуль pg_trgm поддерживает не только нечеткое сравнение строк, но и нечеткий поиск подстроки.
Покрывающие индексы
Поддержка конструкции INCLUDING в CREATE INDEX.
Запросы к полям типа JSONB
Добавлен модуль JSQuery, позволяющий на специальном языке формулировать запросы к полям типа JSONB с поддержкой GIN-индексов.
Совместимость с Microsoft SQL Server
Модуль mchar предоставляет дополнительный тип данных, а модуль fulleq - дополнительный оператор равенства для совместимости с Microsoft SQL Server.
Предотвращение разрастание каталога pg_class
Модуль fasttrun предоставляет транзакционно-небезопасную функцию для усечения временных таблиц, предотвращающую разрастание каталога pg_class.
Обновление статистики
Модуль online_analyze предоставляет набор функций, которые немедленно обновляют статистику в целевых таблицах после операций INSERT, UPDATE, DELETE и SELECT INTO в них.
Управление индексами при выполнении запроса
Модуль plantuner добавляет поддержку указаний для планировщика, позволяющих отключать или подключать определённые индексы при выполнении запроса.

Текущая версия

Последняя версия Postgres Pro Standard 14.1.1 выпущена

Обзор

Этот выпуск основан на PostgreSQL 14.1 и включает все новые возможности, появившиеся в PostgreSQL 14, а также исправления ошибок, вошедшие в PostgreSQL 14.1. Подробное их описание вы можете найти в Замечаниях к выпуску PostgreSQL 14 и в Замечаниях к выпуску PostgreSQL 14.1, соответственно. Ниже перечислены другие основные изменения и усовершенствования:

  • Удалено расширение sr_plan.

  • Добавлены расширенные механизмы обеспечения безопасности в Postgres Pro Standard:

    • Расширение pg_proaudit, позволяющее отслеживать различные события, связанные с безопасностью.

    • Расширенные политики аутентификации, обеспечивающие эффективное управление паролями и контроль доступа. (См. CREATE PROFILE и ALTER ROLE).

    • Встроенные проверки целостности исполняемых файлов, файлов конфигурации и системных таблиц. (Только сертифицированная редакция.)

    • Встроенные механизмы защиты данных, которые позволяют стерилизовать объекты, перед удалением заполняя их нулями. Обнуление объектов может производиться перед удалением файлов на диске и перед удалением устаревших версий строк (очисткой страниц), освобождением ОЗУ и удалением или перезаписью файлов WAL. (Только сертифицированная редакция.)

  • Приложение mamonsu обновлено до версии 3.1.0, поддерживающей Postgres Pro 14 и добавляющей новую возможность команде bootstrap. Теперь, если параметр -dbname не указан явно, он автоматически примет значение, соответствующее имени базы данных, которое указано в разделе [postgres] файла конфигурации mamonsu.

  • Обновлено расширение pgpro_pwr. Основные улучшения новой версии:

    • В отчёт добавлен раздел «Load distribution» (Распределение нагрузки), в котором показывается, как распределена нагрузка по сильно загруженным объектам, таким как базы данных, приложения, узлы или пользователи, в разрезе ресурсов (общее время или количество записанных общих блоков и т. п.), в виде линейчатых диаграмм.

    • Добавлены таблицы отчётов «Session statistics by database» (Статистика сеансов по базам данных) и «WAL statistics» (Статистика WAL) на основании новых представлений и полей, появившихся в Postgres Pro 14.

  • Удалена команда WAITLSN.

Список расширений и дополнительных утилит Postgres Pro Standard, а также основных видимых пользователю отличий от ванильной версии PostgreSQL приведён в Разделе 2.

Миграция на версию 14

Для перехода с PostgreSQL или выпуска Postgres Pro Standard, базирующегося на предыдущей основной версии PostgreSQL, сначала установите его последний корректирующий выпуск, а затем выполните выгрузку/восстановление данных, применив pg_dumpall, или воспользуйтесь pg_upgrade:

  • Если вы решите использовать pg_upgrade, важно инициализировать новый кластер баз данных с совместимыми параметрами. В частности, обратите внимание на характеристику контрольных сумм и выбор провайдера основного правила сортировки в кластере, который вы будете обновлять. Если pg_upgrade создаст какие-либо скрипты SQL в текущем каталоге, выполните их для завершения обновления.

  • Если вы выбираете вариант с выгрузкой/восстановлением данных, не забудьте при выгрузке добавить ключ --add-collprovider, чтобы для обновляемой базы данных был установлен правильный провайдер основного правила сортировки.

Понять, какое правило сортировки является основным в старом кластере и какой провайдер оно использует, можно по значению datcollate для базы данных template0 в каталоге pg_database. Если вы производите обновление с версии, в которой провайдер основного правила сортировки не задан, опустите указание провайдера при переходе с предыдущих версий Postgres Pro или выберите провайдер libc при переходе с ванильного PostgreSQL.

Помимо этого, учтите описанные ниже особенности обновления, связанные с изменениями в использовании правил сортировки.

В Windows инсталляции Postgres Pro Standard могли содержать базы данных с правилами сортировки по умолчанию, использующими ICU, в которых имя правила имело синтаксически правильный формат языка BCP 47, но неправильный код языка или другие параметры, в результате чего это правило сортировки оказывалось недействительным для ICU.

Если эта проблема затрагивает вашу базу данных template0, при попытке инициализировать новый кластер с тем же правилом сортировки вы получите следующее сообщение об ошибке: failed to get the canonical name for collation locale (не удалось получить каноническое имя для локали правила сортировки). В этом случае выполнить обновление можно только путём выгрузки/восстановления данных, задав для нового кластера подходящую локаль для выбранного провайдера правил сортировки.

Если эта проблема затрагивает другие базы данных, вы получите то же сообщение об ошибке, что и при попытке создания в Postgres Pro нового кластера с некорректным правилом сортировки. Вы можете попытаться решить эту проблему следующим образом:

  1. Выгрузите базу данных, используя pg_dump; при этом необходимо указать параметры --create и --format=plain.

  2. Смените в выгруженном файле провайдер основного правила сортировки с '@icu' на '@libc'.

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

В некоторых особых случаях при выгрузке/восстановлении данных вы можете столкнуться с нарушением ограничений в восстанавливаемых базах данных, так что вместо этого метода лучше использовать pg_upgrade. В частности:

  • Если в инсталляции Postgres Pro Standard версии 9.6 или ниже содержались индексы или ограничения, зависящие от правил сортировки, отличных от правила сортировки, установленного для БД по умолчанию, а также от C или POSIX в базах данных с многобайтными кодировками, индексы и ограничения в таких базах могли оказаться несогласованными при обновлении до Postgres Pro версии 10 или выше. В Windows эта ситуация также могла иметь место, если база данных с многобайтной кодировкой содержала индексы или ограничения, зависящие от правила сортировки по умолчанию, имевшего полное имя "Russian_Russia[.кодировка]" или "English_United States[.кодировка]".

  • При обновлении с Postgres Pro Standard версии 10 кластеров, в которых нет информации о версии библиотеки ICU, состояние актуальности индексов и ограничений определяется по версиям правил сортировки. Однако для кластеров, в которых содержатся базы данных с системными правилами сортировки ICU, но отсутствует информация о версии библиотеки ICU и/или версиях правил сортировки, нет никакой возможности удостовериться в том, что в текущей версии Postgres Pro используется та же версия библиотеки ICU.

  • В Windows у кластеров Postgres Pro Standard 10 с правилами сортировки по умолчанию, использующими ICU, локаль правила сортировки может не совпадать с локалью соответствующего правила сортировки libc.

Когда вы используете программу pg_upgrade, она объявляет такие индексы и ограничения нерабочими и создаёт для их исправления файлы reindex_text_indexes.sql и validate_text_constraints.sql, соответственно. Для завершения обновления вам надо будет выполнить эти скрипты.

Примечание

Во избежание конфликтов в системах Linux не используйте пакет postgrespro-std-14 для установки исполняемых файлов Postgres Pro, а установите вместо него отдельные пакеты компонентов продукта. В этом случае режим автозапуска сервера, если он требуется, нужно будет включить вручную. Подробнее о предоставляемых пакетах вы можете узнать в Главе 16.

Если ранее вы использовали расширение mchar, после обновления с предыдущих версий Postgres Pro выполните следующую команду, чтобы обеспечить ускорение оператора LIKE:

ALTER EXTENSION mchar UPDATE;

Особенности обновления, унаследованные от ванильной версии PostgreSQL, описаны в Разделе E.3.

Подробнее

Узнать стоимость СУБД Postgres Pro Standard

Свяжитесь с нами, чтобы узнать подробности:
sales@postgrespro.ru

Закажите тестирование
СУБД Postgres Pro Standard

Попробуйте бесплатно и убедитесь.

Пожалуйста, введите данные, чтобы мы могли связаться с Вами.


Согласие с обработкой персональных данных