qhb_bootstrap

qhb_bootstrap — создать новый кластер баз данных QHB


Синтаксис

qhb_bootstrap [флаг...] [параметр...] каталог_данных

Описание

Утилита qhb_bootstrap создает новый кластер базы данных QHB. Кластер — это коллекция баз данных под управлением единого экземпляра сервера.

Инициализация кластера баз данных заключается в создании каталогов для хранения данных, формировании общих системных таблиц (относящихся ко всему кластеру, а не к какой-то отдельной базе) и создании баз данных template1 и qhb. Впоследствии все новые базы будут создаваться на основе шаблона template1 (все, что будет добавлено в template1, автоматически скопируется в каждую новую базу данных). База данных qhb — это база данных по умолчанию, предназначенная для использования пользователями, утилитами и сторонними приложениями.


Безопасность

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

Из соображений безопасности новый кластер, созданный qhb_bootstrap, будет доступен только владельцу кластера. Флаг --allow-group-access позволяет читать файлы в кластере всем пользователям, входящим в группу владельца кластера. Это полезно для выполнения резервного копирования от имени непривилегированного пользователя.

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


Локализация

Утилита qhb_bootstrap инициализирует локали и кодировки баз данных кластера, которые будут использоваться по умолчанию. Кодировка, порядок сортировки (LC_COLLATE), классы наборов символов (LC_CTYPE, например заглавные, строчные буквы, цифры) можно задавать отдельно при создании новой базы данных. qhb_bootstrap определяет параметры локали для шаблона template1, которые будут применяться по умолчанию для новых баз. Указанная локаль должна быть установлена в системе (locale -a).

Чтобы изменить порядок сортировки по умолчанию или классы наборов символов, используются параметры --lc-collate и --lc-ctype. Порядок сортировки, отличный от C/RUST или POSIX, оказывает влияние на производительность. Поэтому при выполнении qhb_bootstrap следует тщательно выбирать необходимую и достаточную локаль. См. статью «Еще раз про collation в PostgreSQL».

Остальные категории локалей можно изменить и после запуска сервера. Также можно использовать параметр --locale, чтобы задать локаль для всех категорий одновременно, включая порядок сортировки и классы наборов символов. Все значения локалей сервера (lc_*) можно вывести командой SHOW ALL. Более подробную информацию можно найти в разделе Поддержка языковых стандартов.


Параметры

-A метод_аутентификации
--auth=метод_аутентификации
Этот параметр задает метод аутентификации по умолчанию для локальных пользователей, используемый в файле qhb_hba.conf (строки host и local). Значение по умолчанию — trust.

--auth-host=метод_аутентификации
Этот параметр задает метод аутентификации для локальных пользователей, подключающихся по TCP/IP, используемый в qhb_hba.conf (строки host). Возможные значения: trust, reject, scram_sha_256, md5, password, radius, pam, bsd, ldap, ident, gss, sspi, cert. По умолчанию значение берется из параметра --auth.

--auth-local=метод_аутентификации
Этот параметр задает метод аутентификации для локальных пользователей, подключающихся через сокет домена Unix, используемый в qhb_hba.conf (строки local). Возможные значения: trust, reject, scram_sha_256, md5, password, radius, pam, bsd, ldap, peer. По умолчанию значение берется из параметра --auth.

-D каталог
--pgdata=каталог
Каталог хранения кластера. Это единственный обязательный параметр для утилиты qhb_bootstrap. Может быть задан как флагом -D/--data-dir, так и последним параметром, тогда флаги можно опустить. При этом его можно указать в переменной среды PGDATA, что будет удобно при дальнейшем использовании (QHB обращается к этой же переменной).

-E кодировка
--encoding=кодировка
Выбирает кодировку шаблона базы данных. Эта кодировка также будет использоваться по умолчанию для любой вновь создаваемой базы данных, если ее не переопределить. В настоящий момент поддерживается только UTF8. Значение по умолчанию — UTF8.

--locale=локаль
Устанавливает локаль по умолчанию для кластера базы данных. По умолчанию установлена нейтральная локаль (C-локаль).

--lc-collate=локаль
Устанавливает локаль для порядка сортировки строк. По умолчанию значение берется из параметра --locale.

--lc-ctype=локаль
Устанавливает локаль для классификации символов. По умолчанию значение берется из параметра --locale.

--lc-messages=локаль
Устанавливает язык сообщений. По умолчанию значение берется из параметра --locale.

--lc-monetary=локаль
Устанавливает локаль для форматирования валют. По умолчанию значение берется из параметра --locale.

--lc-numeric=локаль
Устанавливает локаль для форматирования чисел. По умолчанию значение берется из параметра --locale.

--lc-time=локаль
Устанавливает локаль для форматирования даты и времени. По умолчанию значение берется из параметра --locale.

--no-locale
Этот параметр равнозначен --locale=C, т. е. установке нейтральной локали по умолчанию. Нельзя задать одновременно с параметром --locale.

--pwfile=имя_файла
Заставляет qhb_bootstrap читать пароль суперпользователя базы данных из первой строки заданного файла. Параметры pwprompt и pwfile являются взаимоисключающими. Если в параметрах auth-host или auth-local указан метод аутентификации, отличный от trust, то наличие одного из параметров pwprompt или pwfile является обязательным.

