Как перезапустить PostgreSQL

У меня установлены Postgresql 9.3 и 9.4 на моем компьютере с Linux Mint. Как я могу перезапустить postgresql 9.4? Способ перезапустить обе версии вместе тоже подойдет.


person Tony Joseph    schedule 21.01.2016    source источник
comment
Я предлагаю перенести ваши данные на 9.4, а затем удалить установку 9.3.   -  person Jan Henke    schedule 21.01.2016
comment
@kometen В упомянутой статье нет способа выборочного запуска и остановки каждого отдельного экземпляра.   -  person EnzoR    schedule 21.01.2016
comment
@JanHenke Я бы не стал предлагать ничего, выходящего за рамки вопроса. В любом случае, v9.5 является текущей стабильной версией.   -  person EnzoR    schedule 21.01.2016
comment
@Enzo Он сказал, что обе версии работают параллельно. Поэтому я просто предложил перейти на более новый из двух, который также решит проблему, так как останется только один postgresql.   -  person Jan Henke    schedule 21.01.2016
comment
У меня также есть 2 версии (раньше было 3), чтобы иметь возможность поддерживать 2 разные настройки.   -  person EnzoR    schedule 21.01.2016
comment
У меня сработал systemctl restart postgresql: он перезапустил обе мои установленные работающие версии.   -  person John1024    schedule 02.02.2020


Ответы (7)


Попробуйте это как root (возможно, вы можете использовать sudo или su):

/etc/init.d/postgresql restart

Без каких-либо аргументов скрипт также дает вам подсказку о том, как перезапустить определенную версию.

[Uqbar@Feynman ~] /etc/init.d/postgresql
Usage: /etc/init.d/postgresql {start|stop|restart|reload|force-reload|status} [version ...]

Точно так же, если он у вас есть, вы также можете использовать инструмент service:

[Uqbar@Feynman ~] service postgresql
Usage: /etc/init.d/postgresql {start|stop|restart|reload|force reload|status} [version ...]

Обратите внимание на необязательный завершающий аргумент [version ...]. Это предназначено для того, чтобы вы, пользователь, могли работать с определенной версией, если вы запускали несколько версий. Таким образом, вы можете перезапустить версию X, оставив версии Y и Z нетронутыми и работающими.

Наконец, если вы используете systemd, вы можете использовать systemctl следующим образом:

[Uqbar@Feynman ~] systemctl status postgresql
● postgresql.service - PostgreSQL database server
   Loaded: loaded (/usr/lib/systemd/system/postgresql.service; enabled; vendor preset: disabled)
   Active: active (running) since Wed 2017-11-14 12:33:35 CET; 7min ago
...

Вы можете заменить status на stop, start или restart, а также выполнить другие действия. Полную информацию см. в документации. Для работы с несколькими одновременными версиями синтаксис немного отличается. Например, чтобы остановить v12 и перезагрузить v13, вы можете запустить:

systemctl stop postgresql-12.service
systemctl reload postgresql-13.service

Спасибо @Jojo за то, что указал мне на это самое. Наконец, имейте в виду, что разрешения root могут потребоваться для неинформативных задач, как и в других случаях, рассмотренных ранее.

person EnzoR    schedule 21.01.2016
comment
не могли бы вы привести пример? номер версии, похоже, не имеет никакого значения. - person Alex; 18.02.2018
comment
Вы пробовали, например, /etc/init.d/postgresql status 10? - person EnzoR; 19.02.2018
comment
systemctl работает с разными версиями Postgresql. Вы можете указать это с помощью systemctl status [email protected]. Замените 13 на номер версии, к которой вы хотите обратиться. - person Jojo; 30.10.2020

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

sudo service postgresql restart
person Aditi Gupta    schedule 13.09.2018
comment
Для меня, если он уже запущен, это ничего не делает. (выполнение перезагрузки вместо запуска там действительно работает) - person omgponies; 11.08.2020

В Windows:

1-Открыть окно запуска с помощью Winkey + R

2-тип services.msc

3-Поиск службы Postgres на основе установленной версии.

4-Нажмите «Остановить», «Запустить» или «Перезапустить» опцию службы.

В Linux:

sudo systemctl restart postgresql

также вместо перезагрузки вы можете заменить: статус, стоп или статус.

person Sobhan    schedule 17.12.2019

Это должно работать:

sudo systemctl stop postgresql

sudo systemctl start postgresql

person Yankee    schedule 14.05.2020

macOS:

  1. В левом верхнем углу строки меню MacOS у вас есть значок Postgres.
  2. Нажмите на нее, откроется выпадающее меню
  3. Нажмите «Стоп» ->, затем нажмите «Пуск».
person sogu    schedule 03.04.2020
comment
В macOS у вас есть верхняя строка меню, в которой обычно хранятся эти часы, значок поиска и ... и несколько запущенных мини-приложений, которые вы можете открыть. И там вы также можете увидеть значок слона для postgres. - person sogu; 19.10.2020
comment
Я использую macOS Mojave 10.14.6, и в верхнем меню нет такого значка. Но мой менеджер баз данных показывает, что сервер Postgres активен. - person Agent47; 19.10.2020

Сначала вы можете проверить, запущен ли процесс postgress.

ps -ef | grep post

Возможно, вам придется использовать (post|pg) на стороне grep, чтобы обнаружить процесс для службы Postgres, работающей на вашем компьютере, это может зависеть от вашей ОС.

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

sudo kill $pid_of_the_child_process
person Aecio Levy    schedule 29.04.2021

Правильный способ перезапустить сервер postgres — использовать

pg_ctl перезапустить -D /home/postgres/postgresdbdata/

pg_ctl обычно находится в расположении usr/local/pgsql/bin/pg_ctl, если вы не добавили его в твой путь.

Документацию можно найти здесь https://www.postgresql.org/docs/13/app-pg-ctl.html Здесь содержится более подробная информация о запуске, остановке, перезапуске и т. д. сервера postgres.

person D1 and 1ly    schedule 29.05.2021