Системные требования postgresql: — PostgreSQL/Postgres Pro 9.x/10.x/11.x

Postgres Pro Standard : Документация: 14: 16.2. Установка Postgres Pro Standard в Windows : Компания Postgres Professional

RU

EN

RU EN

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

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

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

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

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

16.2.6. Удаление Postgres Pro Standard

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

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

  • Установка в графическом режиме с помощью интерактивного мастера

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

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

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

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

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

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

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

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

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

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

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

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

  • pg_probackup

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

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

  • Выбранный каталог данных должен быть пустым. В противном случае Postgres Pro не сможет создать начальную базу данных. По умолчанию каталогом данных будет C:\Program Files\PostgresPro\14\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, выполните следующие действия:

  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.

16.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

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

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

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

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

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

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

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

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

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

    "C:\Program Files\PostgresPro\14\bin\pg_ctl.exe" register -N "postgrespro-data2" -U "NT AUTHORITY\NetworkService" -D "C:\Program Files\PostgresPro\14\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\14\uninstall.exe. Эта программа автоматически остановит сервер и разрегистрирует службу, связанную с этим экземпляром.

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

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

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

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

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

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

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

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

PostgreSQL : Документация: 10: 16.2. Требования : Компания Postgres Professional

RU

EN

RU EN

В принципе, запустить PostgreSQL должно быть возможно на любой современной Unix-совместимой платформе. Платформы, прошедшие специальную проверку на совместимость к моменту выпуска версии, перечислены далее в Разделе 16.6. В подкаталоге doc дистрибутива PostgreSQL вы можете найти несколько документов FAQ по разным платформам, к которым следует обратиться в случае затруднений.

Для сборки PostgreSQL требуются следующие программные пакеты:

  • Требуется GNU make версии 3.80 или новее; другие программы make или ранние версии GNU make работать не будут. (Иногда GNU make устанавливается под именем gmake.) Чтобы проверить наличие и версию GNU make, введите:

    make --version
    
  • Вам потребуется компилятор C, соответствующий ISO/ANSI (как минимум, совместимый с C89). Рекомендуется использовать последние версии GCC, но известно, что PostgreSQL собирается самыми разными компиляторами и других производителей.

  • Для распаковки пакета исходного кода необходим tar, а также gzip или bzip2.

  • По умолчанию при сборке используется библиотека GNU Readline. Она позволяет запоминать все вводимые команды в psql (SQL-интерпретатор командной строки для PostgreSQL) и затем, пользуясь клавишами-стрелками, возвращаться к ним и редактировать их. Это очень удобно и мы настоятельно рекомендуем пользоваться этим. Если вы не желаете использовать эту возможность, вы должны добавить указание --without-readline для configure. В качестве альтернативы часто можно использовать библиотеку libedit с лицензией BSD, изначально разработанную для NetBSD. Библиотека libedit совместима с GNU Readline и подключается, если libreadline не найдена, или когда configure передаётся указание --with-libedit-preferred. Если вы используете систему на базе Linux с пакетами, учтите, что вам потребуются два пакета: readline и readline-devel, если в вашем дистрибутиве они разделены.

  • По умолчанию для сжатия данных используется библиотека zlib. Если вы не хотите её использовать, вы должны передать configure указание --without-zlib. Это указание отключает поддержку сжатых архивов в pg_dump и pg_restore.

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

  • Чтобы собрать поддержку языка программирования PL/Perl, вам потребуется полная инсталляция Perl, включая библиотеку libperl и заголовочные файлы. Версия Perl должна быть не старее 5.8.3. Так как PL/Perl будет разделяемой библиотекой, библиотека libperl тоже должна быть разделяемой для большинства платформ. В последних версиях Perl это вариант по умолчанию, но в ранних версиях это было не так, и в любом случае это выбирает тот, кто устанавливает Perl в вашей системе. Скрипт configure выдаст ошибку, если не сможет найти разделяемую libperl, когда выбрана сборка PL/Perl. В этом случае, чтобы собрать PL/Perl, вам придётся пересобрать и переустановить Perl. В процессе конфигурирования Perl выберите сборку разделяемой библиотеки.

    Если вы планируете отвести PL/Perl не второстепенную роль, следует убедиться в том, что инсталляция Perl была собрана с флагом usemultiplicity (так ли это, может показать команда perl -V).

  • Чтобы собрать сервер с поддержкой языка программирования PL/Python, вам потребуется инсталляция Python с заголовочными файлами и модулем sysconfig. Версия Python должна быть не меньше 2.7. Python 3 поддерживается, начиная с версии 3.2; но, используя Python 3, учтите написанное в Разделе 45.1.

    Так как PL/Python будет разделяемой библиотекой, библиотека libpython тоже должна быть разделяемой для большинства платформ. По умолчанию при сборке инсталляции Python из пакета исходного кода это не так, но во многих дистрибутивах имеется нужная разделяемая библиотека. Скрипт configure выдаст ошибку, если не сможет найти разделяемую libpython, когда выбрана сборка PL/Python. Это может означать, что вам нужно либо установить дополнительные пакеты, либо пересобрать (частично) вашу инсталляцию Python, чтобы получить эту библиотеку. При сборке Python из исходного кода выполните configure с флагом --enable-shared.

  • Чтобы собрать поддержку процедурного языка PL/Tcl, вам, конечно, потребуется инсталляция Tcl. Версия Tcl должна быть не старее 8.4.

  • Чтобы включить поддержку национальных языков (NLS, Native Language Support), то есть возможность выводить сообщения программы не только на английском языке, вам потребуется реализация API Gettext. В некоторых системах эта реализация встроена (например, в Linux, NetBSD, Solaris), а для других вы можете получить дополнительный пакет по адресу http://www.gnu.org/software/gettext/. Если вы используете реализацию Gettext в библиотеке GNU, вам понадобится ещё пакет GNU Gettext для некоторых утилит. Для любых других реализаций он не требуется.

  • Если вам нужна поддержка зашифрованных клиентских соединений, вам потребуется OpenSSL, версии не ниже 0. 9.8.

  • Вам могут понадобиться пакеты Kerberos, OpenLDAP и/или PAM, если вам нужна поддержка аутентификации, которую они обеспечивают.

  • Для сборки документации PostgreSQL предъявляется отдельный набор требований; см. Раздел J.2.

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

  • GNU Flex и Bison потребуются для сборки из содержимого Git или если вы меняете собственно файлы определений анализа и разбора. Если они вам понадобятся, то версия Flex должна быть не меньше 2.5.31, а Bison — не меньше 1.875. Другие программы lex и yacc работать не будут.

  • Perl 5.8.3 или новее потребуется для сборки из содержимого Git, либо если вы меняете исходные файлы этапов сборки, построенных на скриптах Perl. Если вы выполняете сборку в Windows, вам потребуется Perl в любом случае. Perl также требуется для выполнения некоторых комплектов тестов.

