Сервер postgresql: PostgreSQL : Документация: 10: 18.3. Запуск сервера баз данных : Компания Postgres Professional

Содержание

PostgreSQL : Документация: 10: 18.3. Запуск сервера баз данных : Компания Postgres Professional

18.3.1. Сбои при запуске сервера

18.3.2. Проблемы с подключениями клиентов

Чтобы кто-либо смог обратиться к базе данных, необходимо сначала запустить сервер баз данных. Программа сервера называется postgres. Для работы программа postgres должна знать, где найти данные, которые она будет использовать. Указать это местоположение позволяет параметр -D. Таким образом, проще всего запустить сервер, выполнив команду:

$ postgres -D /usr/local/pgsql/data

в результате которой сервер продолжит работу в качестве процесса переднего плана. Запускать эту команду следует под именем учётной записи PostgreSQL. Без параметра -D сервер попытается использовать каталог данных, указанный в переменной окружения PGDATA. Если и эта переменная не определена, сервер не будет запущен.

Однако обычно лучше запускать postgres в фоновом режиме. Для этого можно применить обычный синтаксис, принятый в оболочке Unix:

$ postgres -D /usr/local/pgsql/data >logfile 2>&1 &

Важно где-либо сохранять информацию, которую выводит сервер в каналы stdout и stderr, как показано выше. Это полезно и для целей аудита, и для диагностики проблем. (Более глубоко работа с файлами журналов рассматривается в Разделе 24.3.)

Программа postgres также принимает несколько других параметров командной строки. За дополнительными сведениями обратитесь к справочной странице postgres и к следующей Главе 19.

Такой вариант запуска довольно быстро может оказаться неудобным. Поэтому для упрощения подобных задач предлагается вспомогательная программа pg_ctl. Например:

pg_ctl start -l logfile

запустит сервер в фоновом режиме и направит выводимые сообщения сервера в указанный файл журнала. Параметр -D для неё имеет то же значение, что и для программы postgres. С помощью pg_ctl также можно остановить сервер.

Обычно возникает желание, чтобы сервер баз данных сам запускался при загрузке операционной системы. Скрипты автозапуска для разных систем разные, но в составе PostgreSQL предлагается несколько типовых скриптов в каталоге contrib/start-scripts. Для установки такого скрипта в систему требуются права root.

В различных системах приняты разные соглашения о порядке запуска служб в процессе загрузки. Во многих системах для этого используется файл /etc/rc.local или /etc/rc.d/rc.local. В других применяются каталоги init.d или rc.d. Однако при любом варианте запускаться сервер должен от имени пользователя PostgreSQL, но не root или какого-либо другого пользователя. Поэтому команду запуска обычно следует записывать в форме su postgres -c '...'. Например:

su postgres -c 'pg_ctl start -D /usr/local/pgsql/data -l serverlog'

Ниже приведены более конкретные предложения для нескольких основных ОС. (Вместо указанных нами шаблонных значений необходимо подставить правильный путь к каталогу данных и фактическое имя пользователя.)

  • Для запуска во FreeBSD воспользуйтесь файлом contrib/start-scripts/freebsd в дереве исходного кода PostgreSQL.

  • В OpenBSD, добавьте в файл /etc/rc.local следующие строки:

    if [ -x /usr/local/pgsql/bin/pg_ctl -a -x /usr/local/pgsql/bin/postgres ]; then
        su -l postgres -c '/usr/local/pgsql/bin/pg_ctl start -s -l /var/postgresql/log -D /usr/local/pgsql/data'
        echo -n ' postgresql'
    fi
  • В системах Linux вы можете либо добавить

    /usr/local/pgsql/bin/pg_ctl start -l logfile -D /usr/local/pgsql/data

    в /etc/rc.d/rc.local или в /etc/rc.local, либо воспользоваться файлом contrib/start-scripts/linux в дереве исходного кода PostgreSQL.

    Используя systemd, вы можете применить следующий файл описания службы (например, /etc/systemd/system/postgresql.service):

    [Unit]
    Description=PostgreSQL database server
    Documentation=man:postgres(1)
    After=network-online.target
    Wants=network-online.target
    [Service]
    Type=notify
    User=postgres
    ExecStart=/usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data
    ExecReload=/bin/kill -HUP $MAINPID
    KillMode=mixed
    KillSignal=SIGINT
    TimeoutSec=infinity
    [Install]
    WantedBy=multi-user.target

    Для использования Type=notify требуется, чтобы сервер был скомпилирован с указанием configure --with-systemd.

    Особого внимания заслуживает значение тайм-аута. На момент написания этой документации по умолчанию в systemd принят тайм-аут 90 секунд, так что процесс, не сообщивший о своей готовности за это время, будет уничтожен. Но серверу PostgreSQL при запуске может потребоваться выполнить восстановление после сбоя, так что переход в состояние готовности может занять гораздо больше времени. Предлагаемое значение infinity отключает логику тайм-аута.

  • В NetBSD можно использовать скрипт запуска для FreeBSD или для Linux, в зависимости от предпочтений.

  • В Solaris, создайте файл с именем /etc/init.d/postgresql, содержащий следующую стоку:

    su - postgres -c "/usr/local/pgsql/bin/pg_ctl start -l logfile -D /usr/local/pgsql/data"

    Затем создайте символическую ссылку на него в каталоге /etc/rc3.d с именем S99postgresql.

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

