16.2. Установка PostgreSQL for 1C в Windows

16.2.1. Поддерживаемые версии Windows
16.2.2. Установка с графическим интерфейсом
16.2.3. Установка в командной строке
16.2.4. Загрузка процедурных языков
16.2.5. Настройка нескольких экземпляров PostgreSQL
16.2.6. Удаление PostgreSQL for 1C
16.2.7. Замечания о совместимости с антивирусами

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

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

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

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

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

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

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

  • Windows 8.1, 10

  • Windows Server 2008 R2 и новее

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

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

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

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

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

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

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

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

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

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

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

Чтобы установить PostgreSQL из командной строки, запустите загруженный файл инсталлятора, передав один или несколько параметров, описанных в Подразделе 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 — установить полезные для PostgreSQL переменные окружения: PGDATA, PGDATABASE, PGUSER, PGPORT, PGLOCALEDIR

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

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

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

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

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

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

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

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

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

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

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

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

    CREATE EXTENSION plpythonu

Подсказка

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

ImportError: module site not found

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

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

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

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

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

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

    CREATE EXTENSION plperlu

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

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

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

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

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

    "C:\Program Files\PostgreSQL 1C\10\bin\initdb.exe" --encoding=UTF8 -U "postgres" -D "C:\Program Files\PostgreSQL 1C\10\data2"

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

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

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

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

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

    sc start "postgrespro-data2"

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

16.2.6. Удаление PostgreSQL for 1C

Процедура удаления PostgreSQL for 1C зависит от количества экземпляров PostgreSQL, установленных в вашей системе.

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

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

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

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

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

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

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

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

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