- Postgresql перезапуск сервера windows
- Синтаксис
- Описание
- Параметры
- Параметры, специфичные для Windows
- Переменные окружения
- Файлы
- Примеры
- Запуск сервера
- Остановка сервера
- Повторный запуск сервера
- Вывод состояния сервера
- ОС Windows: Не запускается служба PostgreSQL после аварийного выключения или перезагрузки сервера
- Некорретное завершение работы службы
- Служба не запускается. Есть сообщения об ошибках. Отсутствуют исполняемые файлы и DLL-библиотеки СУБД
- Дополнительная информация
- Postgresql перезапуск сервера windows
- 16.2.1. Поддерживаемые версии Windows
- 16.2.2. Установка с графическим интерфейсом
- 16.2.3. Установка в командной строке
- 16.2.3.1. Параметры командной строки
- 16.2.3.2. Формат INI-файла
Postgresql перезапуск сервера windows
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 . Это позволяет применить изменения без полного рестарта сервера.
Чтобы перевести резервный сервер в режим главного, используется promote . При этом сервер прекращает работу в режиме восстановления и начинает работать в режиме чтения-записи.
Чтобы послать сигнал процессу, используется kill . Это особенно применимо в среде Microsoft Windows , которая не имеет в оснастке команды kill . Чтобы посмотреть список доступных сигналов, обратитесь к справке —help .
Режим register предназначен для регистрации системной службы в Microsoft Windows . Параметр -S позволяет выбрать тип запуска службы, « auto » (запускать службу автоматически при загрузке системы) или « demand » (запускать службу по требованию).
Чтобы удалить зарегистрированную службу в Microsoft Windows , используется unregister . Эта операция отменяет действие команды register .
Параметры
Способствует сбросу дампа памяти процесса при крахе сервера на платформах, где это возможно, поднимая мягкие ограничения, задаваемые для файлов дампа. Это полезно при отладке и диагностике проблем, так как позволяет получить трассировку стека отказавшего процесса сервера. -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 .
Переменные окружения
Значение по умолчанию для максимального времени ожидания запуска или остановки сервера (в секундах). По умолчанию это время составляет 60 секунд. PGDATA
Размещение каталога хранения данных по умолчанию.
pg_ctl , как и большинство других утилит PostgreSQL , также использует переменные окружения, поддерживаемые libpq (см. Раздел 32.14). Другие переменные сервера описаны в postgres .
Файлы
Наличие файла в каталоге хранения данных помогает pg_ctl определить, работает ли сервер в настоящий момент. postmaster.opts
Если файл существует в каталоге хранения данных, то pg_ctl (при restart ) передаст его содержимое в качестве аргументов postgres , если не указаны иные значения в -o . Содержимое файла также отображается при вызове в режиме status .
Примеры
Запуск сервера
Для запуска сервера:
Для запуска сервера с ожиданием готовности к приёму подключений:
Чтобы запустить сервер с использованием порта 5433 и без fsync , выполните:
Остановка сервера
Для остановки сервера:
Параметр -m указывает режим остановки:
Повторный запуск сервера
Повторный запуск сервера производится аналогично остановке с дальнейшим его запуском, за исключением того, что pg_ctl использует аргументы, которые были переданы при предыдущем запуске кластера. В простейшем случае повторный запуск выглядит так:
Для повторного запуска сервера с ожиданием полной остановки и последующего запуска:
Для повторного запуска на порту 5433 с выключенным fsync после старта:
Вывод состояния сервера
Ниже представлен примерный вывод pg_ctl :
Показанная командная строка будет использоваться в режиме перезапуска.
ОС Windows: Не запускается служба PostgreSQL после аварийного выключения или перезагрузки сервера
Инцидент: в ситуации, когда сервер был выключен аварийно, через кнопку выключения или при отсутствии электропитания, то после его включения служба PostgreSQL в некоторых случаях не запускается.
Некорретное завершение работы службы
Как исправить:
1. Запустите сеанс командной строки от Администратора.
2. Выполните последовательно следующие команды и внимательно следите за их работой.
3. Определить домашний каталог PostgreSQL.
4. Проверьте реальный статус экземпляра службы PostgreSQL.
5. Выполните команду для полной остановки процесса PostgreSQL.
Следующими командами выполняется корректный выход из рабочего состояния сервера СУБД и его запуск.
6. Запустите приложение СУБД.
7. После этого заново остановите процесс. Повтор данного шага вызван тем, что таким образом запуска приложение сервера СУБД корректно завершит недостающие транзакции.
8. После выполненных шагов по перезапуску и правильной остановке экземпляра СУБД запустите службу PostgreSQL.
Служба не запускается. Есть сообщения об ошибках. Отсутствуют исполняемые файлы и DLL-библиотеки СУБД
В некоторых случаях после аварийной перезагрузки или в результате срабатывания антивирусных программ при запуске ОС Windows несколько файлов, которые необходимы для работы СУБД PostgreSQL могут отсутствовать. Это может объясняться критическим сбоем ОС.
При попытке использовать способ для запуска служб и инициирования процесса pg_ctl.exe, будет отображаться сообщение о его отсутствии или недостающих файлов библиотек.
1. Запустите скрипт, с помощью которого, проверьте, что для данной версии СУБД присутствуют все компоненты и файлы, которые входят в состав.
2. Скачайте и разместите файл скрипт в папку с PostgreSQL:
3. Запустите файл скрипта. В результате выполнения будет сформирован файл отчета report.txt.
4. Откройте файл отчета и проверьте, что все компоненты присутствуют.
Обязательно должны присутствовать такие библиотеки и исполняемые файлы, а также все библиотеки DLL.
5. Если какие-либо файлы отсутствуют. Тогда загрузите архив для соответствующей версии PostgreSQL и скопируйте недостающие файлы в папку СУБД
6. После копирования недостающих файлов:
- Остановите службы сервера приложений SetRetail10 и МУК.
- Запустите службу PostgreSQL.
- Запустите службы сервера приложений SetRetail10 и МУК.
Дополнительная информация
Postgresql перезапуск сервера windows
Postgres Pro предлагает следующие режимы установки в поддерживаемых системах Windows:
Установка в графическом режиме с помощью интерактивного мастера
Вы также можете настроить среду для использования процедурных языков PL/Perl и PL/Python, если они требуются для ваших целей. За подробностями обратитесь к Подразделу 16.2.4.
Во избежание недопонимания учтите, что в системах Windows имеются следующие отдельные пользователи:
Установка Postgres Pro производится от имени текущего пользователя операционной системы. Все файлы баз данных будут принадлежать этому пользователю.
Чтобы работать с этой базой данных, вы должны будете подключиться к кластеру баз данных под именем пользователя, созданного во время установки. (Это не пользователь операционной системы.)
По умолчанию служба Postgres Pro запускается от имени NT AUTHORITY\NetworkService , специального служебного пользователя Windows. При необходимости вы можете выбрать другого пользователя Windows, который будет запускать Postgres Pro , в соответствующем поле инсталлятора. Выбранный вами пользователь должен иметь право запуска служб Windows.
16.2.1. Поддерживаемые версии Windows
Postgres Pro выпускается для следующих 64-битных версий Windows:
Windows Server 2008 R2 и новее
16.2.2. Установка с графическим интерфейсом
Postgres Pro предоставляет инсталлятор с интерактивным мастером, который устанавливает и конфигурирует ключевые компоненты Postgres Pro , создаёт начальную базу данных и настраивает автозапуск сервера. Для следующих компонентов предоставляются индивидуальные инсталляторы, которые должны запускаться отдельно после основного инсталлятора:
Для установки ключевых компонентов Postgres Pro запустите основной инсталлятор от имени администратора и следуйте инструкциям на экране. Учтите следующую специфику установки:
Вы можете установить все основные компоненты Postgres Pro или настроить инсталляцию, исключив серверную часть или компоненты для разработчика. Клиентская часть устанавливается всегда.
Выбранный каталог данных должен быть пустым. В противном случае Postgres Pro не сможет создать начальную базу данных. По умолчанию каталогом данных будет C:\Program Files\PostgresPro\11\data .
Если установлен флажок Allow external connections (Разрешить внешние подключения) (отмеченный по умолчанию), инсталлятор вносит изменения в postgresql.conf и pg_hba.conf для разрешения подключений извне. В противном случае сервер Postgres Pro будет принимать подключения только с локального узла. Если вы решите разрешить внешние подключения после завершения установки, вы должны будете изменить конфигурацию Брандмауэра Windows, чтобы сервер Postgres Pro мог принимать подключения.
Запомните имя и пароль пользователя, заданные вами при установке Postgres Pro , так как они потребуются для подключения к серверу Postgres Pro при использовании аутентификации с проверкой пароля.
По умолчанию в Postgres Pro используются правила сортировки icu . Если вы обновляете инсталляцию, в которой использовались правила сортировки libc , например, инсталляцию PostgreSQL , выберите libc в качестве провайдера правил сортировки, воспользовавшись соответствующим выпадающим списком в инсталляторе.
Postgres Pro предоставляет заранее настроенный ярлык psql , который можно найти в меню Пуск, чтобы вам не пришлось настраивать стандартные переменные окружения. Однако если вы хотели бы работать с Postgres Pro в обычной консоли командной строки, не задавая полные пути к двоичным файлам, отметьте флажок Set up environment variables (Настроить переменные окружения).
По завершении инсталляции экземпляр Postgres Pro готов к использованию, а для службы сервера включён автозапуск. Если вам понадобится больше одного экземпляра Postgres Pro в одной системе, вам нужно будет настроить дополнительные экземпляры вручную. За подробностями обратитесь к Подразделу 16.2.5.
16.2.3. Установка в командной строке
Чтобы установить Postgres Pro из командной строки, запустите загруженный файл инсталлятора, передав один или несколько параметров, описанных в Подразделе 16.2.3.1.
16.2.3.1. Параметры командной строки
Путь каталога инсталляции:
Полностью автоматическая установка:
INI -файл, содержащий параметры установки сервера:
Если вы хотите скорректировать стандартные параметры, вы должны создать INI -файл вручную, как описано в Подразделе 16.2.3.2.
16.2.3.2. Формат INI-файла
В разделе [options] данного файла можно задать следующие параметры:
InstallDir — путь для установки сервера. Если вы зададите параметр /D в командной строке, значение InstallDir будет иметь приоритет.
DataDir — путь для создания баз данных по умолчанию
Port — порт TCP/IP для приёма подключений. По умолчанию: 5432.
SuperUser — имя пользователя, который получит права администратора баз данных
Password — пароль этого пользователя
noExtConnections = 1 — не разрешать внешние подключения.
Coding = UNICODE — кодировка символов для использования в базе данных
Locale — локаль для использования в базе данных (для каждой кодировки может быть несколько локалей)
vcredist = no — не устанавливать распространяемые библиотеки Visual C (это можно сделать, только если эти библиотеки уже установлены в системе)
envvar = 1 — установить полезные для Postgres Pro переменные окружения: PGDATA , PGDATABASE , PGUSER , PGPORT , PGLOCALEDIR
needoptimization = 0 — отключить автоматическую настройку параметров конфигурации в зависимости от имеющихся системных ресурсов.
datachecksums = 0 — отключить контрольные суммы в кластере.
serviceaccount — пользователь Windows, от имени которого будет запускаться служба Postgres Pro . Указанный пользователь должен иметь право запуска служб Windows. По умолчанию служба Postgres Pro запускается от имени NT AUTHORITY\NetworkService , специальной учётной записи для служб Windows.
servicepassword — пароль для пользователя Windows, указанного в параметре serviceaccount .
serviceid — имя службы Postgres Pro .
islibc = 1 — использовать libc в качестве провайдера основного правила сортировки.