18.3.1. Сбои при запуске сервера

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

LOG:  could not bind IPv4 address "127.0.0.1": Address already in use
HINT:  Is another postmaster already running on port 5432? If not, wait a few seconds and retry.
FATAL:  could not create any TCP/IP sockets

Это обычно означает именно то, что написано: вы пытаетесь запустить сервер на том же порту, на котором уже работает другой. Однако если сообщение ядра не Address already in use или подобное, возможна и другая проблема. Например, при попытке запустить сервер с номером зарезервированного порта будут выданы такие сообщения:

$ postgres -p 666
LOG:  could not bind IPv4 address "127.0.0.1": Permission denied
HINT:  Is another postmaster already running on port 666? If not, wait a few seconds and retry.
FATAL:  could not create any TCP/IP sockets

Следующее сообщение:

FATAL:  could not create shared memory segment: Invalid argument
DETAIL:  Failed system call was shmget(key=5440001, size=4011376640, 03600). 

может означать, что установленный для вашего ядра предельный размер разделяемой памяти слишком мал для рабочей области, которую пытается создать PostgreSQL (в данном примере 4011376640 байт). Возможно также, что в вашем ядре вообще отсутствует поддержка разделяемой памяти в стиле System-V. В качестве временного решения можно попытаться запустить сервер с меньшим числом буферов (shared_buffers), но в итоге вам, скорее всего, придётся переконфигурировать ядро и увеличить допустимый размер разделяемой памяти. Вы также можете увидеть это сообщение при попытке запустить несколько серверов на одном компьютере, если запрошенный ими объём разделяемой памяти в сумме превышает этот предел.

Сообщение:

FATAL:  could not create semaphores: No space left on device
DETAIL:  Failed system call was semget(5440126, 17, 03600).

не означает, что у вас закончилось место на диске. Это значит, что установленное в вашем ядре предельное число семафоров System V меньше, чем количество семафоров, которое пытается создать PostgreSQL. Как и в предыдущем случае можно попытаться обойти эту проблему, запустив сервер с меньшим числом допустимых подключений (max_connections), но в конце концов вам придётся увеличить этот предел в ядре.

Если вы получаете ошибку «illegal system call» (неверный системный вызов), то, вероятнее всего, ваше ядро вовсе не поддерживает разделяемую память или семафоры. В этом случае вам остаётся только переконфигурировать ядро и включить их поддержку.

Настройка средств IPC в стиле System V описывается в Подразделе 18.4.1.

18.3.2. Проблемы с подключениями клиентов

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

psql: could not connect to server: Connection refused
        Is the server running on host "server. joe.com" and accepting
        TCP/IP connections on port 5432?

Это общая проблема «я не могу найти сервер и начать взаимодействие с ним». Показанное выше сообщение говорит о попытке установить подключение по TCP/IP. Очень часто объясняется это тем, что сервер просто забыли настроить для работы по протоколу TCP/IP.

Кроме того, при попытке установить подключение к локальному серверу через Unix-сокет можно получить такое сообщение:

psql: could not connect to server: No such file or directory
        Is the server running locally and accepting
        connections on Unix domain socket "/tmp/.s.PGSQL.5432"?

Путь в последней строке помогает понять, к правильному ли адресу пытается подключиться клиент. Если сервер на самом деле не принимает подключения по этому адресу, обычно выдаётся сообщение ядра Connection refused (В соединении отказано) или No such file or directory (Нет такого файла или каталога), приведённое выше. (Важно понимать, что Connection refused в данном контексте не означает, что сервер получил запрос на подключение и отверг его. В этом случае были бы выданы другие сообщения, например, показанные в Разделе 20.4.) Другие сообщения об ошибках, например Connection timed out (Тайм-аут соединения) могут сигнализировать о более фундаментальных проблемах, например, о нарушениях сетевых соединений.

