16.2. Установка Postgres Pro Standard в Windows
Postgres Pro предлагает следующие режимы установки в поддерживаемых системах Windows:
- Установка в графическом режиме с помощью интерактивного мастера 
Вы также можете настроить среду для использования процедурных языков PL/Perl и PL/Python, если они требуются для ваших целей. За подробностями обратитесь к Подразделу 16.2.4.
Во избежание недопонимания учтите, что в системах Windows имеются следующие отдельные пользователи:
- Установка Postgres Pro производится от имени текущего пользователя операционной системы. Все файлы баз данных будут принадлежать этому пользователю. 
- Чтобы работать с этой базой данных, вы должны будете подключиться к кластеру баз данных под именем пользователя, созданного во время установки. (Это не пользователь операционной системы.) 
- По умолчанию служба Postgres Pro запускается от имени - NT AUTHORITY\NetworkService, специального служебного пользователя Windows. При необходимости вы можете выбрать другого пользователя Windows, который будет запускать Postgres Pro, в соответствующем поле инсталлятора. Выбранный вами пользователь должен иметь право запуска служб Windows.
16.2.1. Поддерживаемые версии Windows
Postgres Pro выпускается для следующих 64-битных версий Windows:
- Windows 8.1, 10 
- Windows Server 2008 R2 и новее 
16.2.2. Установка с графическим интерфейсом
Postgres Pro предоставляет инсталлятор с интерактивным мастером, который устанавливает и конфигурирует ключевые компоненты Postgres Pro, создаёт начальную базу данных и настраивает автозапуск сервера. Для следующих компонентов предоставляются индивидуальные инсталляторы, которые должны запускаться отдельно после основного инсталлятора:
- pg_probackup
Для установки ключевых компонентов Postgres Pro запустите основной инсталлятор от имени администратора и следуйте инструкциям на экране. Учтите следующую специфику установки:
- Вы можете установить все основные компоненты Postgres Pro или настроить инсталляцию, исключив серверную часть или компоненты для разработчика. Клиентская часть устанавливается всегда. 
- Выбранный каталог данных должен быть пустым. В противном случае Postgres Pro не сможет создать начальную базу данных. По умолчанию каталогом данных будет - C:\Program Files\PostgresPro\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 в одной системе, вам нужно будет настроить дополнительные экземпляры вручную. За подробностями обратитесь к Подразделу 16.2.5.
16.2.3. Установка в командной строке
Чтобы установить Postgres Pro из командной строки, запустите загруженный файл инсталлятора, передав один или несколько параметров, описанных в Подразделе 16.2.3.1.
16.2.3.1. Параметры командной строки
Путь каталога инсталляции:
/D=путьПолностью автоматическая установка:
/S
INI-файл, содержащий параметры установки сервера: 
/init=имя_ini-файла Если вы хотите скорректировать стандартные параметры, вы должны создать INI-файл вручную, как описано в Подразделе 16.2.3.2.
16.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в качестве провайдера основного правила сортировки.
16.2.4. Загрузка процедурных языков
В дистрибутив Postgres Pro для систем Windows включены процедурные языки PL/Perl и PL/Python.
16.2.4.1. Настройка среды для PL/Python
Чтобы настроить систему для использования PL/Python, выполните следующие действия:
- Загрузите и установите последнюю версию Python 2.7 для Windows. Выберите 64-битную версию, так как сервер Postgres Pro имеет 64-битную архитектуру. Вы можете найти подходящий инсталлятор на сайте https://www.python.org/. 
- Создайте расширение PL/Python, выполнив следующую команду в psql: - CREATE EXTENSION plpythonu 
Подсказка
В некоторых случаях при создании функции на PL/Python соединение с сервером разрывается, а в журнал сервера выводится следующее сообщение об ошибке:
ImportError: module site not found
 Для устранения этой проблемы попробуйте указать каталог инсталляции Python в переменной окружения PYTHONHOME и перезапустите службу Postgres Pro.
