Как перезапустить postgresql в Linux

Обновлено: 21.11.2024

PostgreSQL – это многоплатформенная объектно-реляционная система управления базами данных с открытым исходным кодом, одна из самых популярных альтернатив MYSQL. Он доступен в системах на базе Windows, MacOS, Linux и Unix. Сегодня мы покажем вам, как перезапустить postgresql в Linux, вы также узнаете, как остановить, запустить и получить полный статус pgsql из терминала Linux.

Команды управления службой PostgreSQL

Это руководство применимо к обычным CentOS 6.x и CentOS 7.x, а также к системам RHEL 6.x и RHEL 7.x, хотя, если вы установили его с нуля, оно может работать во многих дистрибутивах Linux.

Служба статуса PostgreSQL

Если вам нужно проверить статус сервера postgresql, вы можете запустить следующие команды:

Установка CentOS 6.x на основе RPM

Установка CentOS 7.x на базе rpm

В CentOS 7 все изменилось, и хотя вы все еще можете использовать старую команду «service», идея состоит в том, чтобы переключиться на systemd, это команда для получения полного состояния postgresql из CentOS 7.x

Компиляция и установка из исходного кода

Служба остановки PostgreSQL

Установка из исходного кода

Синтаксис установки CentOS 6.x на основе RPM

Синтаксис установки CentOS 7.x на основе RPM

Служба запуска PostgreSQL

Если вы скомпилировали pgsql из исходного кода, попробуйте следующее:

Синтаксис установки CentOS 6.x на основе rpm

Синтаксис установки CentOS 7.x на основе rpm

Команда перезапуска PostgreSQL

Если версия pgsql, которую вы используете, была скомпилирована из исходного кода (с нуля), вам придется остановить и запустить службу вручную, например:

Перезапуск CentOS 6.x Pgsql для установки RPM

Перезапуск CentOS 7.x PostgreSQL для установки .rpm

Файл конфигурации PostgreSQL

Если вам когда-нибудь понадобится что-то изменить в конфигурации, вы можете отредактировать этот файл. Расположение зависит от того, как вы установили pgsql в свою систему, обычно оно находится по адресу:

Ожидали большего? Нет, это все на сегодня, теперь вы знаете команду перезапуска PostgreSQL, а также то, как остановить, запустить и получить полный статус pgsql вашего сервера базы данных.

Об авторе: Эстебан Борхес

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

1 комментарий

Просто примечание; На cPanel есть скрипт (как и для любого сервиса): /scripts/restartsrv_postgres

pg_ctl — это утилита для инициализации кластера базы данных PostgreSQL, запуска, остановки или перезапуска сервера базы данных 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 можно выбрать три различных метода завершения работы. «Умный» режим (по умолчанию) ожидает отключения всех активных клиентов и завершения любого онлайн-резервного копирования. Если сервер находится в режиме горячего резерва, восстановление и потоковая репликация будут прекращены после отключения всех клиентов. «Быстрый» режим не ждет, пока клиенты отключатся, и завершает текущее резервное копирование в онлайн-режиме. Все активные транзакции откатываются, клиенты принудительно отключаются, после чего сервер выключается. «Немедленный» режим немедленно прервет все серверные процессы, без полного завершения работы. Это приведет к аварийному восстановлению при следующем перезапуске.

Режим

restart фактически выполняет остановку с последующим запуском.Это позволяет изменять параметры командной строки postgres. restart может завершиться ошибкой, если указанные относительные пути были указаны в командной строке во время запуска сервера.

Режим

reload просто отправляет процессу postgres сигнал SIGHUP, заставляя его перечитать свои файлы конфигурации (postgresql.conf, pg_hba.conf и т. д.). Это позволяет изменять параметры конфигурационного файла, для вступления в силу которых не требуется полный перезапуск.

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

Режим

kill позволяет отправить сигнал указанному процессу. Это особенно ценно для Microsoft Windows, в которой нет команды kill. Используйте --help, чтобы увидеть список поддерживаемых имен сигналов.

Режим

register позволяет зарегистрировать системную службу в Microsoft Windows. Параметр -S позволяет выбрать тип запуска службы: "автоматически" (автоматический запуск службы при запуске системы) или "по требованию" (запуск службы по запросу).

Режим

unregister позволяет отменить регистрацию системной службы в Microsoft Windows. Это отменяет действие команды register.

Параметры

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