Цены на отдельный сервер Базы данных Azure для PostgreSQL | Microsoft Azure


























Ускоряйте инновации с помощью полностью управляемого, интеллектуального и масштабируемого PostgreSQL

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

Изучите варианты оплаты

Примените фильтры, чтобы настроить варианты оплаты в соответствии со своими потребностями.

Указаны ориентировочные цены, которые не могут рассматриваться в качестве окончательного ценового предложения. Фактические цены могут отличаться в зависимости от типа соглашения, заключенного с Майкрософт, даты покупки и курса валюты. Цены рассчитываются в долларах США и конвертируются по ставкам-ориентирам Thomson Reuters, обновляемым в первый день каждого календарного месяца. Войдите в Калькулятор цен Azure, чтобы просмотреть цены исходя из вашей текущей программы или предложения от корпорации Майкрософт. Обратитесь к специалисту по продажам Azure, чтобы получить дополнительные сведения о ценах или запросить ценовое предложение. Дополнительную информацию о ценах Azure см. в разделе вопросов и ответов.




Регион:
Восточная часть СШАВосточная часть США 2Западная часть СШАЗападная часть США 2Западная часть США 3Центральная часть СШАЦентрально-западная часть СШАЦентрально-северная часть СШАЦентрально-южная часть СШАЗападная часть Соединенного КоролевстваЮжная часть Соединенного КоролевстваСеверная часть ОАЭЦентральная часть ОАЭЗападная ШвейцарияСеверная ШвейцарияЦентральная ШвецияЮжная ШвецияЦентральный КатарВосточная НорвегияЗападная НорвегияРеспублика Корея, центральный регионРеспублика Корея, южный регионВосточная ЯпонияЗападная ЯпонияЗападная ИндияЦентральная ИндияЮжная ИндияСеверная ГерманияЦентрально-Западная ГерманияЦентральная ФранцияЮжная ФранцияЗападная ЕвропаСеверная ЕвропаВосточная КанадаЦентральная КанадаЮго-Восточная БразилияЮжная БразилияUS Gov (Аризона)US Gov (Вирджиния)US Gov (Техас)Восточная АвстралияЦентральная АвстралияЦентральная Австралия 2Юго-Восточная АвстралияВосточная АзияЮго-Восточная АзияЗападная часть ЮАРСеверная часть ЮАР

Валюта:США — доллар (USD, $)Австралия — доллар (AUD, $)Бразилия — реал (BRL, R$)Дания — крона (DKK, kr)Еврозона — евро (EUR, €)Индия — рупия (INR, ₹)Канада — доллар (CAD, $)Новая Зеландия — доллар (NZD, $)Норвегия — крона (NOK, kr)Республика Корея — вона (KRW, ₩)Россия — рубль (RUB, руб)Соединенное Королевство — фунт (GBP, £)Тайвань — доллар (TWD, NT$)Швейцария — франк (CHF, chf)Швеция — крона (SEK, kr)Япония — йена (JPY, ¥)


Отобразить цены за:
ЧасМесяц

Государственные структуры США могут приобрести службы “Azure для государственных организаций” у поставщика решений по лицензированию без предварительных финансовых обязательств или непосредственно через онлайн-подписку с оплатой по мере использования.

Подробнее

Важно! Цена в R$ лишь ориентировочная. Так как это предмет международных транзакций, окончательная цена зависит от курсов валют и налогов на финансовые операции (IOF). Форма eNF выдаваться не будет.


Государственные структуры США могут приобрести службы “Azure для государственных организаций” у поставщика решений по лицензированию без предварительных финансовых обязательств или непосредственно через онлайн-подписку с оплатой по мере использования.

Подробнее

Важно! Цена в R$ лишь ориентировочная. Так как это предмет международных транзакций, окончательная цена зависит от курсов валют и налогов на финансовые операции (IOF). Форма eNF выдаваться не будет.





  1. Отдельный сервер

  2. Гибкий сервер

  3. Гипермасштабирование (Citus)

Отдельный сервер — это предварительно настроенный сервер базы данных, который лучше всего подходит для рабочих нагрузок, в которых база данных имеет минимальные требования к настройке, включая:

  • автоматическое исправление и обслуживание базы данных;
  • встроенные функции высокой доступности на уровне 99,99 % в соответствии с соглашением об уровне обслуживания.

