Дата выпуска: 2017-12-14
Этот выпуск основан на PostgreSQL 10.1 и включает все новые возможности, появившиеся в PostgreSQL 10, а также исправления ошибок, вошедшие в PostgreSQL 10.1. За подробным их описанием обратитесь к Замечаниям к выпуску PostgreSQL 10 и Замечаниям к выпуску PostgreSQL 10.1, соответственно. Другие важные изменения и улучшения:
Унифицирована структура пакетов двоичной установки для разных дистрибутивов Linux. Новая структура пакетов отличается от структуры ванильного PostgreSQL, но даёт следующие преимущества:
Вам не нужно беспокоиться о специфике инсталляций в разных дистрибутивах Linux при миграции между различными поддерживаемыми системами Linux. Postgres Pro теперь устанавливается в каталог /opt/pgpro/std-10, а база данных по умолчанию создаётся в каталоге /var/lib/pgpro/std-10/data.
Теперь вы можете полностью управлять созданием базы данных по умолчанию во всех дистрибутивах Linux. Если вы устанавливаете пакет postgrespro-std-10, он разворачивает все пакеты Postgres Pro, необходимые для вашей системы, создаёт базу данных по умолчанию и настраивает сервер полностью автоматическим образом. Если вы устанавливаете отдельные пакеты, вам нужно настроить Postgres Pro самостоятельно. В этом случае вы должны вручную инициализировать кластер баз данных и запустить сервер, а также настроить автозапуск сервера, если требуется.
Вы можете установить Postgres Pro 10 рядом с другими продуктами на базе PostgreSQL для осуществления миграции или параллельного использования. Если вы выбираете отдельные пакеты, ваша системная конфигурация будет сохранена, так что вам придётся вручную настроить Postgres Pro, следуя инструкциям в Подразделе 16.1.3. Не устанавливайте пакет postgrespro-std-10 в системе, где уже установлен другой продукт на базе PostgreSQL, во избежание конфликтов.
Заметьте, что пакеты postgrespro-common и postgrespro-client-common для систем на базе Debian теперь отсутствуют. За подробностями обратитесь к Разделу 16.1.
Возможность установки icu или libc в качестве провайдера правил сортировки по умолчанию при инициализации кластера баз данных или создании базы данных. По умолчанию для всех локалей, кроме C and POSIX, используется провайдер icu. За подробностями обратитесь к Подразделу 24.2.2.
В индексе-B-дереве дублирующиеся ключи теперь хранятся в единственном экземпляре, вместо дубликатов хранятся указатели на элементы в списке. Это может значительно сократить размер индекса, когда один ключ встречается многократно.
Ключевые доработки, перенесённые из Postgres Pro 9.6:
Доработки покрывающих индексов (За подробностями обратитесь к описанию предложения INCLUDE в CREATE INDEX.)
Исправления для системы сборки win32
Добавлена SQL-функция pgpro_version и соответствующие определения в pg_config.h
Внедрение механизма PTRACK
В psql для Windows включена поддержка редактирования командной строки с использованием libeditline
Из Postgres Pro 9.6 перенесены следующие модули и утилиты:
hunspell-dict (см. Hunspell Dictionaries Modules)
jsquery (см. Раздел F.26)
pg_variables (см. Раздел F.44)
pg_pathman (см. Раздел F.36)
pg_query_state (см. Раздел F.38)
shared-ispell (см. shared_ispell)
sr_plan (см. sr_plan)
dump_stat (см. dump-stat)
pg_buffercache (см. pg_buffercache)
mchar (см. Раздел F.29)
plantuner (см. Раздел F.46)
fasttrun (см. Раздел F.17)
fulleq (см. Раздел F.19)
online_analyze (см. Раздел F.30)
pg_pathman (см. Раздел F.36)
утилита pg_probackup (см. pg_probackup)
Для обновления существующей СУБД до версии Postgres Pro 10 вы можете выполнить выгрузку/восстановление данных, применив pg_dumpall, или воспользоваться утилитой pg_upgrade. Первый вариант безопаснее, а второй быстрее и может значительно ускорить процесс обновления для больших баз данных. Если вы решите использовать pg_upgrade, убедитесь в том, что новый кластер баз данных имеет ту же характеристику контрольных сумм, что и кластер, из которого вы переносите данные.
При миграции на Postgres Pro 10 во избежание конфликтов используйте не пакет postgrespro-std-10, а отдельные пакеты. В этом случае автозапуск сервера нужно будет настроить вручную, если это потребуется.
Начиная с Postgres Pro версии 10, при инициализации кластера баз данных или при создании базы может быть задан провайдер правил сортировки по умолчанию, как описано в Подразделе 24.2.2. Вы должны учитывать это при обновлении до данной версии, чтобы избежать повреждения индексов или ограничений.
Если в вашей текущей инсталляции Postgres Pro используется ICU, не обновляйте версию библиотеки ICU. В противном случае обновление до Postgres Pro 10 будет невозможно.
Версии PostgreSQL 9.5 и 9.5.1, а также Postgres Pro 9.5.0.1 и 9.5.1.2 нельзя обновить непосредственно до Postgres Pro. Если вы используете такую версию, сначала обновите вашу инсталляцию до промежуточной версии, например, до Postgres Pro 9.5.2.1.
Следуя процедуре обновления с использованием pg_upgrade, убедитесь в том, что initdb устанавливает в новом кластере баз данных корректный провайдер правил сортировки по умолчанию:
Осуществляя миграцию с ванильного сервера PostgreSQL, укажите libc в качестве провайдера правил сортировки по умолчанию.
При обновлении Postgres Pro опустите указание провайдера правил сортировки по умолчанию, чтобы этот провайдер был выбран автоматически. В этом случае для баз данных с локалями C и POSIX, а также для любых баз данных с однобайтовыми кодировками будет использоваться провайдер libc, а для всех остальных — провайдер icu.
Если pg_upgrade создаёт какие-либо файлы SQL в текущем каталоге, запустите их для завершения обновления.
Когда обновление осуществляется с применением pg_dumpall, Postgres Pro использует провайдер правил сортировки, заданный в команде initdb для нового кластера. В этом случае индексы перестраиваются автоматически. Во избежание проблем с ограничениями, зависящими от правил сортировки, рекомендуется использовать провайдер libc при обновлении с ванильного PostgreSQL и опустить указание провайдера при обновлении с предыдущей версии Postgres Pro, если только в ваших базах не используются правила сортировки, отличные от C и POSIX. Для таких баз данных выполните следующие:
Если новый кластер инициализируется с локалью, отличной от C и POSIX, и при этом в базе используется однобайтовая кодировка, установите для этой базы в LC_COLLATE значение '@libc'.
Если новый кластер инициализируется с локалью C или POSIX, а в базе используется многобайтовая кодировка, установите для этой базы в LC_COLLATE значение '@icu'.
Если в предыдущей инсталляции Postgres Pro в базах с многобайтовыми кодировками имелись индексы или ограничения, зависящие от правил сортировки, отличных от C, POSIX или правила сортировки БД по умолчанию, в этих базах могли оказаться данные, нарушающие целостность индексов и условия ограничений. В Windows это также могло наблюдаться, если база данных с многобайтовой кодировкой содержала индексы или ограничения, зависящие от правила сортировки по умолчанию, имеющего длинное имя, например "Russian_Russia[. или кодировка]""English_United States[.. В таких случаях при обновлении Postgres Pro до версии 10 сценарий с выгрузкой/восстановлением данных может оказаться невозможным, и для обновления нужно будет использовать только pg_upgrade. Для устранения описанных проблем pg_upgrade объявляет такие индексы и ограничения нерабочими и создаёт скрипты кодировка]"reindex_text_indexes.sql и validate_text_contraints.sql, соответственно.
Осуществляя сборку Postgres Pro вручную, вы должны включить поддержку ICU, используя ключ --with-icu. В противном случае вы не сможете обновить предыдущую версию Postgres Pro до Postgres Pro 10.