Указывает расположение в файловой системе файлов конфигурации базы данных. Если это опущено, используется переменная среды PGDATA.

Добавить вывод журнала сервера в имя_файла. Если файл не существует, он создается. Для umask установлено значение 077, поэтому доступ к файлу журнала другим пользователям по умолчанию запрещен.

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

Определяет параметры, которые будут переданы непосредственно команде postgres.

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

Определяет параметры, которые будут переданы непосредственно команде initdb.

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

Указывает расположение исполняемого файла postgres. По умолчанию исполняемый файл postgres берется из того же каталога, что и pg_ctl, или, в противном случае, из каталога жесткой установки. Нет необходимости использовать эту опцию, если только вы не делаете что-то необычное и не получаете сообщение об ошибке, что исполняемый файл postgres не найден.

В режиме init этот параметр аналогичным образом указывает расположение исполняемого файла initdb.

Печать только ошибок, без информационных сообщений.

Максимальное количество секунд ожидания при ожидании завершения запуска или завершения работы. По умолчанию используется значение переменной среды PGCTLTIMEOUT или, если не задано, значение 60 секунд.

Распечатайте версию pg_ctl и выйдите.

Дождитесь завершения запуска или завершения работы. Ожидание — это параметр по умолчанию для завершения работы, но не для запуска. В ожидании запуска pg_ctl несколько раз пытается подключиться к серверу. В ожидании завершения работы pg_ctl ожидает, пока сервер удалит свой файл PID. Этот параметр позволяет вводить парольную фразу SSL при запуске. pg_ctl возвращает код выхода в зависимости от успешного запуска или завершения работы.

Не ждите завершения запуска или завершения работы. Это значение по умолчанию для режимов запуска и перезапуска.

Показать справку об аргументах командной строки pg_ctl и выйти.

Параметры для Windows

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

Пароль пользователя для запуска службы.

Тип запуска системной службы для регистрации. start-type может быть auto, demand или первой буквой одного из этих двух. Если это опущено, используется auto.

Имя пользователя для запуска службы. Для пользователей домена используйте формат ДОМЕН\имя_пользователя.

Окружающая среда

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

Расположение каталога данных по умолчанию.

pg_ctl, как и большинство других утилит PostgreSQL, также использует переменные среды, поддерживаемые libpq (см. Раздел 31.14). Дополнительные серверные переменные см. в postgres .

Файлы

Существование этого файла в каталоге данных помогает pg_ctl определить, работает ли сервер в данный момент.

Если этот файл существует в каталоге данных, pg_ctl (в режиме перезапуска) передаст содержимое файла в качестве параметров в postgres, если это не будет переопределено с помощью -o вариант. Содержимое этого файла также отображается в режиме status.

Примеры

Запуск сервера

Чтобы запустить сервер:

Чтобы запустить сервер, ожидая, пока сервер начнет принимать соединения:

Чтобы запустить сервер, использующий порт 5433 и работающий без fsync , используйте:

Остановка сервера

Чтобы остановить сервер, используйте:

Опция -m позволяет управлять отключением сервера:

Перезапуск сервера

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

Я установил PostgreSQL 10.1 в среде CentOS 7.3.

Служба запущена (файл postmaster.pid находится в /var/lib/pgsql/10/data), но мне нужно перезагрузить конфигурацию или перезапустить сервер после изменения в pg_hba.conf.

Однако пробуя разные команды, я получаю следующее:

6 ответов 6

Я обнаружил, что вам нужно указать точное имя для службы PostgreSQL, которое вы можете найти в списке служб, используя systemctl (см. также этот пост):

Тогда вы можете воспользоваться услугой:

В качестве альтернативы вы можете использовать команду systemctl:

Если у вас есть роль sudogoer в postgresql, вы также можете использовать:

Файл .service может называться как угодно. Обычно он находится в /usr/lib/systemd/system и может быть переименован по вашему желанию. Однако, если вы настроите его, рекомендуется переместить его в /etc/systemd/system

Или сначала (однократно):

и затем (каждый раз):

Примечание. pg_ctl нельзя запускать от имени пользователя root.

Я не знаю, как настроен ваш служебный файл, поэтому я не могу отлаживать вашу команду systemd. Возможно, он называется как-то по-другому, как предполагает Себастьен.