Подробнее об отдельном сервере Базы данных Azure для PostgreSQL

Базовый

Рабочие нагрузки с невысокими требованиями к уровню производительности вычислений и операций ввода-вывода.

Среда выполнения приложений

Ресурсы вычисления предоставляются в виртуальных ядрах. Виртуальное ядро представляет собой логический ЦП.

Вычислительные ресурсы 5-го поколения

Логические ЦП 5-го поколения основаны на процессорах Intel E5-2673 v4 (Broadwell) 2,3 ГГц.








ПамятьОплата по мере использования
12 ГиБ
$-
24 ГиБ
$-

Хранилище


Вы платите за хранилище, подготовленное для вашего сервера. Можно подготовить хранилище размером до 1 ТиБ.



Цена
ГиБ/месяц$-

Резервное копирование

Хранилище резервных копий — это хранилище, связанное с автоматическим резервным копированием вашего сервера. Увеличение периода хранения резервных копий соответственно увеличивает объем хранилища резервных копий, используемого вашим сервером. Дополнительная плата за хранилище резервных копий не взимается до полного заполнения объема, подготовленного для сервера. Плата за дополнительное пространство хранилища резервных копий будет взиматься с расчетом ГиБ/месяц.



Цена
Локально избыточное (ГиБ в месяц)$-

Реплика чтения

Реплики чтения позволяют масштабировать рабочие нагрузки с большим количеством операций чтения до объемов, превышающих емкость отдельного сервера службы «База данных Azure для PostgreSQL». За каждую созданную реплику чтения выставляется счет с учетом подготовленных вычислительных ресурсов (количество виртуальных ядер) и подготовленного хранилища (ГиБ/месяц).

Универсальные

Большинство рабочих нагрузок для бизнеса, требующих сбалансированных вычислений и памяти с масштабируемой пропускной способностью операций ввода-вывода.

Среда выполнения приложений

Ресурсы вычисления предоставляются в виртуальных ядрах. Виртуальное ядро представляет собой логический ЦП.

Вычислительные ресурсы 5-го поколения

Логические ЦП 5-го поколения основаны на процессорах Intel E5-2673 v4 (Broadwell) 2,3 ГГц.




















ПамятьОплата по мере использованияРЕЗЕРВИРОВАНИЕ НА 1 ГОДРЕЗЕРВИРОВАНИЕ НА 3 ГОДА
210 ГиБ
$-

$-

$-
420 ГиБ
$-

$-

$-
840 ГиБ
$-

$-

$-
1680 ГиБ
$-

$-

$-
32160 ГиБ
$-

$-

$-
64320 ГиБ
$-

$-

$-

Хранилище


Вы платите за хранилище, подготовленное для вашего сервера. Можно подготовить хранилище размером до 16 ТиБ*.




Цена
ГиБ/месяц$-

*В регионах «Центральная Индия», «Западная Индия» и «Южная Индия» объем хранилища ограничен 4 ТиБ.


Резервное копирование

Хранилище резервных копий — это хранилище, связанное с автоматическим резервным копированием вашего сервера. Увеличение периода хранения резервных копий соответственно увеличивает объем хранилища резервных копий, используемого вашим сервером. Дополнительная плата за хранилище резервных копий не взимается до полного заполнения объема, подготовленного для сервера. Плата за дополнительное пространство хранилища резервных копий будет взиматься с расчетом ГиБ/месяц.




Цена
Локально избыточное (ГиБ в месяц)$-
Геоизбыточное (ГиБ в месяц)$-

Реплика чтения

Реплики чтения позволяют масштабировать рабочие нагрузки с большим количеством операций чтения до объемов, превышающих емкость отдельного сервера службы «База данных Azure для PostgreSQL». За каждую созданную реплику чтения выставляется счет с учетом подготовленных вычислительных ресурсов (количество виртуальных ядер) и подготовленного хранилища (ГиБ/месяц).

Оптимизированная память

Рабочие нагрузки базы данных с высоким уровнем производительности, требующие обработки в памяти для ускоренной обработки транзакций и повышенного параллелизма.

Среда выполнения приложений

Ресурсы вычисления предоставляются в виртуальных ядрах. Виртуальное ядро представляет собой логический ЦП.

Вычислительные ресурсы 5-го поколения

Логические ЦП 5-го поколения основаны на процессорах Intel E5-2673 v4 (Broadwell) 2,3 ГГц.

















ПамятьОплата по мере использованияРЕЗЕРВИРОВАНИЕ НА 1 ГОДРЕЗЕРВИРОВАНИЕ НА 3 ГОДА
220 ГиБ
$-

