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