-L каталог
--share-dir=каталог
Указывает qhb_bootstrap, где следует искать входные файлы для развертывания кластера базы данных. По умолчанию это share в каталоге из параметра data-dir.

-T конфигурация
--text-search-config=конфигурация
Устанавливает конфигурацию текстового поиска по умолчанию. За дополнительной информацией обратитесь к default_text_search_config. Значение по умолчанию соответствует локали, заданной в параметре lc_ctype, иначе simple.

-U имя_пользователя
--username=имя_пользователя
Устанавливает имя суперпользователя базы данных. По умолчанию это имя пользователя ОС, запустившего qhb_bootstrap. В действительности само по себе имя суперпользователя неважно, но этот параметр позволяет оставить привычное имя qhb, даже если имя пользователя ОС другое.

-X каталог
--waldir=каталог
Этот параметр задает каталог, в котором должен храниться журнал упреждающей записи. По умолчанию это pg_wal в каталоге из параметра data-dir.

--wal-segsize=размер
Задает размер сегмента WAL в мегабайтах, то есть размер каждого отдельного файла в журнале WAL. По умолчанию размер составляет 16 мегабайт. Значение должно задаваться степенью 2 от 1 до 1024 (в мегабайтах). Этот параметр можно установить только во время инициализации и нельзя изменить потом.
Этот размер бывает полезно поменять при тонкой настройке трансляции или архивации WAL. Кроме того, в базах данных с большим объемом WAL значительное количество файлов WAL в каталоге может вызвать проблемы со стороны производительности и управления. Увеличение размера файлов WAL приведет к уменьшению их количества.


Флаги

-d
--debug
Выводит отладочные и другие сообщения загрузчика. Загрузчик — это программа, которую qhb_bootstrap использует для создания таблиц каталога. С этим параметром генерируется большое количество отладочных и информационных сообщений. Значение по умолчанию — false (выключен).

-h
--help
Вывод справочной информации

-g
--allow-group-access
Позволяет пользователям из группы владельца кластера читать все файлы кластера, создаваемые утилитой qhb_bootstrap. Значение по умолчанию — false (выключен).

-k
--data-checksums
Использовать контрольные суммы в страницах данных для выявления сбоев при вводе/выводе, которые иначе останутся незамеченными. Включение расчета контрольных сумм может повлечь за собой заметное снижение производительности. Если этот параметр установлен, контрольные суммы будут рассчитываться для всех объектов и во всех базах данных. Все ошибки контрольных сумм будут видны в представлении pg_stat_database. Подробную информацию см. в разделе Контрольные суммы данных. Значение по умолчанию — false (выключен).

-n
--no-clean
По умолчанию, когда qhb_bootstrap выявляет ошибку на этапе развертывания кластера, она удаляет все созданные к тому моменту файлы. Этот параметр предотвращает удаление файлов, вследствие чего полезен для отладки. Значение по умолчанию — false (удалять файлы).

-N
--no-sync
По умолчанию qhb_bootstrap ожидает, пока все файлы не будут надежно записаны на диск. Этот параметр позволяет qhb_bootstrap завершаться быстрее, без ожидания, но в последующем сбой операционной системы может привести к повреждению каталога данных. В целом, этот параметр полезен для тестирования, но при создании производственной установки его применять не следует. Значение по умолчанию — false (выключен).

-s
--show
Вывести конфигурацию без создания кластера. Никакие другие обычные операции qhb_bootstrap не выполняются. Значение по умолчанию — false (выключен).

-S
--sync-only
Безопасно записать все файлы базы данных на диск и завершиться. Никакие другие обычные операции qhb_bootstrap не выполняются. Значение по умолчанию — false (выключен).

-V
--version
Вывести текущую версию qhb_bootstrap.

-W
--pwprompt
Заставляет qhb_bootstrap запросить пароль, который будет назначен суперпользователю базы данных. Если не планируется использовать аутентификацию по паролю, это не важно. В противном случае этот вариант аутентификации будет неприменим, пока не задан пароль.


Переменные среды

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

PG_COLOR
Указывает, использовать ли цвета в диагностических сообщениях. Возможные значения: always (всегда), auto (автоматически) и never (никогда).

TZ
Задает для созданного кластера базы данных часовой пояс по умолчанию. Ее значением должно быть полное название часового пояса (см. раздел Часовые пояса).

Кроме того, эта утилита, как и большинство других утилит QHB, использует переменные среды, поддерживаемые libpq см. раздел Переменные среды).


Примеры

Создать кластер в каталоге /qhb/qhb-data с параметрами по умолчанию:

qhb_bootstrap --data-dir /qhb/qhb-data

Создать кластер в каталоге /qhb/qhb-data с кодировкой ru_RU и шифрованием SCRAM-SHA-256 с выводом подробной отладочной информации:

qhb_bootstrap --data-dir /qhb/qhb-data --locale ru_RU --auth scram_sha_256 -d

См. также

qhb_ctl, qhb