Системные требования 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. Замечания о совместимости с антивирусами
- 16.2.2. Установка с графическим интерфейсом
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, выполните следующие действия:
Загрузите и установите последнюю версию Python 3.
8 или 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, выполните следующие действия:
Загрузите Strawberry Perl 5.26, выбрав на странице https://strawberryperl.com/releases.html MSI-пакет 64-битной версии, и установите его.
Перезапустите сервер 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\14\data2
. К этой папке необходимо дать полный доступ текущему пользователю ОС, который будет владельцем файлов базы, и пользователю, от имени которого работает сервер (по умолчаниюNT AUTHORITY\NetworkService
).Запустите программу initdb, передав ей полный путь к новому каталогу данных и другие параметры, требующиеся для инициализации нового экземпляра сервера.
Например:
"C:\Program Files\PostgresPro\14\bin\initdb.exe" --encoding=UTF8 -U "postgres" -D "C:\Program Files\PostgresPro\14\data2"
Также вы можете остановить работающий сервер и скопировать содержимое существующего каталога данных в новый каталог. В этом случае новый экземпляр Postgres Pro наследует все свойства исходного экземпляра, включая параметры аутентификации.
Установите в
postgresql.conf
нового экземпляра Postgres Pro требуемые параметры. Обязательно назначьте отдельным экземплярам сервера разные порты во избежание конфликтов.Откройте приглашение командной строки от имени администратора и зарегистрируйте новую службу 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, вам нужно будет проделать следующие действия:
Остановите сервер для каждого экземпляра:
"C:\Program Files\PostgresPro\14\bin\pg_ctl.exe" stop -D "C:\Program Files\PostgresPro\14\
data_dir
" -m fast -wРазрегистрируйте службы для всех экземпляров:
"C:\Program Files\PostgresPro\14\bin\pg_ctl.
exe" unregister -N "
имя_службы_postgrespro
"Запустите
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 не обеспечивает увеличения производительности записи, но в зависимости от драйвера/контроллера обеспечивает увеличение производительности чтения .