Перейти к содержимому

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

  • автор:

Как мягко перезагрузить postgresql 9.1 в ubuntu 12.04?

Так чтобы не умерли текущие исполняемые запросы и запросы в очереди?
Можно ли сделать service prostgresql reload? Или же это убьет текущие запросы? В mysql оно убивает.
Есть рецепт для 9.0
dasboot.ru/blog/?p=182
но в 9.1 не вижу pg_ctl

  • Вопрос задан более трёх лет назад
  • 31363 просмотра

Комментировать
Решения вопроса 0
Ответы на вопрос 4

pg_ctl находится в директории /usr/lib/postgresql/VERSION/bin. Но можно просто сделать reload. По крайней мере для официальных сборок с apt.postgresql.org.

Ответ написан более трёх лет назад
Пума Тайланд @opium Автор вопроса
к сожалению мягкий рестарт для смены прослушиваемого айпи не работает

jj_killer

kill -SIGHUP id родительского процесса

Так можно заставить перечитать свой конфиг большинство unix-сервисов.

Ответ написан более трёх лет назад
Пума Тайланд @opium Автор вопроса
Что то мне подсказывает, что не все так просто для баз данных.

jj_killer

Ну еще можно так: SELECT pg_reload_conf(); . Если хочется не просто 🙂
Пума Тайланд @opium Автор вопроса
Все равно то что мне надо в релоаде конфига не работает.
У меня работает просто sudo service postgresql restart
Ответ написан более трёх лет назад
Пума Тайланд @opium Автор вопроса
И что прямо запросы не прерываются у вас в постгресе при этом? Наверно вы маг.
Я дубина, сорри. Не прочитал вопрос нормально.

In stop mode, the server that is running in the specified data directory is shut down. Three different shutdown methods can be selected with the -m option. «Smart» mode (the default) waits for all active clients to disconnect and any online backup to finish. If the server is in hot standby, recovery and streaming replication will be terminated once all clients have disconnected. «Fast» mode does not wait for clients to disconnect and will terminate an online backup in progress. All active transactions are rolled back and clients are forcibly disconnected, then the server is shut down. «Immediate» mode will abort all server processes immediately, without a clean shutdown. This will lead to a crash-recovery run on the next restart.

Почему вы не видите pg_ctl — лично я не могу сказать.

Ответ написан более трёх лет назад
Комментировать
Нравится Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

postgresql

  • PostgreSQL

Где и как хранить сообщения чата?

  • 1 подписчик
  • 05 янв.
  • 118 просмотров

postgresql

  • PostgreSQL

Как сделать, чтобы при добавлении автоинкрементированного поля значение корректировалось?

  • 1 подписчик
  • 05 янв.
  • 85 просмотров

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

PostgreSQL is a widely used relational database that is compatible with various operating systems, such as Windows, Linux, and MacOS. Installing PostgreSQL on Linux allows users to perform various database functions efficiently, such as storing, managing, and retrieving large amounts of data. However, sometimes you may need to restart the Postgres server because of various reasons, such as when the server is inactive/dead, to enforce updates, when a system crashes, a lag occurs, etc.

This post is going to present a step-by-step guide on restarting the PostgreSQL server on the Linux operating system.

How to Restart Postgres Server on Linux(Ubuntu)?

The Postgres Server can be restarted using various methods. In this write-up the below-given methods will be demonstrated to restart the Postgres server on Linux:

— Method 1: Using the “/etc/init.d/postgresql” Directory
— Method 2: Using the “systemctl” Command

How to Restart Postgres on Linux Using the “/etc/init.d/postgresql” Directory?

Follow the given instructions to restart a Postgres server on Linux without any obstacles:

Step 1: Check the Postgres Status

Open the terminal and run the following “sudo” command to see the current status of the Postgres server:

/etc/init.d/postgresql status

img

The output shows that the Postgres server is currently inactive.

Step 2: Restart the Postgres Server

Use the below command to restart the Postgres server via the “/etc/init.d/postgresql” directory:

/etc/init.d/postgresql restart

img

The output shows that the stated command was executed successfully.

Step 3: Verify the Postgres Status

Use the “/etc/init.d/postgresql” directory with the “status” option to verify the Postgres status:

/etc/init.d/postgresql status

img

The output shows that the Postgres Server has been activated/restarted successfully.

How to Restart Postgres Server on Linux Using the “systemctl” Command?

Let’s head towards the below-listed steps to learn how to restart Postgres Server on Linux:

Step 1: Check the Status

Type the following “systemctl” command to see the current status of the Postgres server:

sudo systemctl status postgresql

img

The output shows that the Postgres server is currently not functioning.

Step 2: Restart the Postgres Server

Type the following sudo command to restart the Postgres server:

sudo systemctl restart postgresql

img

The output shows that the input command was executed successfully.

