17.2. Установка Postgres Pro Enterprise в Windows

Postgres Pro предлагает следующие режимы установки в поддерживаемых системах Windows:

Вы также можете настроить среду для использования процедурных языков PL/Perl и PL/Python, если они требуются для ваших целей. За подробностями обратитесь к Подразделу 17.2.4.

Во избежание недопонимания учтите, что в системах Windows имеются следующие отдельные пользователи:

  • Установка Postgres Pro производится от имени текущего пользователя операционной системы. Все файлы баз данных будут принадлежать этому пользователю.

  • Чтобы работать с этой базой данных, вы должны будете подключиться к кластеру баз данных под именем пользователя, созданного во время установки. (Это не пользователь операционной системы.)

  • По умолчанию служба Postgres Pro запускается от имени NT AUTHORITY\NetworkService, специального служебного пользователя Windows. При необходимости вы можете выбрать другого пользователя Windows, который будет запускать Postgres Pro, в соответствующем поле инсталлятора. Выбранный вами пользователь должен иметь право запуска служб Windows.

Минимальные системные требования для установки Postgres Pro, создания кластера баз данных и запуска сервера:

  • Процессор с частотой 1 ГГц

  • 1 ГБ ОЗУ

  • 1 ГБ свободного дискового пространства

Для вспомогательных компонентов или данных потребуется дополнительное дисковое пространство.

17.2.1. Поддерживаемые версии Windows

Postgres Pro выпускается для следующих 64-битных версий Windows:

  • Windows 10 и новее

  • Windows Server 2012 R2 и новее

17.2.2. Установка с графическим интерфейсом

Postgres Pro предоставляет инсталлятор с интерактивным мастером, который устанавливает и конфигурирует ключевые компоненты Postgres Pro, создаёт начальную базу данных и настраивает автозапуск сервера. Для следующих компонентов предоставляются индивидуальные инсталляторы, которые должны запускаться отдельно после основного инсталлятора:

  • pg_probackup

Для установки ключевых компонентов Postgres Pro запустите основной инсталлятор от имени администратора и следуйте инструкциям на экране. Учтите следующую специфику установки:

  • Вы можете установить все основные компоненты Postgres Pro или настроить инсталляцию, исключив серверную часть или компоненты для разработчика. Клиентская часть устанавливается всегда.

  • Выбранный каталог данных должен быть пустым. В противном случае Postgres Pro не сможет создать начальную базу данных. По умолчанию каталогом данных будет C:\Program Files\PostgresProEnterprise\12\data.

  • Если установлен флажок Allow external connections (Разрешить внешние подключения) (отмеченный по умолчанию), инсталлятор вносит изменения в postgresql.conf и pg_hba.conf для разрешения подключений извне. В противном случае сервер Postgres Pro будет принимать подключения только с локального узла. Если вы решите разрешить внешние подключения после завершения установки, вы должны будете изменить конфигурацию Брандмауэра Windows, чтобы сервер Postgres Pro мог принимать подключения.

  • Запомните имя и пароль пользователя, заданные вами при установке Postgres Pro, так как они потребуются для подключения к серверу Postgres Pro при использовании аутентификации с проверкой пароля.

  • По умолчанию в Postgres Pro используются правила сортировки icu. Если вы обновляете инсталляцию, в которой использовались правила сортировки libc, например, инсталляцию PostgreSQL, выберите libc в качестве провайдера правил сортировки, воспользовавшись соответствующим выпадающим списком в инсталляторе.

  • Postgres Pro предоставляет заранее настроенный ярлык psql, который можно найти в меню Пуск, чтобы вам не пришлось настраивать стандартные переменные окружения. Однако если вы хотели бы работать с Postgres Pro в обычной консоли командной строки, не задавая полные пути к двоичным файлам, отметьте флажок Set up environment variables (Настроить переменные окружения).

По завершении инсталляции экземпляр Postgres Pro готов к использованию, а для службы сервера включён автозапуск. Если вам понадобится больше одного экземпляра Postgres Pro в одной системе, вам нужно будет настроить дополнительные экземпляры вручную. За подробностями обратитесь к Подразделу 17.2.5.

17.2.3. Установка в командной строке

Чтобы установить Postgres Pro из командной строки, запустите загруженный файл инсталлятора, передав один или несколько параметров, описанных в Подразделе 17.2.3.1.

17.2.3.1. Параметры командной строки

Путь каталога инсталляции:

/D=путь

Полностью автоматическая установка:

/S

INI-файл, содержащий параметры установки сервера:

/init=имя_ini-файла

Если вы хотите скорректировать стандартные параметры, вы должны создать INI-файл вручную, как описано в Подразделе 17.2.3.2.

17.2.3.2. Формат INI-файла

В разделе [options] данного файла можно задать следующие параметры:

  • InstallDir — путь для установки сервера. Если вы зададите параметр /D в командной строке, значение InstallDir будет иметь приоритет.

  • DataDir — путь для создания баз данных по умолчанию

  • Port — порт TCP/IP для приёма подключений. По умолчанию: 5432.

  • SuperUser — имя пользователя, который получит права администратора баз данных

  • Password — пароль этого пользователя

  • noExtConnections = 1 — не разрешать внешние подключения.

  • Coding = UNICODE — кодировка символов для использования в базе данных

  • Locale — локаль для использования в базе данных (для каждой кодировки может быть несколько локалей)

  • vcredist = no — не устанавливать распространяемые библиотеки Visual C (это можно сделать, только если эти библиотеки уже установлены в системе)

  • envvar = 1 — установить полезные для Postgres Pro переменные окружения: PGDATA, PGDATABASE, PGUSER, PGPORT, PGLOCALEDIR

  • needoptimization = 0 — отключить автоматическую настройку параметров конфигурации в зависимости от имеющихся системных ресурсов.

  • datachecksums = 0 — отключить контрольные суммы в кластере.

  • serviceaccount — пользователь Windows, от имени которого будет запускаться служба Postgres Pro. Указанный пользователь должен иметь право запуска служб Windows. По умолчанию служба Postgres Pro запускается от имени NT AUTHORITY\NetworkService, специальной учётной записи для служб Windows.

  • servicepassword — пароль для пользователя Windows, указанного в параметре serviceaccount.

  • serviceid — имя службы Postgres Pro.

  • islibc = 1 — использовать libc в качестве провайдера основного правила сортировки.

