qhb_bootstrap

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


Синтаксис

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

Описание

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

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


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

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

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

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


Локализация

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

Чтобы выбрать для кластера другую локаль, воспользуйтесь параметром --locale. Кроме того, имеются отдельные параметры --lc-* (см. ниже), позволяющие установить значения для отдельных категорий локали. Обратите внимание, что несовместимые значения для разных категорий локали могут привести к бессмысленным результатам, поэтому их следует тщательно выбирать. См. статью «Еще раз про collation в PostgreSQL».

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

Более подробную информацию об установке локалей см. в разделе Поддержка языковых стандартов.

Для изменения кодировки по умолчанию используется параметр --encoding. Более подробную информацию см. в разделе Поддержка кодировок.


Параметры

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

--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 (C Locale). Поддержка локалей описана в разделе Поддержка языковых стандартов.

--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, раздел Файл qhb_hba.conf