Что касается pg_ctl, это результат установки, не добавляющей каталог к ​​пути. (Причины этого упоминаются в комментариях здесь). Есть несколько разных способов решения, но я рекомендую просто добавить /usr/pgsql-x.x/bin к пути пользователя postgres. Просто добавьте PATH=$PATH:/usr/pgsql-x.x/bin в .bash_profile пользователя postgres, и все готово.

Вы также можете использовать (PostgresSQL 11, работающий на MX Linux (Debian 9, Stretch))-

Убедитесь, что /sbin является частью вашего пути при запуске команд service и systemctl.

<р>2. сервер postgresql остановить/запустить/перезагрузить/состояние - как пользователь root
/etc/init.d/postgresql-9.3 start
/etc/init.d/ postgresql-9.3 stop
/etc/ init.d/ перезапуск postgresql-9.3
/etc/init.d/ перезагрузка postgresql-9.3
/etc/init.d/ статус postgresql-9.3

Примеры /etc/ init.d/postgres:
Здесь я пытаюсь запустить сервер postgres как пользователь postgres, используя команду «/etc/init.d/postgres», вы получите ошибку отказа в доступе, и он будет работать только как пользователь root.
запуск сервера от имени пользователя root:
3. Служба Postgresql - от имени пользователя root:
вы можете запустить/остановить/перезагрузить/перезапустить сервер postgresql, используя службу postgresql, она будет работать только для пользователя root путь не подходит для пользователя postgres по умолчанию. перед доступом необходимо настроить службу

Примеры:
Запуск службы postgresql
Останов службы postgresql
Перезапуск службы postgresql
Статус службы postgresql

  • Получить ссылку
  • Фейсбук
  • Твиттер
  • Pinterest
  • Электронная почта
  • Другие приложения

Комментарии

Оставить комментарий

Популярные записи из этого блога

Как написать скрипт инициализации для PGAgent

Как узнать, является ли сервер резервным (ведомым) или основным (главным) в репликации Postgresql?

Как получить размер таблицы, размер базы данных, размер индексов, размер схемы, размер табличного пространства, размер столбца в базе данных PostgreSQL

В этом посте я расскажу о нескольких важных функциях для определения размера базы данных, таблицы и индекса в PostgreSQL.Поиск размера объекта в базе данных postgresql очень важен и распространен. Очень полезно знать точный размер, занимаемый объектом в табличном пространстве. Размер объекта в следующих сценариях указан в ГБ. Скрипты были отформатированы для удобной работы с PUTTY SQL Editor. 1. Проверка размера таблицы без учета зависимости таблицы: SELECT pg_size_pretty(pg_relation_size('mhrordhu_shk.mut_kharedi_audit')); pg_size_pretty ---------------- 238 МБ (1 строка) 2. Проверка размера таблицы, включая зависимость таблицы: SELECT pg_size_pretty(pg_total_relation_size('mhrordhu_shk.mut_kharedi_audit')); pg_size_pretty ---------------- 268 МБ (1 строка) 3. Определение размера отдельной базы данных postgresql SELECT pg_size_pretty(pg_database_size('db_name')); 4. Поиск размера отдельной таблицы для базы данных postgresql, включая индекс зависимостей: SELECT pg_size_pretty(pg_total_rel

PgBadger для PostgreSQL

pgBadger — это быстрый анализатор журнала PostgreSQL с полными отчетами из вашего файла журнала PostgreSQL. Это один небольшой сценарий Perl, который превосходит любой другой анализатор журнала PostgreSQL. Он написан на чистом Perl и использует библиотеку JavaScript (flotr2) для рисования графиков, поэтому вам не нужно устанавливать какие-либо дополнительные модули Perl или другие пакеты. Кроме того, эта библиотека дает нам больше возможностей, таких как масштабирование. pgBadger также использует библиотеку JavaScript Bootstrap и веб-шрифт FontAwesome для улучшения дизайна. Все встроено. pgBadger может автоматически определять формат файла журнала (syslog, stderr или csvlog). Он предназначен для анализа огромных файлов журналов, а также файлов, сжатых gzip. Полный список функций см. ниже. Поддерживаемые сжатые форматы: gzip, bzip2 и xz. Для формата xz у вас должна быть версия xz выше 5.05, поддерживающая параметр --robot. Все диаграммы масштабируются и могут быть сохранены в виде изображений PNG. Вы также можете ограничить pgBadger только сообщением об ошибке

Читайте также: