PostgreSQL : Документация: 9.6: pg_ctl : Компания Postgres Professional
RU
EN
RU EN
pg_ctl
pg_ctl — инициализировать, запустить, остановить или управлять сервером PostgreSQL
Синтаксис
pg_ctl init[db] [-s] [-D каталог_данных] [-o параметры-initdb]
pg_ctl start [-w] [-t секунды] [-s] [-D каталог_данных] [-l имя_файла] [-o параметры] [-p путь] [-c]
pg_ctl stop [-W] [-t секунды] [-s] [-D каталог_данных] [-m s[mart] | f[ast] | i[mmediate] ]
pg_ctl restart [-w] [-t секунды] [-s] [-D каталог_данных] [-c] [-m s[mart] | f[ast] | i[mmediate] ] [-o параметры]
pg_ctl reload [-s] [-D каталог_данных]
pg_ctl status [-D каталог_данных]
pg_ctl promote [-s] [-D каталог_данных]
pg_ctl kill имя_сигнала ид_процесса
pg_ctl register [-N имя_службы] [-U имя_пользователя] [-P пароль] [-D каталог_данных] [-S a[uto] | d[emand] ] [-w] [-t секунды] [-s] [-o параметры]
pg_ctl unregister [-N имя_службы]
Описание
pg_ctl — это утилита для начальной инициализации, запуска, остановки, повторного запуска и управления кластером баз данных PostgreSQL (postgres).
Сервер можно стартовать в ручном режиме, но pg_ctl реализует задачи направления вывода в журнал и отсоединения от терминала и группы процессов, а также предоставляет удобный интерфейс остановки кластера.
Для инициализации нового кластера PostgreSQL используются режимы init или initdb. Кластер — это коллекция баз данных под управлением единого сервера. По факту вызывается команда initdb. За подробностями обратитесь к initdb.
Сервер запускается в режиме start. Процесс работает в фоновом режиме, а стандартный ввод связывается с /dev/null (или nul под управлением Windows). По умолчанию в Unix-подобных системах вывод и ошибки сервера пишутся в устройство стандартного вывода (не ошибок) pg_ctl. Вывод pg_ctl следует перенаправить в файл или процесс, например, приложение ротации журналов rotatelogs; в ином случае postgres будет писать вывод в управляющий терминал (в фоновом режиме) и останется в группе процессов оболочки.
В Windows сообщения и ошибки сервера по умолчанию перенаправляются в терминал. Это поведение можно изменить и направить вывод сервера в файл, добавив ключ -l. Мы рекомендуем использовать ключ -l или перенаправлять вывод.
В режиме stop сервер, работающий в указанном каталоге данных, останавливается. Параметр -m позволяет выбрать три различных режима остановки. Режим «Smart» запрещает новые подключения, а затем ожидает отключения всех существующих клиентов и завершения всех текущих процессов резервного копирования. Если сервер работает в режиме горячего резерва, восстановление и потоковая репликация будут прерваны, как только отключатся все клиенты. Режим «Fast» (выбираемый по умолчанию) не ожидает отключения клиентов и завершает все текущие процессы резервного копирования. Все активные транзакции откатываются, а клиенты принудительно отключаются, после чего сервер останавливается. Режим «Immediate» незамедлительно прерывает все серверные процессы, не выполняя процедуру штатной остановки.
В результате при следующем запуске будет запущено восстановление после сбоя.
В режиме restart по сути выполняется остановка и последующий запуск сервера. Это позволяет изменить параметры командной строки postgres. Режим restart может не отработать, если при запуске сервера в командной строке задавались относительные пути.
Чтобы перечитать конфигурацию (postgresql.conf, pg_hba.conf и т. д.), используется reload, при этом процесс postgres получает системный сигнал SIGHUP. Это позволяет применить изменения без полного рестарта сервера.
Чтобы проверить статус кластера, используется status. Если кластер запущен, то будет выведен PID процесса, а также команда с использованными при запуске аргументами. Если кластер остановлен, то процесс вернёт статус завершения 3. Если не указан каталог хранения данных, то процесс вернёт статус завершения 4.
Чтобы перевести резервный сервер в режим главного, используется promote.
При этом сервер прекращает работу в режиме восстановления и начинает работать в режиме чтения-записи.
Чтобы послать сигнал процессу, используется kill. Это особенно применимо в среде Microsoft Windows, которая не имеет в оснастке команды kill. Чтобы посмотреть список доступных сигналов, обратитесь к справке --help.
Режим register предназначен для регистрации системной службы в Microsoft Windows. Параметр -S позволяет выбрать тип запуска службы, «auto» (запускать службу автоматически при загрузке системы) или «demand» (запускать службу по требованию).
Чтобы удалить зарегистрированную службу в Microsoft Windows, используется unregister. Эта операция отменяет действие команды register.
Параметры
-c--core-fileСпособствует сбросу дампа памяти процесса при крахе сервера на платформах, где это возможно, поднимая мягкие ограничения, задаваемые для файлов дампа.
Это полезно при отладке и диагностике проблем, так как позволяет получить трассировку стека отказавшего процесса сервера.-Dкаталог_данных--pgdataкаталог_данныхУказывает размещение конфигурационных файлов кластера. Если не указано, используется значение переменной окружения
PGDATA.-lимя_файла--logимя_файлаНаправляет вывод сообщений сервера в файл
имя_файла. Файл создаётся, если он ещё не существует. При этом устанавливается umask 077, что предотвращает доступ других пользователей к этому файлу.-mрежим--modeрежимЗадаёт режим остановки кластера. Значением
режимможет бытьsmart,fastилиimmediate, либо первая буква этих вариантов.
По умолчанию выбирается режим fast.-oпараметрыУказывает флаги, которые будут переданы непосредственно программе
postgres; несколько параметров складываются вместе.Эти параметры обычно следует обрамлять одинарными или двойными кавычками, чтобы они передавались вместе как одна группа.
-oпараметры-initdbУказывает флаги, которые будут переданы в
initdb.Эти параметры обычно следует обрамлять одинарными или двойными кавычками, чтобы они передавались вместе как одна группа.
-pпутьУказывает размещение исполняемого файла
postgres. По умолчанию задействуется исполняемый файлpostgresиз того же каталога, из которого запускалсяpg_ctl, а если это невозможно, из жёстко заданного каталога инсталляции. Применять этот параметр может понадобиться, только если вы делаете что-то необычное или получаете сообщения, что найти исполняемый файлpostgresне удаётся.
В режиме
initэтот параметр аналогичным образом задаёт размещение исполняемого файлаinitdb.-s--silentВыводить лишь ошибки, без сообщений информационного характера.
-t--timeoutМаксимальное время (в секундах) ожидания запуска или остановки сервера. По умолчанию принимается значение переменной среды
PGCTLTIMEOUTили, если оно не задано, 60 секунд.-V--versionВыводит версию pg_ctl и прерывает выполнение.
-wЖдать завершения запуска или остановки. Это вариант по умолчанию при остановке, но не при запуске. Ожидая запуска,
pg_ctlпостоянно пытается подключиться к серверу. Ожидая остановки,pg_ctlждёт, пока сервер не удалит свой файл PID. Этот параметр позволяет ввести парольную фразу SSL при запуске.pg_ctlвозвращает код завершения, сообщающий об успехе запуска или остановки.
-WНе ждать завершения запуска или остановки. Это вариант по умолчанию для режимов запуска и перезапуска.
-?--helpВывести справку по команде pg_ctl и прервать выполнение.
Параметры, специфичные для Windows
-esourceИмя источника событий, с которым pg_ctl будет записывать в системный журнал события при запуске в виде службы Windows. Имя по умолчанию —
PostgreSQL. Заметьте, что это влияет только на сообщения, которые выдаёт сам pg_ctl; как только сервер запустится, он будет использовать источник событий, заданный в event_source. Если произойдёт ошибка при запуске сервера на ранней стадии, он также выдаст сообщение с источником по умолчаниюPostgreSQL.-Nимя_службыИмя регистрируемой системной службы. Оно станет и собственно именем службы, и отображаемым именем.