Step 3: Confirm the Status

To confirm that if Postgres is restarted or not, use the «systemctl» command with the «status» option:

sudo systemctl status postgresql

img

The output proves that the Postgres server has been restarted successfully.

The Postgres server can be restarted using the “/etc/init.d/postgresql restart” or “sudo systemctl restart postgresql” commands. The status of the Postgres server can be confirmed by executing these commands with the “status” option. In Postgres, the need to restart the Postgres server arises because of various reasons, such as to activate the dead server, enforce updates, tackle system crashes, overcome lags, etc. This article has explained the step-by-step guide on restarting the PostgreSQL server on Linux.

PostgreSQL

PostgreSQL — это объектно-реляционная система баз данных, которая обладает признаками традиционной коммерческой базы данных, с расширениями, которые будут доступны следующему поколению СУБД (систем управления базами данных).

Установка

Для установки PostgreSQL выполните следующую команду в терминале:

sudo apt-get install postgresql

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

Настройка

По умолчанию соединения через TCP/IP заблокированы. PostgreSQL поддерживает множество методов аутентификации. Метод аутентификации IDENT используется для postgres и локальных пользователей пока не настроено что-то еще. Обратитесь к PostgreSQL Administrator’s Guide, если вы собираетесь использовать какую-либо альтернативу типа Kerberos.

Дальнейшее обсуждение предполагает, что вы собираетесь разрешить соединения по TCP/IP и используете аутентификацию клиентов на основе метода MD5. Файлы настроек PostgreSQL хранятся в каталоге /etc/postgresql/ /main. Например, если вы установили PostgreSQL 8.4, файлы настроек сохранятся в каталоге /etc/postgresql/8.4/main.

Для настройки аутентификации ident добавьте записи в файл /etc/postgresql/8.4/main/pg_ident.conf. В файле содержатся подробные комментарии чтобы направлять вас.

Чтобы разрешить соединения по TCP/IP, отредактируйте файл /etc/postgresql/8.4/main/postgresql.conf. Найдите строку

#listen_addresses = 'localhost'

и замените ее на:

listen_addresses = 'localhost'

Чтобы разрешить другим компьютерам соединяться с вашим PostgreSQL сервером, замените ‘localhost’ на IP адрес вашего сервера или в качестве альтернативы на 0.0.0.0, чтобы подключить все интерфейсы.

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

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

sudo -u postgres psql template1

Эта команда подключится к PostgreSQL базе данных template1 как пользователь postgres. После подключения к серверу PostgreSQL вы окажетесь в SQL консоли. Вы можете выполнить следующую SQL команду в консоли psql для настройки пароля пользователя postgres:

ALTER USER postgres with encrypted password 'your_password';

После настройки пароля, измените файл /etc/postgresql/8.4/main/pg_hba.conf на использование MD5 аутентификации для пользователя postgres:

local all postgres md5

Под конец вам потребуется перезапустить сервис PostgreSQL для применения новых настроек. Из терминала выполните следующее для перезапуска PostgreSQL:

sudo /etc/init.d/postgresql-8.4 restart

Настройка выше в любом случае неполная. Пожалуйста обратитесь к руководству PostgreSQL Administrator’s Guide для настройки других параметров.

Ссылки

1. Как упоминалось выше, Administrator’s Guide — великолепный ресурс. Руководство также доступно из пакета postgresql-doc-8.4. Выполните следующую команду в терминале для установки пакета:

sudo apt-get install postgresql-doc-8.4

Чтобы увидеть руководство, введите file:///usr/share/doc/postgresql-doc-8.4/html/index.html в адресную строку вашего браузера.

2. Для общей информации по SQL смотрите Using SQL Special Edition от Rafe Colburn.

3. Также смотрите страницу PostgreSQL Ubuntu Wiki для дополнительной информации.

  • Сайт
  • Об Ubuntu
  • Скачать Ubuntu
  • Семейство Ubuntu
  • Новости
  • Форум
  • Помощь
  • Правила
  • Документация
  • Пользовательская документация
  • Официальная документация
  • Семейство Ubuntu
  • Материалы для загрузки
  • Совместимость с оборудованием
  • RSS лента
  • Сообщество
  • Наши проекты
  • Местные сообщества
  • Перевод Ubuntu
  • Тестирование
  • RSS лента

© 2018 Ubuntu-ru — Русскоязычное сообщество Ubuntu Linux.
© 2012 Canonical Ltd. Ubuntu и Canonical являются зарегистрированными торговыми знаками Canonical Ltd.

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

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

Имя источника событий, с которым 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 status pg_ctl: server is running (PID: 13718) /usr/local/pgsql/bin/postgres "-D" "/usr/local/pgsql/data" "-p" "5433" "-B" "128" 

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

См. также

Пред. Наверх След.
pg_controldata Начало pg_resetxlog

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *