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"
Во второй строке показна команда, которая будет выполненена в режиме перезапуска.