-PпарольПароль для пользователя, запускающего службу.
-Sтип-запускаТип запуска системной службы. Может принимать значения:
auto, илиdemand, либо быть представлен первой буквой названия каждого приведённого значения. По умолчанию используетсяauto.-Uимя_пользователяИмя пользователя, от имени которого будут запущена служба. Для доменных пользователей необходимо использовать нотацию
DOMAIN\username.
Переменные окружения
PGCTLTIMEOUTЗначение по умолчанию для максимального времени ожидания запуска или остановки сервера (в секундах). По умолчанию это время составляет 60 секунд.
PGDATAРазмещение каталога хранения данных по умолчанию.
pg_ctl, как и большинство других утилит PostgreSQL, также использует переменные окружения, поддерживаемые libpq (см.
Раздел 32.14). Другие переменные сервера описаны в postgres.
Файлы
postmaster.pidНаличие файла в каталоге хранения данных помогает pg_ctl определить, работает ли сервер в настоящий момент.
postmaster.optsЕсли файл существует в каталоге хранения данных, то pg_ctl (при
restart) передаст его содержимое в качестве аргументов postgres, если не указаны иные значения в-o. Содержимое файла также отображается при вызове в режимеstatus.
Примеры
Запуск сервера
Для запуска сервера:
$ pg_ctl start
Для запуска сервера с ожиданием готовности к приёму подключений:
$ pg_ctl -w start
Чтобы запустить сервер с использованием порта 5433 и без fsync, выполните:
$ pg_ctl -o "-F -p 5433" start
Остановка сервера
Для остановки сервера:
$ pg_ctl stop
Параметр -m указывает режим остановки:
$ pg_ctl stop -m fast
Повторный запуск сервера
Повторный запуск сервера производится аналогично остановке с дальнейшим его запуском, за исключением того, что pg_ctl использует аргументы, которые были переданы при предыдущем запуске кластера.
$ pg_ctl restart
Для повторного запуска сервера с ожиданием полной остановки и последующего запуска:
$ pg_ctl -w restart
Для повторного запуска на порту 5433 с выключенным fsync после старта:
$ pg_ctl -o "-F -p 5433" restart
Вывод состояния сервера
Ниже представлен примерный вывод pg_ctl:
$pg_ctl statuspg_ctl: server is running (PID: 13718) /usr/local/pgsql/bin/postgres "-D" "/usr/local/pgsql/data" "-p" "5433" "-B" "128"
Показанная командная строка будет использоваться в режиме перезапуска.
См. также
initdb, postgresPostgreSQL : Документация: 11: pg_ctl : Компания Postgres Professional
RU
EN
RU EN
pg_ctl
pg_ctl — инициализировать, запустить, остановить или управлять сервером PostgreSQL
Синтаксис
pg_ctl init[db] [-D каталог_данных] [-s] [-o параметры-initdb]
pg_ctl start [-D каталог_данных] [-l имя_файла] [-W] [-t секунды] [-s] [-o параметры] [-p путь] [-c]
pg_ctl stop [-D каталог_данных] [-m s[mart] | f[ast] | i[mmediate] ] [-W] [-t секунды] [-s]
pg_ctl restart [-D каталог_данных] [-m s[mart] | f[ast] | i[mmediate] ] [-W] [-t секунды] [-s] [-o параметры] [-c]
pg_ctl reload [-D каталог_данных] [-s]
pg_ctl status [-D каталог_данных]
pg_ctl promote [-D каталог_данных] [-W] [-t секунды] [-s]
pg_ctl kill имя_сигнала ид_процесса
В системах Microsoft Windows также:
pg_ctl register [-D каталог_данных] [-N имя_службы] [-U имя_пользователя] [-P пароль] [-S a[uto] | d[emand] ] [-e source] [-W] [-t секунды] [-s] [-o параметры]
pg_ctl unregister [-N имя_службы]
Описание
pg_ctl — это утилита для начальной инициализации, запуска, остановки, повторного запуска и управления кластером баз данных PostgreSQL (postgres).
Сервер можно стартовать в ручном режиме, но pg_ctl реализует задачи направления вывода в журнал и отсоединения от терминала и группы процессов, а также предоставляет удобный интерфейс остановки кластера.
Команда init (initdb) создаёт кластер баз данных PostgreSQL, то есть коллекцию баз данных, которой будет управлять один экземпляр сервера. Эта команда вызывает программу initdb. За подробностями обратитесь к initdb.
Команда start запускает сервер. Процесс запускается в фоне, а стандартный ввод связывается с /dev/null (или nul в Windows). По умолчанию в Unix-подобных системах вывод и ошибки сервера пишутся в устройство стандартного вывода (не ошибок) pg_ctl. Вывод pg_ctl следует перенаправить в файл или процесс, например, приложение ротации журналов rotatelogs; иначе postgres будет писать вывод в управляющий терминал (в фоновом режиме) и останется в группе процессов оболочки. В Windows сообщения и ошибки сервера по умолчанию перенаправляются в терминал.
Это поведение по умолчанию можно изменить и направить вывод сервера в файл, добавив ключ -l. Предпочтительными вариантами является использование -l или перенаправление вывода.
Команда stop останавливает сервер, работающий с указанным каталогом данных. Параметр -m позволяет выбрать один из трёх режимов остановки. Режим «Smart» запрещает новые подключения, а затем ожидает отключения всех существующих клиентов и завершения всех текущих процессов резервного копирования. Если сервер работает в режиме горячего резерва, восстановление и потоковая репликация будут прерваны, как только отключатся все клиенты. Режим «Fast» (выбираемый по умолчанию) не ожидает отключения клиентов и завершает все текущие процессы резервного копирования. Все активные транзакции откатываются, а клиенты принудительно отключаются, после чего сервер останавливается. Режим «Immediate» незамедлительно прерывает все серверные процессы, не выполняя процедуру штатной остановки.
Этот вариант влечёт необходимость выполнить восстановление после сбоя при следующем запуске сервера.
Команда restart по сути производит остановку и последующий запуск сервера. Это позволяет изменить параметры командной строки postgres либо применить изменения в файле конфигурации, не вступающие в силу без перезапуска сервера. Если в командной строке при запуске сервера указывались относительные пути, команда restart может не выполниться, если вызвать pg_ctl не в том каталоге, где производился предыдущий запуск.
Команда reload просто посылает процессу сервера postgres сигнал SIGHUP, получив который он перечитывает свои файлы конфигурации (postgresql.conf, pg_hba.conf и т. д.). Это позволяет применить изменения параметров в файле конфигурации, не требующие полного перезапуска сервера.
Команда status проверяет, работает ли сервер в указанном каталоге данных. Если да, она выдаёт PID сервера и параметры командной строки, с которыми он был запущен.
Если сервер не работает, pg_ctl возвращает код завершения 3. Если в параметрах не указан доступный каталог данных, pg_ctl возвращает код завершения 4.
Команда promote указывает серверу, работающему в режиме резерва с указанным каталогом данных, выйти из этого режима и начать операции чтения/записи.
Команда kill передаёт сигнал заданному процессу. Прежде все это полезно в Microsoft Windows, где отсутствует встроенная команда kill. Для получения списка имён поддерживаемых сигналов воспользуйтесь ключом --help.
Команда register регистрирует сервер PostgreSQL в качестве системной службы в Microsoft Windows. Параметр -S позволяет выбрать тип запуска службы: «auto» (запускать службу автоматически при загрузке системы) или «demand» (запускать службу по требованию).
Режим unregister разрегистрирует системную службу в Microsoft Windows. Эта операция отменяет действие команды register.
Параметры
-c--core-filesСпособствует сбросу дампа памяти процесса при крахе сервера на платформах, где это возможно, поднимая мягкие ограничения, задаваемые для файлов дампа. Это полезно при отладке и диагностике проблем, так как позволяет получить трассировку стека отказавшего процесса сервера.
-Dкаталог_данных--pgdata=каталог_данныхУказывает размещение конфигурационных файлов кластера. Если этот ключ опущен, используется значение переменной окружения
PGDATA.-lимя_файла--log=имя_файлаНаправляет вывод сообщений сервера в файл
имя_файла. Файл создаётся, если он ещё не существует. При этом устанавливается umask 077, что предотвращает доступ других пользователей к этому файлу.-mрежим--mode=режимЗадаёт режим остановки кластера.
Значением режимможет бытьsmart,fastилиimmediate, либо первая буква этих вариантов. Если этот ключ опущен, по умолчанию выбирается режимfast.-oпараметры--options=параметрыУказывает параметры, которые будут передаваться непосредственно программе
postgres. Ключ-oможно указывать несколько раз, при этом ей будут переданы параметры из всех ключей.Задаваемые
параметрыобычно следует обрамлять одинарными или двойными кавычками, чтобы они передавались одной группой.-oпараметры-initdb--options=параметры-initdbУказывает параметры, которые будут передаваться непосредственно программе
initdb. Ключ-oможно указывать несколько раз, при этом ей будут переданы параметры из всех ключей.
Задаваемые
параметры-initdbобычно следует обрамлять одинарными или двойными кавычками, чтобы они передавались вместе одной группой.-pпутьУказывает размещение исполняемого файла
postgres. По умолчанию задействуется исполняемый файлpostgresиз того же каталога, из которого запускалсяpg_ctl, а если это невозможно, из жёстко заданного каталога инсталляции. Применять этот параметр может понадобиться, только если вы делаете что-то необычное или получаете сообщения, что найти исполняемый файлpostgresне удаётся.В режиме
initэтот параметр аналогичным образом задаёт размещение исполняемого файлаinitdb.-s--silentВыводить лишь ошибки, без сообщений информационного характера.
-tсекунды--timeout=секундыЗадаёт максимальное время (в секундах) ожидания завершения операции (см.
параметр -w). По умолчанию действует значение переменной средыPGCTLTIMEOUTили, если оно не задано, 60 секунд.-V--versionВыводит версию pg_ctl и прерывает выполнение.
-w--waitЖдать завершения операции. Этот режим поддерживается (и действует по умолчанию) для команд
start,stop,restart,promoteиregister.В процессе ожидания
pg_ctlпостоянно проверяет PID-файл сервера, приостанавливаясь на короткое время между проверками. Запуск считается завершённым, когда PID-файл указывает на то, что сервер готов принимать подключения. Остановка считается завершённой, когда сервер удаляет свой PID-файл. Программаpg_ctlвозвращает код завершения в зависимости от успеха запуска или остановки.Если операция не заканчивается за отведённое время (см. параметр
-t), программаpg_ctlзавершается с ненулевым кодом выхода.
Но заметьте, что при этом выполнение операции может продолжиться и в конце концов увенчаться успехом.-W--no-waitНе ждать завершения операции. Этот режим противоположен режиму
-w.Если ожидание отключено, запрошенное действие вызывается, но о его результате ничего не известно. В этом случае для проверки текущего состояния и результата операции потребуется обратиться к файлу журнала сервера или воспользоваться внешней системой мониторинга.
В предыдущих выпусках PostgreSQL этот режим действовал по умолчанию (кроме команды
stop).-?--helpВывести справку по команде pg_ctl и прервать выполнение.
Если некоторый параметр является допустимым, но не применим к выбранному режиму работы, pg_ctl игнорирует его.
Параметры, специфичные для Windows
-esourceИмя источника событий, с которым pg_ctl будет записывать в системный журнал события при запуске в виде службы Windows.
Имя по умолчанию — PostgreSQL. Заметьте, что это влияет только на сообщения, которые выдаёт сам pg_ctl; как только сервер запустится, он будет использовать источник событий, заданный в event_source. Если произойдёт ошибка при запуске сервера на ранней стадии, прежде чем будет считан этот параметр, он может также выдавать сообщения с источником по умолчаниюPostgreSQL.-Nимя_службыИмя регистрируемой системной службы. Оно станет и собственно именем службы, и отображаемым именем. По умолчанию —
PostgreSQL.-PпарольПароль для пользователя, запускающего службу.
-Sтип-запускаТип запуска системной службы. В качестве значения
тип-запускаможно задатьauto,demandили первую букву этих слов. По умолчанию выбирается типauto.
-Uимя_пользователяИмя пользователя, от имени которого будут запущена служба. Для доменных пользователей используйте формат
DOMAIN\username.
Переменные окружения
PGCTLTIMEOUTЗначение по умолчанию для максимального времени ожидания запуска или остановки сервера (в секундах). По умолчанию это время составляет 60 секунд.
PGDATAРазмещение каталога хранения данных по умолчанию.
Для большинства режимов pg_ctl требуется знать расположение каталога данных; поэтому если не задана переменная PGDATA, параметр -D является обязательным.
pg_ctl, как и большинство других утилит PostgreSQL, также использует переменные окружения, поддерживаемые libpq (см. Раздел 34.14).
Список дополнительных переменных, влияющих на работу сервера, можно найти в postgres.
Файлы
postmaster.
pidПроверяя этот файл в каталоге данных, pg_ctl определяет, работает ли сервер в настоящий момент.
postmaster.optsЕсли файл существует в каталоге хранения данных, то pg_ctl (при
restart) передаст его содержимое в качестве аргументов postgres, если не указаны иные значения в-o. Содержимое файла также отображается при вызове в режимеstatus.
Примеры
Запуск сервера
Запуск сервера и ожидание момента, когда он начнёт принимать подключения:
$ pg_ctl start
Чтобы запустить сервер с использованием порта 5433 и без fsync, выполните:
$ pg_ctl -o "-F -p 5433" start
Остановка сервера
Чтобы остановить сервер, выполните:
$ pg_ctl stop
Ключ -m позволяет управлять тем, как сервер будет остановлен:
$ pg_ctl stop -m smart
Повторный запуск сервера
Перезапуск сервера почти равнозначен остановке и запуску сервера за исключением того, что по умолчанию pg_ctl сохраняет параметры командной строки, которые были переданы ранее запущенному экземпляру.
Таким образом, чтобы перезапустить сервер с теми же параметрами, с какими он был запущен, выполните:
$ pg_ctl restart
Но если добавляется ключ -o, он заменяет все предыдущие параметры. Эта команда осуществит перезапуск с использованием порта 5433 и без fsync:
$ pg_ctl -o "-F -p 5433" restart
Вывод состояния сервера
Ниже представлен примерный вывод pg_ctl:
$pg_ctl statuspg_ctl: server is running (PID: 13718) /usr/local/pgsql/bin/postgres "-D" "/usr/local/pgsql/data" "-p" "5433" "-B" "128"
Во второй строке показывается команда, которая будет выполнена в режиме перезапуска.
См. также
initdb, postgrespostgres, ubuntu как перезапустить службу при запуске? застрять в кластере после перезагрузки экземпляра
У меня есть Postgres db 9.1 , работающий на AWS EC2 , с ubuntu 12..
04
Я много возился с экземпляром (например, устанавливал все виды postgres X.X, прежде чем остановился на 9.1).
Теперь, после месяца работы над этой базой данных, я обнаружил, что если я перезапущу свой экземпляр postgres , он не загрузится правильно, в его статусе будет указано «Выполнение кластеров». это будет длиться вечно, пока я
перезапуск службы sudo postgresql
с терминала, а потом снова работает.
Как мне добавить эту строку в запуск Ubuntu, чтобы каждый раз при загрузке он перезапускал эту службу и, надеюсь, решал мою проблему?
Также любое другое решение, которое могло бы решить эту проблему.
- Ubuntu
- Ubuntu-12.04
- postgresql-9.1
3
В Ubuntu 18.04:
sudo systemctl перезапустить postgresql.service
2
Приведенная ниже команда сработала для меня
sudo service postgresql restart
Я думаю, было бы лучше исправить сам сценарий запуска базы данных.
Но в качестве обходного пути вы можете добавить эту строку в /etc/rc.local , которая выполняется последней на этапе инициализации.
3
ИСПОЛЬЗОВАНИЕ: введите эту команду один раз, и все готово. Ваша служба запустится автоматически при загрузке
sudo systemctl enable postgresql
DISABLE также существует
Некоторые DOC: freedesktop man systemctl
2
$ перезапуск службы sudo postgresql
для запуска Ubuntu, чтобы каждый раз при загрузке он перезапускал эту службу Postgres при запуске, чтобы вам не приходилось перезапускать ее все время
sudo update-rc.d postgresql включить
Зарегистрируйтесь или войдите в систему
Зарегистрируйтесь с помощью GoogleЗарегистрироваться через Facebook
Зарегистрируйтесь, используя электронную почту и пароль
Опубликовать как гость
Электронная почта
Требуется, но никогда не отображается
Опубликовать как гость
Электронная почта
Требуется, но не отображается
macos — Как перезапустить postgresql на OS X?
спросил
Изменено 2 месяца назад
Просмотрено 70 тысяч раз
Не могу найти, как перезапустить postgresql в OS X с помощью командной строки, чтобы применить изменения в pg_hba.
conf. Я пробовал различные команды из Интернета и документов. Как это сделать правильно?
РЕДАКТИРОВАТЬ:Ответ попытки найти путь выглядит так:
TheKotik 73454 0.0 0.0 2619360 804 ?? S 19:20 0:01.57 /Applications/Postgres.app/Contents/Versions/9.6/bin/postgres -D /Users/TheKotik/Library/Application Support/Postgres/var-9.6 -р 5432
- macos
- postgresql
На тот случай, если postgres был установлен с помощью homebrew, вы также можете запустить следующую команду:
brew services перезапустить postgres
3
pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log перезапуск
/usr/local/var/postgres — расположение области хранения базы данных, а /usr/local/var/postgres/server.log — мой файл журнала для postgres. Последнее слово перезагрузка является здесь рабочим словом. Вы также можете использовать start для запуска службы.
Расположение области хранения базы данных можно узнать, запустив ps aux | grep постгрес | grep ---D
6
для hba.conf изменения для применения перезапускать не нужно — просто перезагрузите.
запустить выбрать pg_reload_conf() в psql
также:
запустить показать каталог данных в psql, чтобы найти каталог данных…
5
Для PostgreSQL 13.4, работающего на macOS Catalina 10.15.7, у меня было другое место для моего файла данных и, следовательно, другая команда.
sudo -u postgres /Library/PostgreSQL/13/bin/pg_ctl -D /Library/PostgreSQL/13/перезапуск данных
Не знаю, почему мой каталог данных отличается от других, но это сработало. Мне также пришлось найти файл postgresql.conf в этой папке, используя
sudo ls -l /Library/PostgreSQL/13/данные/
Если вы хотите убедиться, что вы перезапускаете правильную версию Postgres (например, версию 15) И ваш Postgres не установлен как служба, вы можете использовать команду pg_ctl и указать свой каталог данных.
Где находится ваш каталог данных? Сделайте следующее:
% psql
viglione=# ВЫБЕРИТЕ имя, настройку, контекст ИЗ pg_settings WHERE category = 'File Locations';
имя | настройка | контекст
------------------+--------------------------------------------- -------------------+-------------
конфигурационный_файл | /opt/homebrew/var/postgresql@15/postgresql.conf | почтмейстер
каталог_данных | /opt/homebrew/var/postgresql@15 | почтмейстер
external_pid_file | | почтмейстер
hba_файл | /opt/homebrew/var/postgresql@15/pg_hba.conf | почтмейстер
идентификационный_файл | /opt/homebrew/var/postgresql@15/pg_ident.conf | почтмейстер
(5 рядов)
Мне нравится проецировать столбец контекста, чтобы подтвердить настройки, требующие перезагрузки. Если значение равно postmaster, вы должны использовать pg_ctl reboot , а не pg_ctl reload . Обратите внимание на data_directory во второй строке. Затем мы можем указать это в качестве опции для перезапуска pg_ctl.
Это полезно при отладке и диагностике проблем, так как позволяет получить трассировку стека отказавшего процесса сервера.
По умолчанию выбирается режим 


Значением 
параметр
Но заметьте, что при этом выполнение операции может продолжиться и в конце концов увенчаться успехом.
Имя по умолчанию — 
pid