qhb_ctl

qhb_ctl - инициализировать, запустить, остановить или управлять сервером QHB.

Синтаксис

qhb_ctl init[db] [-D datadir] [-s] [-o initdb-options]

qhb_ctl start [-D datadir] [-l filename] [-W] [-t seconds] [-s] [-o options] [-p path] [-c]

qhb_ctl stop [-D datadir] [-m s[mart] | f[ast] | i[mmediate] ] [-W] [-t seconds] [-s]

qhb_ctl restart [-D datadir] [-m s[mart] | f[ast] | i[mmediate] ] [-W] [-t seconds] [-s] [-o options] [-c]

qhb_ctl reload [-D datadir] [-s]

qhb_ctl status [-D datadir]

qhb_ctl promote [-D datadir] [-W] [-t seconds] [-s]

qhb_ctl logrotate [-D datadir] [-s]

qhb_ctl kill signal_name process_id

Описание

qhb_ctl - это утилита для инициализации, запуска, остановки или перезапуска кластера базы данных QHB (qhb) или отображения состояния работающего сервера. Хотя сервер можно запустить вручную, qhb_ctl берёт на себя такие задачи, как направление вывода в журнал и корректное отключение от терминала и группы процессов, и, также, предоставляет удобный интерфейс для остановки кластера.

Команда init или initdb создает новый кластер баз данных QHB, то есть коллекцию баз данных, которая будет управляться одним экземпляром сервера. Эта команда вызывает initdb. Смотрите initdb для подробной информации.

Команда start запускает сервер. Сервер запускается в фоновом режиме, а его стандартный ввод подключается к /dev/null. В Unix-подобных системах по умолчанию стандартный вывод и стандартные ошибки отправляются в стандартный вывод qhb_ctl (не ошибок). Затем стандартный вывод qhb_ctl должен быть перенаправлен в файл или в другой процесс, например программе ротации журналов rotatelogs; в противном случае qhb будет писать свой вывод в управляющий терминал (в фоновом режиме) и останется в группе процессов оболочки.

Режим stop останавливает сервер, который работает в указанном каталоге данных. Существует три разных метода остановки, которые могут быть выбраны с параметром -m. Режим "Smart" ожидает отключения всех активных клиентов и завершения всех процессов резервного копирования в онлайн-хранилище. Если сервер находится в режиме горячего резервирования, восстановление и потоковая репликация будут прерваны после отключения всех клиентов. «Fast» режим (по умолчанию) не ожидает отключения клиентов и прекращает выполнение резервного копирования в онлайн-хранилище. Все активные транзакции откатываются, клиенты принудительно отключаются, и затем сервер останавливается. Режим «Immediate» немедленно прервет все процессы на сервере, не выполняя процедуру штатной остаонки. Такой вариант приведет к восстановлению после сбоя при следующем запуске сервера.

Команда restart выполняет остановку с последующим запуском сервера. Это позволяет изменить параметры командной строки qhb или параметры файла конфигурации, которые нельзя изменить без перезапуска сервера. Если в командной строке были использованы относительные пути при запуске сервера, команда restart может завершиться ошибкой, если вызывать qhb_ctl не в том же каталоге, как это было во время запуска сервера.

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

Команда status проверяет, работает ли сервер в указанном каталоге данных. Если да, отображаются PID сервера и параметры командной строки, которые использовались для его запуска. Если сервер не запущен, qhb_ctl возвращает код завершения 3. Если доступный каталог данных не указан, qhb_ctl возвращает код завершения 4.

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

Команда logrotate прокручивает файл журнала сервера. Подробнее о том, как использовать этот режим с внешними инструментами ротации журналов, смотрите в разделе Обслуживание файла журнала.

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

Параметры

