Server postgresql start: How to Start, Stop, or Restart the PostgreSQL Server?

PostgreSQL: Документация: 8.1: Запуск сервера базы данных

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

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

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

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

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

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

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

Начальник почты также берет на себя ряд
другие параметры командной строки. Для получения дополнительной информации см.
справочная страница postmaster и глава 17 ниже.

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

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

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

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

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

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

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

  • Для FreeBSD см.
    файл contrib/start-scripts/freebsd
    в исходниках Postgres Pro
    распределение.

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

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

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

    в /etc/rc.d/rc.local или посмотрите
    файл contrib/start-scripts/linux в папке
    Исходный код 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.

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

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

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

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

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

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

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

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

Ошибка вида

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

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

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

Сведения о настройке системы
V Объекты ИПК
приведено в разделе
16.4.1.

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

psql: не удалось подключиться к серверу: в соединении отказано
        Сервер работает на хосте "server.joe.com" и принимает
        Соединения TCP/IP на порту 5432?
 

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

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

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

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

Как запустить, остановить или перезапустить сервер PostgreSQL?

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

Для решения таких ситуаций Postgres предлагает различные методы, такие как утилита «pg_ctl», диспетчер «служб» и т. д. В этом посте представлено практическое руководство по запуску, остановке или перезапуску сервера PostgreSQL в операционной системе Windows. .

Как запустить сервер Postgres?

Существуют различные способы запуска сервера Postgres в Windows, например, с помощью команды « net start », утилиты « pg_ctl » или диспетчера « services ».

Способ 1: Запуск сервера Postgres с помощью «net start»

Запустите Windows CMD от имени администратора и выполните команду «net start», чтобы запустить сервер Postgres:

 net start postgresql-x64-15 

Способ 2: Запуск сервера Postgres с помощью «pg_ctl»

Во-первых, вам нужно найти путь к каталогу, в котором находится Postgres. Если вы не меняли путь по умолчанию при установке Postgres, то он должен находиться в папке « Program Files » на диске « C ».

Полный путь будет выглядеть примерно так: « C:\Program Files\PostgreSQL\15\data »:

Как только вы найдете полный путь, откройте CMD и выполните следующую команду, чтобы « запустить Postgres Сервер ”:

 pg_ctl -D "C:\Program Files\PostgreSQL\15\data" start 

Примечание: Путь Windows для инструментов Postgres должен быть установлен для получения безошибочного вывода. В противном случае вы столкнетесь с ошибкой «не распознана как внутренняя/внешняя команда».

Способ 3. Запуск сервера Postgres с помощью диспетчера служб

Нажмите клавишу «win» + «R», чтобы открыть окно «Выполнить». Введите «services.msc» и нажмите кнопку «ОК», чтобы открыть диспетчер служб:

В «Диспетчере служб» найдите «Postgresql-x64-15», выберите службу и нажмите «Пуск/воспроизведение». », чтобы запустить сервер Postgres через диспетчер «служб»:

. После того, как вы нажмете кнопку «Пуск», статус службы изменится на «Работает»:

Как остановить сервер Postgres в Windows?

Сервер Postgres можно остановить с помощью команды « net stop », утилиты « pg_ctl » или диспетчера « services ».

Метод 1: остановка сервера Postgres с помощью «net stop»

Выполните указанную ниже команду из командной строки, чтобы остановить сервер Postgres:

 net stop postgresql-x64-15 

Метод 2: остановка сервер PostgreSQL через «pg_ctl»

Пользователи могут использовать утилиту pg_ctl для остановки сервера Postgres:

 pg_ctl -D "C:\Program Files\PostgreSQL\15\data" stop 

Способ 3. Остановка сервера Postgres с помощью диспетчера служб

Откройте «Диспетчер служб», найдите «Postgresql-x64-15», выберите службу и нажмите кнопку «Стоп», чтобы остановить сервер Postgres через диспетчер «служб»:

Нажав «Стоп Кнопка остановит сервер Postgres.

Примечание: Аналогичным образом, чтобы приостановить сервер Postgres в Windows, вы можете выбрать кнопку « pause » в диспетчере служб или выполнить команду « net pause postgresql-x64-15 » из командной строки.

Как перезапустить сервер Postgres в Windows?

Вы можете перезапустить сервер Postgres в операционной системе Windows с помощью диспетчера « Services » и утилиты « pg_ctl ».

Метод 1: перезапуск сервера Postgres через «pg_ctl»

Запустите приведенную ниже команду из CMD, чтобы перезапустить сервер Postgres:

 pg_ctl -D "C:\Program Files\PostgreSQL\15\data" перезапустить 

Способ 2: перезапуск сервера Postgres с помощью служб Менеджер

Запустите «Диспетчер служб», найдите «Postgresql-x64-15», выберите нужную службу и нажмите кнопку «Перезапустить», чтобы перезапустить сервер Postgres через диспетчер «служб»:

Нажав на Кнопка Restart перезапустит сервер Postgres.