16.2.4.2. Настройка окружения для PL/Perl
Чтобы настроить систему для использования PL/Perl, выполните следующие действия:
- Загрузите ActivePerl 5.26 по ссылке https://www.activestate.com/activeperl/downloads и установите его. 
- Обязательно отметьте флажок Add Perl to the PATH environment variable (Добавить Perl в переменную окружения) в мастере установки. 
- Перезапустите сервер Postgres Pro. 
- Создайте расширение PL/Perl, выполнив следующую команду в psql: - CREATE EXTENSION plperlu 
16.2.5. Настройка нескольких экземпляров Postgres Pro
Чтобы настроить в Windows несколько экземпляров сервера Postgres Pro с разными каталогами данных, нужно проделать следующее:
- Установите Postgres Pro, как описывается в Подразделе 16.2.2 или Подразделе 16.2.3. Установленные двоичные файлы используются всеми экземплярами Postgres Pro, поэтому данное действие нужно выполнить только один раз. 
- Выберите пустую папку, которую ваш новый экземпляр Postgres Pro будет использовать в качестве каталога данных. Например, это может быть - C:\Program Files\PostgresPro\12\data2. К этой папке необходимо дать полный доступ текущему пользователю ОС, который будет владельцем файлов базы, и пользователю, от имени которого работает сервер (по умолчанию- NT AUTHORITY\NetworkService).
- Запустите программу initdb, передав ей полный путь к новому каталогу данных и другие параметры, требующиеся для инициализации нового экземпляра сервера. Например: - "C:\Program Files\PostgresPro\12\bin\initdb.exe" --encoding=UTF8 -U "postgres" -D "C:\Program Files\PostgresPro\12\data2" - Также вы можете остановить работающий сервер и скопировать содержимое существующего каталога данных в новый каталог. В этом случае новый экземпляр Postgres Pro наследует все свойства исходного экземпляра, включая параметры аутентификации. 
- Установите в - postgresql.confнового экземпляра Postgres Pro требуемые параметры. Обязательно назначьте отдельным экземплярам сервера разные порты во избежание конфликтов.
- Откройте приглашение командной строки от имени администратора и зарегистрируйте новую службу Postgres Pro с уникальным именем, например, - postgrespro-data2:- "C:\Program Files\PostgresPro\12\bin\pg_ctl.exe" register -N "postgrespro-data2" -U "NT AUTHORITY\NetworkService" -D "C:\Program Files\PostgresPro\12\data2" -w - Запустите зарегистрированную службу: - sc start "postgrespro-data2" 
После запуска службы ваш экземпляр Postgres Pro готов к использованию. Если вам нужны дополнительные расширения Postgres Pro, установите их в новом экземпляре, как описывается в Разделе 16.3.
16.2.6. Удаление Postgres Pro Standard
Процедура удаления Postgres Pro Standard зависит от количества экземпляров Postgres Pro, установленных в вашей системе.
Если у вас только один экземпляр Postgres Pro, созданный во время установки, вам будет достаточно запустить программу C:\Program Files\PostgresPro\12\uninstall.exe. Эта программа автоматически остановит сервер и разрегистрирует службу, связанную с этим экземпляром.
Если вы создавали дополнительные экземпляры Postgres Pro, вам нужно будет проделать следующие действия:
- Остановите сервер для каждого экземпляра: - "C:\Program Files\PostgresPro\12\bin\pg_ctl.exe" stop -D "C:\Program Files\PostgresPro\12\ - data_dir" -m fast -w
- Разрегистрируйте службы для всех экземпляров: - "C:\Program Files\PostgresPro\12\bin\pg_ctl.exe" unregister -N " - имя_службы_postgrespro"
- Запустите - C:\Program Files\PostgresPro\12\uninstall.exe, чтобы удалить исполняемые файлы Postgres Pro.