$-

$-
440 ГиБ
$-

$-

$-
880 ГиБ
$-

$-

$-
16160 ГиБ
$-

$-

$-
32320 ГиБ
$-

$-

$-

Хранилище


Вы платите за хранилище, подготовленное для вашего сервера. Можно подготовить хранилище размером до 16 ТиБ*.




Цена
ГиБ/месяц$-

*В регионах «Центральная Индия», «Западная Индия» и «Южная Индия» объем хранилища ограничен 4 ТиБ.


Резервное копирование

Хранилище резервных копий — это хранилище, связанное с автоматическим резервным копированием вашего сервера. Увеличение периода хранения резервных копий соответственно увеличивает объем хранилища резервных копий, используемого вашим сервером. Дополнительная плата за хранилище резервных копий не взимается до полного заполнения объема, подготовленного для сервера. Плата за дополнительное пространство хранилища резервных копий будет взиматься с расчетом ГиБ/месяц.




Цена
Локально избыточное (ГиБ в месяц)$-
Геоизбыточное (ГиБ в месяц)$-

Реплика чтения

Реплики чтения позволяют масштабировать рабочие нагрузки с большим количеством операций чтения до объемов, превышающих емкость отдельного сервера службы «База данных Azure для PostgreSQL». За каждую созданную реплику чтения выставляется счет с учетом подготовленных вычислительных ресурсов (количество виртуальных ядер) и подготовленного хранилища (ГиБ/месяц).

Защитник Azure

Дополнительные сведения об Azure Defender см. на странице цен на Azure Defender.

Уникальные возможности, позволяющие уменьшить совокупную стоимость владения


Эффективное и прозрачное установление цен

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


Оптимизация затрат

Сэкономьте до 60 % по сравнению с вариантами оплаты по мере использования благодаря зарезервированной емкости.

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


Выбор варианта развертывания

Используйте различные варианты развертывания, включая одиночный сервер и Гибкий сервер для удовлетворения потребности своей организации в управлении базами данных и их настройке

.



Azure: цены и варианты приобретения



Свяжитесь с нами напрямую

Изучите пошаговое руководство по ценам на Azure. Ознакомьтесь с ценами на интересующее вас облачное решение, узнайте об оптимизации затрат и запросите индивидуальное предложение.

Обратитесь к специалисту по продажам

Узнайте о способах приобретения

Приобрести службы Azure можно на веб-сайте Azure, у представителя Майкрософт или у партнера Azure.

Изучить доступные варианты


Дополнительные ресурсы




База данных Azure для PostgreSQL

Узнайте больше о функциях и возможностях службы «База данных Azure для PostgreSQL».

Калькулятор цен

Оцените приблизительные ежемесячные затраты при использовании любого сочетания продуктов Azure.

Соглашение об уровне обслуживания

Ознакомьтесь с Соглашением об уровне обслуживания для База данных Azure для PostgreSQL.

Документация

Ознакомьтесь с техническими руководствами, видеороликами и дополнительными ресурсами по службе “База данных Azure для PostgreSQL”.





Часто задаваемые вопросы


