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 (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