17.2.4. Загрузка процедурных языков

В дистрибутив Postgres Pro для систем Windows включены процедурные языки PL/Perl и PL/Python.

17.2.4.1. Настройка среды для PL/Python

Чтобы настроить систему для использования PL/Python, выполните следующие действия:

  1. Загрузите и установите последнюю версию Python 3.8 или 2.7 для Windows. Выберите 64-битную версию, так как сервер Postgres Pro имеет 64-битную архитектуру. Вы можете найти подходящий инсталлятор на сайте https://www.python.org/.

  2. Создайте расширение PL/Python, выполнив следующую команду в psql:

    CREATE EXTENSION plpythonu

Подсказка

В некоторых случаях при создании функции на PL/Python соединение с сервером разрывается, а в журнал сервера выводится следующее сообщение об ошибке:

ImportError: module site not found

Для устранения этой проблемы попробуйте указать каталог инсталляции Python в переменной окружения PYTHONHOME и перезапустите службу Postgres Pro.

17.2.4.2. Настройка окружения для PL/Perl

Чтобы настроить систему для использования PL/Perl, выполните следующие действия:

  1. Загрузите Strawberry Perl 5.26, выбрав на странице https://strawberryperl.com/releases.html MSI-пакет 64-битной версии, и установите его.

  2. Перезапустите сервер Postgres Pro.

  3. Создайте расширение PL/Perl, выполнив следующую команду в psql:

    CREATE EXTENSION plperlu

17.2.5. Настройка нескольких экземпляров Postgres Pro

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

  1. Установите Postgres Pro, как описывается в Подразделе 17.2.2 или Подразделе 17.2.3. Установленные двоичные файлы используются всеми экземплярами Postgres Pro, поэтому данное действие нужно выполнить только один раз.

  2. Выберите пустую папку, которую ваш новый экземпляр Postgres Pro будет использовать в качестве каталога данных. Например, это может быть C:\Program Files\PostgresProEnterprise\12\data2. К этой папке необходимо дать полный доступ текущему пользователю ОС, который будет владельцем файлов базы, и пользователю, от имени которого работает сервер (по умолчанию NT AUTHORITY\NetworkService).

  3. Запустите программу initdb, передав ей полный путь к новому каталогу данных и другие параметры, требующиеся для инициализации нового экземпляра сервера. Например:

    "C:\Program Files\PostgresProEnterprise\12\bin\initdb.exe" --encoding=UTF8 -U "postgres" -D "C:\Program Files\PostgresProEnterprise\12\data2"

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

  4. Установите в postgresql.conf нового экземпляра Postgres Pro требуемые параметры. Обязательно назначьте отдельным экземплярам сервера разные порты во избежание конфликтов.

  5. Откройте приглашение командной строки от имени администратора и зарегистрируйте новую службу Postgres Pro с уникальным именем, например, postgrespro-data2:

    "C:\Program Files\PostgresProEnterprise\12\bin\pg_ctl.exe" register -N "postgrespro-data2" -U "NT AUTHORITY\NetworkService" -D "C:\Program Files\PostgresProEnterprise\12\data2" -w

    Запустите зарегистрированную службу:

    sc start "postgrespro-data2"

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

17.2.6. Удаление Postgres Pro Enterprise

Процедура удаления Postgres Pro Enterprise зависит от количества экземпляров Postgres Pro, установленных в вашей системе.

Если у вас только один экземпляр Postgres Pro, созданный во время установки, вам будет достаточно запустить программу C:\Program Files\PostgresProEnterprise\12\uninstall.exe. Эта программа автоматически остановит сервер и разрегистрирует службу, связанную с этим экземпляром.

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

  1. Остановите сервер для каждого экземпляра:

    "C:\Program Files\PostgresProEnterprise\12\bin\pg_ctl.exe" stop -D "C:\Program Files\PostgresProEnterprise\12\data_dir" -m fast -w
  2. Разрегистрируйте службы для всех экземпляров:

    "C:\Program Files\PostgresProEnterprise\12\bin\pg_ctl.exe" unregister -N "имя_службы_postgrespro"
  3. Запустите C:\Program Files\PostgresProEnterprise\12\uninstall.exe, чтобы удалить исполняемые файлы Postgres Pro.

17.2.7. Замечания о совместимости с антивирусами

Настоятельно не рекомендуется использовать антивирусное ПО в системах, где работает Postgres Pro, так как антивирус создаёт дополнительную нагрузку и может оказывать непредсказуемое влияние на работу базы данных, что чревато проблемами с производительностью и надёжностью. Если вам необходимо использовать антивирусное ПО, обязательно добавьте в исключения антивируса следующие каталоги, так как они не содержат исполняемых файлов:

  • Каталог PGDATA с основными данными кластера (обычно C:\Program Files\PostgresProEnterprise\12\data или другой каталог, заданный в параметрах initdb)

  • Каталоги созданных табличных пространств