Часто задаваемые вопросы о ценах Azure


  • Базовый уровень предназначен для рабочих нагрузок с невысокими требованиями к производительности вычислений и операций ввода-вывода. К примерам относятся серверы, используемые для разработки или тестирования, или маломасштабируемые, редко используемые приложения. Уровень общего назначения предназначен для большинства рабочих нагрузок для бизнеса, требующих сбалансированных вычислений и памяти с масштабируемой пропускной способностью операций ввода-вывода. К примерам относятся серверы для размещения мобильных и веб-приложений, а также других корпоративных приложений. Уровень, оптимизированный для операций в памяти, предназначен для рабочих нагрузок базы данных с высоким уровнем производительности, требующих обработки в памяти для ускоренной обработки транзакций и повышенного параллелизма. К примерам относятся серверы для обработки данных в режиме реального времени, а также аналитические или транзакционные приложения с высоким уровнем производительности. Дополнительные сведения см. в документации.


  • На всех уровнях служба оплачивается по прогнозируемым почасовым тарифам с учетом ценовой категории, подготовленных вычислительных ресурсов (количество виртуальных ядер) и подготовленного хранилища (ГиБ/месяц) для сервера и резервных копий. В вашем счете цены за часы использования виртуального ядра, хранилища для сервера и резервных копий (в ГиБ/месяц) будут указаны в отдельных строках.


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

    Вот примеры:

    • Если вы создали сервер PostgreSQL и через пять минут удалили его, оплачивается полный час использования подготовленных вычислительных ресурсов и хранилища.
    • Если вы создали сервер PostgreSQL на уровне общего назначения с 8 виртуальными ядрами, а затем сразу же обновили его до 16 ядер, плата за первый час взимается по тарифу за 16 виртуальных ядер.


  • Да. С 1 июля 2018 г. начинают действовать стандартные тарифы на исходящий сетевой трафик. Дополнительные сведения см. здесь.


  • Хранилище резервных копий — это хранилище, связанное с автоматическим резервным копированием вашего сервера. Увеличение периода хранения резервных копий соответственно увеличивает объем хранилища резервных копий, используемого сервером PostgreSQL. Дополнительная плата за хранилище резервных копий не взимается до полного заполнения объема, подготовленного для сервера. Плата за дополнительное пространство хранилища резервных копий будет взиматься с расчетом ГиБ/месяц. Например, если размер хранилища базы данных составляет 100 ГиБ, вы можете хранить резервную копию объемом 100 ГиБ без каких-либо дополнительных затрат. Однако, если размер резервной копии составляет 110 ГиБ, необходимо будет заплатить за 10 ГиБ.


  • Зарезервированная емкость позволяет резервировать вычислительные ресурсы. Этот вариант оплаты обеспечивает экономию до 43 % при резервировании на один год и до 62 % при резервировании на три года по сравнению с оплатой по мере использования.

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


Запросить предложение с расценками

К вашим услугам бесплатные облачные службы и кредит в сумме $200 для изучения Azure в течение 30 дней.


Бесплатная пробная версия Azure



Добавлено для расчета.
Щелкните v для просмотра на калькуляторе
Просмотр на калькуляторе












PostgreSQL: Серверы

  • О программе
  • Политики
  • Матрица характеристик
  • Пожертвовать
  • История
  • спонсора
    • Серверы
  • Последние новости
  • Предстоящие события
    • Прошлые события
  • Пресс
  • Лицензия

Серверы, на которых работают службы www. postgresql.org, предоставляются
различных компаний и организаций по всему миру.

Имя Провайдер Посвященный Технические характеристики ОС Местоположение Использование
авс

Веб-сервисы Амазонки

Динамический Собственный Глобальный Ограниченное размещение виртуальных машин
баку

Конова Коммуникейшнс ГмбХ

Да 6 ядер, 32Гб Дебиан GNU/Linux 10 Зальцбург, Австрия внутреннее использование
барзан

Конова Коммуникейшнс ГмбХ

Да 8 ядер, 64Гб Debian GNU/Linux 10 Зальцбург, Австрия внутреннее использование
посейдон

ЭБР

Да 8 ядер, 384 ГБ Версия CentOS 7. x Wantage, Оксфордшир, Великобритания Сервер сборки RPM
постгрескл02

ЭБР

Да 4 ядра, 8 ГБ Сервер Red Hat Enterprise Linux Сент-Луис, Миссури, США Хост виртуальной машины, не зависящий от платформы pginfra
ранца

Рэкспейс

Да 12 ядер, 32 ГБ Дебиан GNU/Linux 10 США Хост виртуальной машины
регула

Редпил Линпро

Да 48 ядер, 256 Гб Дебиан GNU/Linux 10 Осло, Норвегия Хост виртуальной машины
релва

Рэкспейс

Да 12 ядер, 32 Гб Дебиан GNU/Linux 10 США Хост виртуальной машины
ригель

Рэкспейс

Да 12 ядер, 32 ГБ Дебиан GNU/Linux 10 США Хост виртуальной машины
риса

Рэкспейс

Да 12 ядер, 32 ГБ Дебиан GNU/Linux 10 США Хост виртуальной машины
таллон

Конова Коммуникейшнс ГмбХ

Да 32 ядра, 256 Гб Дебиан GNU/Linux 10 Зальцбург, Австрия Хост виртуальной машины
триона

Конова Коммуникейшнс ГмбХ

Да 16 ядер, 128 ГБ Дебиан GNU/Linux 10 Зальцбург, Австрия Хост виртуальной машины

PostgreSQL: Документация: 15: 19.

3. Запуск сервера базы данных

19.3.1. Ошибки запуска сервера
19.3.2. Проблемы с подключением клиента

Прежде чем кто-либо сможет получить доступ к базе данных, вы должны запустить сервер базы данных. Программа сервера базы данных называется postgres .