АргументОписание
-c,--core-filesПозволяет при сбоях сервера генерировать файлы дампа памяти на платформах, где это возможно, путем снятия любых мягких ограничений ресурсов, установленных для core-файлов. Это полезно при отладке или диагностике проблем, позволяя получить трассировку стека от упавшего процесса сервера
-D datadir, --pgdata=datadirУказывает расположение файлов конфигурации базы данных. Если этот параметр не указан, используется переменная окружения PGDATA
-l filename,--log=filenameНаправляет вывод сообщений в файл filename. Если файл не существует, то он создается. Значение umask равно 077, поэтому доступ к файлу журнала по умолчанию запрещен другим пользователям
-m mode, --mode=modeОпределяет режим остановки кластера. mode может быть smart, fast или immediate (или первой буквой одного из этих вариантов). Если этот параметр не указан, по умолчанию используется значение fast
-o options, --options=optionsУказывает параметры, которые должны быть переданы непосредственно команде qhb. -o можно указывать несколько раз, передавая все заданные параметры. options обычно должны быть заключены в одинарные или двойные кавычки, чтобы гарантировать, что они передаются как группа
-o initdb-options, --options=initdb-optionsОпределяет параметры, которые должны быть переданы непосредственно команде initdb. -o можно указывать несколько раз, передавая все заданные параметры. initdb-options обычно должны быть заключены в одинарные или двойные кавычки, чтобы они передавались как группа
-p pathУказывает расположение исполняемого файла qhb. По умолчанию исполняемый файл qhb берется из того же каталога, что и qhb_ctl, или, если это не так, из зашитого каталога установки. Нет необходимости использовать эту опцию, если вы не делаете что-то необычное и не получаете ошибок о том, что исполняемый файл qhb не найден. В режиме init этот параметр аналогично указывает на расположение исполняемого файла initdb
-s, --silentВыводить только ошибки, без информационных сообщений
-t seconds,--timeout=secondsЗадает максимальное время ожидания (в секундах) ожидания завершения операции (см. -w). По умолчанию используется значение переменной окружения PGCTLTIMEOUT или, если она не задана, 60 секунд
-V,--versionВывести версию qhb_ctl и выйти
-w,--waitЖдать, пока операция завершится. По умолчанию поддерживается для команд start, stop, restart, promote и register. Во время ожидания qhb_ctl несколько раз проверяет PID-файл сервера, засыпая на короткий промежуток времени между проверками. Остановка считается завершенной, когда сервер удаляет свой PID-файл. qhb_ctl возвращает код завершения, в зависимости от успеха запуска или остановки. Если операция не завершается в течение времени ожидания (см. параметр -t), то qhb_ctl завершается с ненулевым кодом выхода. Но обратите внимание, что операция может продолжаться в фоновом режиме и в конечном итоге завершится успешно
-W, --no-waitНе ждать завершения операции. Этот параметр противоположен параметру -w. Если ожидание отключено, запрошенное действие инициируется, но нет информации о его успешности. В этом случае файл журнала сервера или внешняя система мониторинга должны будут использоваться для проверки текущего состояния успешности операции.
-?,--helpПоказать справку об аргументах командной строки qhb_ctl и выйти

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

Окружение

  • PGCTLTIMEOUT

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

  • PGDATA

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

Большинству режимов qhb_ctl требуются знать расположение каталога данных; следовательно, опция -D обязательна, если не установлена PGDATA.

qhb_ctl, как и большинство других утилит QHB, также использует переменные окружения, поддерживаемые qhb.

Для дополнительных переменных, которые влияют на сервер, смотрите qhb.

Файлы

  • qhbmaster.pid

    qhb_ctl проверяет этот файл в каталоге данных, чтобы определить, работает ли сервер в данный момент.

  • postmaster.opts

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

Примеры

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

Запуск сервер и ожидание им приема соединений:

$ qhb_ctl start

Запуск сервера на порте 5433 и без fsync:

$ qhb_ctl -o "-F -p 5433" start

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

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

$ qhb_ctl stop

Параметр -m позволяет контролировать, как сервер будет остановлен:

$ qhb_ctl stop -m smart

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

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

$ qhb_ctl restart

Но если указан параметр -o, он заменяет все предыдущие параметры. Чтобы перезапустить сервер на порте 5433 и отключить fsync при перезапуске, используйте:

$ qhb_ctl -o "-F -p 5433" restart

Отображение статуса сервера

Вот пример вывода статуса из qhb_ctl:

$ qhb_ctl status

qhb_ctl: server is running (PID: 13718)
/usr/local/qhb/bin/qhb "-D" "/usr/local/qhb/data" "-p" "5433" "-B" "128"

Во второй строке показна команда, которая будет выполненена в режиме перезапуска.

Смотрите также

initdb, qhb