Если вам понадобится какой-либо пакет GNU, вы можете найти его на вашем локальном зеркале GNU (список зеркал: http://www.gnu.org/order/ftp.html) или на сайте ftp://ftp.gnu.org/gnu/.

Также проверьте, достаточно ли места на диске. Вам потребуется около 100 Мб для исходного кода в процессе компиляции и около 20 Мб для каталога инсталляции. Пустой кластер баз данных занимает около 35 Мб; базы данных занимают примерно в пять раз больше места, чем те же данные в обычном текстовом файле. Если вы планируете запускать регрессионные тесты, вам может временно понадобиться ещё около 150 Мб. Проверить наличие свободного места можно с помощью команды df.

PostgreSQL: Документация: 15: 17.2. Требования

Как правило, современная Unix-совместимая платформа должна поддерживать PostgreSQL. Платформы, прошедшие специальное тестирование на момент выпуска, описаны в Разделе 17.6 ниже.

Для сборки PostgreSQL требуются следующие программные пакеты:

  • Требуется GNU make версии 3. 81 или новее; другие программы make или более старые версии GNU make будут работать с , а не с . (GNU make иногда устанавливается под именем gmake .) Для проверки GNU make введите:

       сделать --версия  
     
  • Вам нужен компилятор ISO/ANSI C (по крайней мере, совместимый с C99). Рекомендуются последние версии GCC, но известно, что PostgreSQL строится с использованием самых разных компиляторов от разных производителей.

  • tar требуется для распаковки исходного дистрибутива в дополнение к gzip или bzip2.

  • По умолчанию используется библиотека GNU Readline. Это позволяет psql (интерпретатору командной строки SQL PostgreSQL) запоминать каждую введенную вами команду и позволяет использовать клавиши со стрелками для вызова и редактирования предыдущих команд. Это очень полезно и настоятельно рекомендуется. Если вы не хотите его использовать, вы должны указать параметр --without-readline для configure . В качестве альтернативы часто можно использовать библиотеку libedit под лицензией BSD, изначально разработанную для NetBSD. 9Библиотека 0011 libedit совместима с GNU Readline и используется, если libreadline не найдена или если --with-libedit-preferred используется в качестве опции для configure . Если вы используете дистрибутив Linux на основе пакетов, имейте в виду, что вам нужны пакеты readline и readline-devel , если они находятся в вашем дистрибутиве отдельно.

  • По умолчанию используется библиотека сжатия zlib. Если вы не хотите его использовать, вы должны указать --without-zlib вариант настроить . Использование этой опции отключает поддержку сжатых архивов в pg_dump и pg_restore.

Следующие пакеты являются дополнительными. Они не требуются в конфигурации по умолчанию, но необходимы, когда включены определенные параметры сборки, как описано ниже:

  • Для создания серверного языка программирования PL/Perl вам потребуется полная установка Perl, включая libperl 9.0012 и файлы заголовков. Минимальная требуемая версия — Perl 5.8.3. Поскольку PL/Perl будет общей библиотекой, библиотека libperl также должна быть общей библиотекой на большинстве платформ. Похоже, это значение по умолчанию в последних версиях Perl, но не в более ранних версиях, и в любом случае это выбор того, кто установил Perl на вашем сайте. configure завершится ошибкой, если выбрано построение PL/Perl, но не может быть найден общий libperl . В этом случае вам придется пересобрать и установить Perl вручную, чтобы иметь возможность собрать PL/Perl. В процессе настройки Perl запросите общую библиотеку.

    Если вы собираетесь использовать PL/Perl более чем случайно, вы должны убедиться, что установка Perl была собрана с включенной опцией usemultiplicity ( perl -V покажет, так ли это).

  • Чтобы создать серверный язык программирования PL/Python, вам потребуется установка Python с файлами заголовков и модулем sysconfig. Минимальная требуемая версия — Python 3.2.

    Поскольку PL/Python будет разделяемой библиотекой, Библиотека libpython также должна быть общей библиотекой на большинстве платформ. Это не относится к установке Python по умолчанию, созданной из исходного кода, но общая библиотека доступна во многих дистрибутивах операционных систем. configure завершится ошибкой, если выбрано построение PL/Python, но не может найти общий libpython . Это может означать, что вам нужно либо установить дополнительные пакеты, либо перестроить (часть) вашей установки Python, чтобы предоставить эту общую библиотеку. При сборке из исходного кода запустите настройку Python с параметром 9.0011 --enable-общий флаг .

  • Для создания процедурного языка PL/Tcl вам, конечно же, потребуется установка Tcl. Минимальная требуемая версия — Tcl 8.4.

  • Чтобы включить поддержку родного языка (NLS), то есть возможность отображать сообщения программы на языке, отличном от английского, необходима реализация Gettext API. В некоторых операционных системах это встроено (например, Linux, NetBSD, Solaris), для других систем вы можете загрузить дополнительный пакет с https://www.gnu.org/software/gettext/. Если вы используете реализацию Gettext в библиотеке GNU C, вам дополнительно потребуется пакет GNU Gettext для некоторых служебных программ. Для любых других реализаций он вам не понадобится.

  • Вам нужен OpenSSL, если вы хотите поддерживать зашифрованные клиентские соединения. OpenSSL также требуется для генерации случайных чисел на платформах, на которых нет /dev/urandom (кроме Windows). Минимальная требуемая версия — 1.0.1.

  • Вам необходимы Kerberos, OpenLDAP и/или PAM, если вы хотите поддерживать аутентификацию с помощью этих служб.

  • Вам нужен LZ4, если вы хотите поддерживать сжатие данных этим методом; см. default_toast_compression и wal_compression.

  • Вам нужен Zstandard, если вы хотите поддерживать сжатие данных этим методом; см. wal_compression. Минимальная требуемая версия — 1.4.0.

  • Для создания документации PostgreSQL существует отдельный набор требований; см. Раздел J.2.

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

  • Flex и Bison необходимы для сборки из проверки Git или если вы изменили фактические файлы определения сканера и парсера. Если они вам нужны, обязательно получите Flex 2.5.31 или более позднюю версию и Bison 1.875 или более позднюю версию. Другие программы lex и yacc использовать нельзя.

  • Perl 5.8.3 или более поздней версии необходим для сборки из Git checkout или если вы изменили входные файлы для любого из шагов сборки, использующих сценарии Perl. При сборке на Windows вам в любом случае понадобится Perl. Perl также требуется для запуска некоторых наборов тестов.

Если вам нужно получить пакет GNU, вы можете найти его на локальном зеркальном сайте GNU (список см. на https://www.gnu.org/prep/ftp) или на ftp://ftp.gnu. орг/гну/.

Также убедитесь, что у вас достаточно места на диске. Вам понадобится около 350 МБ для исходного дерева во время компиляции и около 60 МБ для каталога установки. Пустой кластер базы данных занимает около 40 МБ; базы данных занимают примерно в пять раз больше места, чем простой текстовый файл с теми же данными. Если вы собираетесь запускать регрессионные тесты, вам временно потребуется до 300 МБ дополнительного пространства. Используйте df Команда для проверки свободного места на диске. Минимальные требования PostgreSQL

— CommandPrompt Inc.

требования для производства использование PostgreSQL независимо от того, локально или в облаке. Мы не будем обсуждать проприетарные форки, такие как Amazon RDS или другие форки с открытым исходным кодом, такие как Yugabyte или Greenplum.

PostgreSQL — это Linux баз данных. Он предоставляет ядро ​​и ключевые функции для наиболее важных служб баз данных, доступных сегодня. К ним относятся, помимо прочего:

  • Greenplum
  • Yugabyte
  • Amazon RDS для PostgreSQL
  • Amazon Aurora для PostgreSQL
  • База данных Azure для PostgreSQL
  • AlloyDB
  • Cloud SQL для PostgreSQL
  • NeonDB

Это также обеспечивает ключевую инфраструктуру для других баз данных, таких как Cockroach.

Поддерживаемые платформы

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

Облако

Объем этой статьи не позволяет нам обсуждать конкретные варианты облачных экземпляров. Вместо этого мы сосредоточимся на общих минимальных требованиях для работы в облаке. Эти параметры будут действительны для всех основных платформ, но не будут включать проприетарные ответвления, такие как AlloyDB, Aurora, RDS или Hyperscale. Это не значит, что эти платформы бесполезны или хороши, просто это не PostgreSQL.

Преимущество современных облачных платформ заключается в том, что вы можете настроить свой экземпляр в соответствии со своими потребностями. Во время первоначального предоставления вам может понадобиться только 2 ГБ памяти и 2 ЦП, но внезапно ваш новый продукт или услуга взлетят… Вместо того, чтобы покупать все новое оборудование и выполнять миграцию, вы можете обновить свой экземпляр до более мощной реализации и перезагрузить компьютер. Это становится очень быстрым простоем по сравнению с длительной, затяжной, запланированной миграцией.

Основы

  • Двухъядерный процессор 1 ГГц
  • 2 ГБ памяти
  • 2 ГБ дискового пространства
  • RAID 1
  • Linux

Процессор и память

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

Облако Google

При использовании облака Google минимальный размер экземпляра для GCE (Google Compute Engine) будет e2-small, который обеспечивает 2 общих ядра ЦП и 2 ГБ памяти. Это инстансы с общим ядром, и у них есть определенные ограничения, о которых следует помнить, включая максимальное дисковое пространство 3 ТБ на постоянный диск. Если вы ищете аналогичную конфигурацию, но с отдельным ядром, мы рекомендуем e2-standard-2, который обеспечивает более надежную работу с 2 виртуальными процессорами и 8 ГБ памяти.

AWS

Использование AWS для PostgreSQL может быть немного сложнее из-за модели ценообразования AWS. Если мы придерживаемся минимальных требований, то инстанс AWS EC2 m4.large может быть хорошим выбором. Он имеет 2 vCPU и 8 ГБ памяти. Однако это экземпляр «только для тома EBS», и он ограничивает пропускную способность EBS до 450 Мбит/с. Поскольку он ограничен томами EBS, достичь этого ограничения не составит труда в зависимости от конфигурации ваших томов EBS и скорости трафика вашей базы данных.

Место на диске

В облаке это не так просто. Возможность динамического добавления хранилища к экземпляру дает производственное преимущество. Это увеличивает время безотказной работы и устойчивость ваших данных. Однако облако может чрезмерно усложнить использование диска. При использовании экземпляров более низкого уровня обычно разрешается использовать только сетевые тома. Также распространено ограничение производительности этих томов не только на основе размера экземпляра, но и размера диска.

AWS

При подготовке для AWS ваши минимальные требования ограничиваются использованием только томов EBS и ограниченной пропускной способностью тома EBS. Используя вышеупомянутый тип инстанса m4.large, мы можем предоставить соответствующий размер минимум 2 ГБ диска, но нам нужно будет выделить 2 тома EBS, чтобы мы выполнили минимальное требование RAID 1. В этом случае ваша общая скорость ограничена 450 Мбит/с. за два тома. Другими словами, из-за ограничений экземпляра подготовленная база данных будет эквивалентна наличию локального сервера с (2) дисками SAS в RAID 1. Дополнительную информацию о параметрах и ограничениях экземпляра AWS можно найти здесь.

Google Cloud

Подготовка для Google Cloud может быть проще, поскольку они позволяют изменять размер и тип загрузочного диска. Хотя этот загрузочный диск не является избыточным и не соответствует требованиям RAID 1, он может удовлетворить ваши требования к производительности. Минимальный размер 10GB. GCE также определяет скорость диска по типу и размеру диска. Вы можете найти больше на эту тему здесь.

RAID 1

Облако создает ложное ощущение безопасности, когда речь идет об отказоустойчивости ваших данных. Существует менталитет plug and go. К сожалению, как и любая конфигурация, существует риск сбоя. Если вы разрешите своим данным находиться на одном томе EBS (или локальном). Вы подвергаетесь такому же риску, как если бы вы разрешили своим данным находиться на одном локальном диске с помощью On-Prem. Да, вы можете (и должны) иметь резервные копии, моментальные снимки, восстановление на определенный момент времени и т. д. Однако ничто не сравнится с возможностью потерять том и продолжить работу, пока вы создаете новый том и добавляете его в существующий операционный массив, не вызывая сбой.

Linux

То же, что и On-Prem, для PostgreSQL следует использовать Linux. Это не пренебрежение к любой другой операционной системе (смотря на FreeBSD). PostgreSQL наиболее широко тестируется на Linux, и экосистема сосредоточена вокруг Linux. Кроме того, PostgreSQL придерживается специфического взгляда на конфигурацию и администрирование Linux/Unix, что делает его чуждым для пользователей Windows (хотя Microsoft доказала, что PostgreSQL хорошо работает в Windows). Мы также рекомендуем вам придерживаться широко поддерживаемых извне дистрибутивов Linux, таких как Debian, RHEL, SLES и Ubuntu LTS. Следует стараться избегать дистрибутивов, ориентированных на поставщиков, таких как Amazon Linux.


On-Prem

Несмотря на то, что значительный процент пользователей PostgreSQL мигрирует в облако, будь то через инстансы, такие как EC2, или через управляемые сервисы, такие как RDS для PostgreSQL, они по-прежнему ничтожны по сравнению с общей численностью локальных -прем установки. Если у вас есть персонал и опыт, локальная среда может предложить множество вариантов, которые облако не может или не может сделать экономически эффективным способом. Существует также аргумент, что, переходя в облако, вы увеличиваете внешний риск.

Основы:

  • Двухъядерный процессор 1 ГГц
  • 2 ГБ памяти
  • 2 ГБ дискового пространства
  • RAID 1
  • Linux

Процесс или

PostgreSQL основан на процессах, а это означает, что он может делать буквально только одно. на процесс, на ядро, за раз. Использование таких технологий, как переключение контекста, помогает, но неотъемлемое физическое ограничение все еще существует. Хотя есть приложения, которые будут нормально работать в этом сценарии, ваша масштабируемость значительно возрастет в многоядерном сценарии. Даже если ваше приложение использует только один процессор, существуют другие процессы, работающие в фоновом режиме PostgreSQL (Wal Writer, BGwriter, сборщик статистики, автоочистка и т. д.), для которых вы хотите убедиться, что у вас есть ресурсы вне самого приложения. Также следует избегать всего, что не является 64-битным.

Память

2 ГБ памяти — это рекомендуемый объем памяти, который вы можете выделить для PostgreSQL вне операционной системы. Если у вас небольшой набор данных, вам все равно понадобится достаточно памяти для кэширования большинства ваших горячих данных (вы можете использовать pg_buffercache для определения ваших горячих данных). Имея 2 ГБ памяти, вы можете выделить 512 МБ общих буферов для горячего кэша и оставить 1,5 ГБ для демонов обслуживания, параллелизма и work_mem.

Дисковое пространство

В некоторых статьях предлагается выделить 512 МБ дискового пространства. К сожалению, в этих статьях не учитывается конфигурация по умолчанию для текущих установок PostgreSQL. Учтите, что max_wal_size по умолчанию равен 1 ГБ, плюс у вас есть параллелизм возможностей, которые используют work_mem (который может передаваться на диск), Maintenance_work_mem (который может передаваться на диск), и вам по-прежнему требуется по крайней мере некоторое пространство для ваших данных и индексов.

Raid 1

Когда речь идет о дисках для локальной установки и почти во всех случаях для производства, вам нужен как минимум RAID 1. RAID 1 не обеспечивает увеличения производительности записи, но в зависимости от драйвера/контроллера обеспечивает увеличение производительности чтения .