Если вы используете предварительно упакованную версию PostgreSQL, она почти наверняка включает в себя условия для запуска сервера в качестве фоновой задачи в соответствии с соглашениями вашей операционной системы. Использование инфраструктуры пакета для запуска сервера потребует гораздо меньше усилий, чем поиск того, как это сделать самостоятельно. Обратитесь к документации уровня пакета для получения подробной информации.

Простейший способ запустить сервер вручную — просто вызвать postgres напрямую, указав расположение каталога данных с опцией -D , например:

$   postgres -D /usr/local/pgsql/data  
 

, после чего сервер будет работать на переднем плане. Это необходимо сделать, войдя в учетную запись пользователя PostgreSQL. Без -D сервер попытается использовать каталог данных, указанный в переменной среды 9.0257 ПГДАННЫЕ . Если эта переменная также не указана, произойдет сбой.

Обычно лучше запустить postgres в фоновом режиме. Для этого используйте обычный синтаксис оболочки Unix:

.
$   postgres -D /usr/local/pgsql/data >logfile 2>&1 &  
 

Важно где-то хранить выходные данные сервера stdout и stderr, как показано выше. Это поможет в целях аудита и диагностики проблем. (См. Раздел 25.3 для более подробного обсуждения обработки файла журнала.)

Программа postgres также использует ряд других параметров командной строки. Дополнительные сведения см. на справочной странице postgres и в главе 20 ниже.

Этот синтаксис оболочки может быстро надоесть. Поэтому программа-оболочка pg_ctl предназначена для упрощения некоторых задач. Например:

pg_ctl start -l файл журнала
 

запустит сервер в фоновом режиме и поместит вывод в указанный файл журнала. Опция -D здесь имеет то же значение, что и для постгрес . pg_ctl также способен остановить сервер.

Обычно сервер базы данных нужно запускать при загрузке компьютера. Сценарии автозапуска зависят от операционной системы. Есть несколько примеров сценариев, распространяемых вместе с PostgreSQL в каталоге contrib/start-scripts . Для его установки потребуются права root.

Различные системы имеют разные правила запуска демонов во время загрузки. Многие системы имеют файл /etc/rc.local или /etc/rc.d/rc.local . Другие используют каталоги init.d или rc.d . Что бы вы ни делали, сервер должен запускаться под учетной записью пользователя PostgreSQL , а не под учетной записью root или любым другим пользователем. Поэтому вам, вероятно, следует формировать свои команды, используя su postgres -c '. ..' . Например:

su postgres -c 'pg_ctl start -D /usr/local/pgsql/data -l serverlog'
 

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

  • Для FreeBSD просмотрите файл contrib/start-scripts/freebsd в исходном дистрибутиве PostgreSQL.

  • В OpenBSD добавьте следующие строки в файл /etc/rc.local :

    если [ -x /usr/local/pgsql/bin/pg_ctl -a -x /usr/local/pgsql/bin/postgres ]; затем
        su -l postgres -c '/usr/local/pgsql/bin/pg_ctl start -s -l /var/postgresql/log -D /usr/local/pgsql/data'
        эхо -n 'postgresql'
    фи
     
  • В системах Linux либо добавьте

    /usr/local/pgsql/bin/pg_ctl start -l файл журнала -D /usr/local/pgsql/data
     

    на /etc/rc. d/rc.local или /etc/rc.local или посмотрите файл contrib/start-scripts/linux в исходном дистрибутиве PostgreSQL.

    При использовании systemd вы можете использовать следующий файл сервисного модуля (например, по адресу /etc/systemd/system/postgresql.service ):

    [Единица]
    Описание=сервер базы данных PostgreSQL
    Документация=человек:postgres(1)
    After=network-online.target
    Хочет=network-online.target
    [Услуга]
    Тип=уведомить
    Пользователь = postgres
    ExecStart=/usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data
    ExecReload=/bin/kill -HUP $MAINPID
    KillMode=смешанный
    KillSignal=SIGINT
    TimeoutSec=бесконечность
    [Установить]
    WantedBy=многопользовательская.цель
     

    Использование Type=notify требует, чтобы двоичный файл сервера был собран с configure --with-systemd .

    Внимательно рассмотрите настройку времени ожидания. На момент написания этой статьи systemd имеет тайм-аут по умолчанию 90 секунд и уничтожит процесс, который не сообщит о готовности в течение этого времени. Но серверу PostgreSQL, которому, возможно, придется выполнять аварийное восстановление при запуске, подготовка к работе может занять гораздо больше времени. Предлагаемое значение бесконечность отключает логику тайм-аута.

  • В NetBSD используйте сценарии запуска FreeBSD или Linux, в зависимости от предпочтений.

  • В Solaris создайте файл с именем /etc/init.d/postgresql , содержащий следующую строку:

    su - postgres -c "/usr/local/pgsql/bin/pg_ctl start -l logfile -D /usr/local/pgsql/data"
     

    Затем создайте символическую ссылку на него в /etc/rc3.d как S99postgresql .

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

19.3.1. Сбои при запуске сервера

Существует несколько распространенных причин, по которым сервер может не запуститься. Проверьте файл журнала сервера или запустите его вручную (без перенаправления стандартного вывода или стандартной ошибки) и посмотрите, какие сообщения об ошибках появляются. Ниже мы более подробно объясним некоторые из наиболее распространенных сообщений об ошибках.

ЖУРНАЛ: не удалось привязать адрес IPv4 "127.0.0.1": адрес уже используется
ПОДСКАЗКА: на порту 5432 уже работает другой почтмейстер? Если нет, подождите несколько секунд и повторите попытку.
FATAL: не удалось создать сокеты TCP/IP
 

Обычно это означает именно то, что предполагает: вы попытались запустить другой сервер на том же порту, на котором уже запущен один. Однако, если сообщение об ошибке ядра не . Адрес уже используется или какой-то его вариант, может возникнуть другая проблема. Например, при попытке запустить сервер на зарезервированном номере порта может появиться что-то вроде:

$   postgres -p 666  
ЖУРНАЛ: не удалось привязать IPv4-адрес "127. 0.0.1": разрешение отклонено
ПОДСКАЗКА: на порту 666 уже работает другой почтмейстер? Если нет, подождите несколько секунд и повторите попытку.
FATAL: не удалось создать сокеты TCP/IP
 

Сообщение типа:

FATAL: не удалось создать сегмент общей памяти: неверный аргумент
ПОДРОБНО: Неудачный системный вызов shmget (ключ = 5440001, размер = 4011376640, 03600).
 

, вероятно, означает, что ограничение вашего ядра на размер разделяемой памяти меньше, чем рабочая область, которую пытается создать PostgreSQL (4011376640 байт в этом примере). Это может произойти только в том случае, если вы установили shared_memory_type до sysv . В этом случае вы можете попробовать запустить сервер с меньшим, чем обычно, количеством буферов (shared_buffers) или перенастроить ядро, чтобы увеличить разрешенный размер разделяемой памяти. Вы также можете увидеть это сообщение при попытке запустить несколько серверов на одном компьютере, если их общее запрашиваемое пространство превышает ограничение ядра.

Ошибка вида:

FATAL: не удалось создать семафоры: на устройстве не осталось места
ПОДРОБНО: Неудачный системный вызов был semget(5440126, 17, 03600).
 

означает, что , а не закончилось место на диске. Это означает, что ограничение вашего ядра на количество семафоров System V меньше, чем количество, которое хочет создать PostgreSQL. Как и выше, вы можете обойти проблему, запустив сервер с уменьшенным числом разрешенных подключений (max_connections), но в конечном итоге вы захотите увеличить ограничение ядра.

Подробная информация о настройке средств System V IPC приведена в разделе 19.4.1.

19.3.2. Проблемы с подключением клиента

Хотя возможные ошибки на стороне клиента весьма разнообразны и зависят от приложения, некоторые из них могут быть напрямую связаны с тем, как был запущен сервер. Условия, отличные от показанных ниже, должны быть задокументированы в соответствующем клиентском приложении.

psql: ошибка: соединение с сервером на "server. joe.com" (123.123.123.123), порт 5432 не удалось: соединение отклонено
        Сервер работает на этом хосте и принимает соединения TCP/IP?
 

Это общий сбой «Я не смог найти сервер для связи». Это выглядит так, как показано выше, при попытке связи по протоколу TCP/IP. Распространенной ошибкой является забывание настроить сервер для разрешения соединений TCP/IP.

В качестве альтернативы вы можете получить это при попытке подключения сокета домена Unix к локальному серверу:

psql: ошибка: не удалось подключиться к серверу через сокет "/tmp/.s.PGSQL.5432": нет такого файла или каталога
        Сервер работает локально и принимает соединения через этот сокет?
 

Если сервер действительно работает, убедитесь, что представление клиента о пути сокета (здесь /tmp ) согласуется с настройкой сервера unix_socket_directories.

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