initdb
initdb
- создать новый кластер базы данных QHB
Синтаксис
initdb [option...] [ --pgdata | -D ] directory
Описание
initdb
создает новый кластер базы данных QHB. Кластер баз данных -
это набор баз данных, которые управляются одним экземпляром сервера.
Создание кластера базы данных состоит из создания каталогов, в которых
будут храниться данные базы данных, создания таблиц общего каталога
(таблиц, которые принадлежат всему кластеру, а не какой-либо конкретной
базе данных), и создания баз данных template1
и qhb
. Когда вы
позже создадите новую базу данных, все в базе данных template1
будет
скопировано. (Следовательно, все, что установлено в template1
,
автоматически копируется в каждую созданную позже базу данных). База
данных qhb
- это база данных по умолчанию, предназначенная для
использования пользователями, утилитами и сторонними приложениями.
Хотя initdb
попытается создать указанный каталог данных, он может не
иметь разрешения, если родительский каталог нужного каталога данных
принадлежит пользователю root. Чтобы инициализировать в такой настройке,
создайте пустой каталог данных как root, затем используйте chown
чтобы
назначить владение этим каталогом учетной записи пользователя базы
данных, затем su
чтобы стать пользователем базы данных для запуска
initdb
.
initdb
должен быть запущен от имени пользователя, которому будет
принадлежать серверный процесс, потому что сервер должен иметь доступ к
файлам и каталогам, которые создает initdb
. Поскольку сервер не может
быть запущен от имени пользователя root, вы также не должны запускать
initdb
от имени пользователя root. (Это на самом деле откажется сделать
это).
По соображениям безопасности новый кластер, созданный initdb
будет
доступен только владельцу кластера по умолчанию. Параметр
--allow-group-access
позволяет любому пользователю в той же группе, что
и владелец кластера, читать файлы в кластере. Это полезно для выполнения
резервного копирования как непривилегированный пользователь.
initdb
инициализирует стандартную локаль кластера базы данных и
кодировку набора символов Кодировка набора символов, порядок
сопоставления (LC_COLLATE
) и классы набора символов ( LC_CTYPE
,
например, верхняя, нижняя, цифра) могут быть установлены отдельно для
базы данных при ее создании. initdb
определяет эти настройки для базы
данных template1
, которая будет использоваться по умолчанию для всех
других баз данных.
Чтобы изменить порядок сортировки по умолчанию или классы набора
символов, используйте параметры --lc-collate
, --lc-ctype
и --lc-ctype
.
Порядок сопоставления, отличный от C или POSIX также снижает
производительность. По этим причинам важно правильно выбрать локаль при
запуске initdb
.
Остальные категории локалей могут быть изменены позже при запуске
сервера. Вы также можете использовать --locale
чтобы установить значение
по умолчанию для всех категорий языковых стандартов, включая порядок
сопоставления и классы набора символов. Все значения локали сервера
(lc_
) могут отображаться через SHOW ALL. Более подробную информацию
можно найти в разделе Поддержка локали.
Чтобы изменить кодировку по умолчанию, используйте --encoding
. Более
подробную информацию можно найти в разделе Поддержка набора символов.
Параметры
-
-A
authmethod
--auth=
authmethod
Этот параметр определяет метод аутентификации по умолчанию для локальных пользователей, используемый в
qhb_hba.conf
(строкиhost
иlocal
).initdb
предварительно внесет вqhb_hba.conf
указанный метод аутентификации для обычный и репликационных соединений.Не используйте
trust
если вы не доверяете всем локальным пользователям в вашей системе.trust
используется по умолчанию для простоты установки. -
--auth-host=
authmethod
Этот параметр определяет метод аутентификации для локальных пользователей для соединения по TCP/IP, используемый в
qhb_hba.conf
(строки host). -
--auth-local=
authmethod
Этот параметр указывает метод аутентификации для локальных пользователей для соединения по Unix-сокет, используемые в
qhb_hba.conf
(строкиlocal
). -
-D
directory
--pgdata=
directory
Этот параметр указывает каталог, в котором должен храниться кластер базы данных. Это единственный обязательный параметр, необходимый для
initdb
. Но его можно не вводить, если установить переменную окруженияPGDATA
. При дальнейшем использовании, так может быть удобно, поскольку сервер базы данных (qhb
) может позже найти каталог базы данных по этой переменной окружения. -
-E
encoding
--encoding=
encoding
Определяет кодировку шаблона базы данных. Эта будет кодировка будет использоваться по умолчанию для любой базы данных, которую вы создадите в дальнейшем, если вы не переопределите ее. Значение по умолчанию определяется на основе локали. Если локаль не удалось определить, то выбирается
SQL_ASCII
. Наборы символов, поддерживаемые сервером QHB, описаны в разделе Поддержка набора символов. -
-g
--allow-group-access
Позволяет пользователям в той же группе, что и владелец кластера, читать все файлы кластера, созданные
initdb
. Этот параметр игнорируется в Windows, так как в ней не поддерживаются разрешения группы в стиле POSIX. -
-k
--data-checksums
Использовать контрольные суммы на страницах данных, чтобы помочь обнаружить повреждения системы при вводе-выводе, которая в противном случае были бы незамеченными. Включение контрольных сумм может повлечь за собой заметное снижение производительности. Если этот параметр установлен, то контрольные суммы будут рассчитываться для всех объектов и во всех базах данных. Все ошибки контрольной суммы будут видны в представлении
pg_stat_database
. -
--locale=
locale
Устанавливает локаль по умолчанию для кластера базы данных. Если этот параметр не указан, локаль наследуется от окружения, в которой запускается
initdb
. Поддержка локали описана в Разделе 9.1. -
--lc-collate=
locale
--lc-ctype=
locale
--lc-messages=
locale
--lc-monetary=
locale
--lc-numeric=
locale
--lc-time=
locale
Подобно
--locale
, но устанавливает локаль только в указанной категории. -
--no-locale
Эквивалентно
--locale=C
-
-N
--no-sync
По умолчанию
initdb
ождиает пока все файлы будут надёжно записаны на диск. Этот параметр позволитinitdb
завершаться быстрее - без ожидания, но в случае падения операционной системы может привести к повреждению каталога данных. Как правило, этот параметр полезен для тестирования, и его не следует использовать в продакшене. -
--pwfile=
filename
Заставляет
initdb
читать пароль суперпользователя базы данных из файла. Первая строка файла берется в качестве пароля. -
-S
--sync-only
Безопасно записать все файлы базы данных на диск и выйти. Не выполняет никаких других обычных операций
initdb
. -
-T
config
--text-search-config=
config
Устанавливает конфигурацию текстового поиска по умолчанию. См. default_text_search_config для получения дополнительной информации.
-
-U
username
--username=
username
Устанавливает имя пользователя базы данных суперпользователя. По умолчанию это имя пользователя операционной системы, запускающего
initdb
. На самом деле, имя суперпользователя неважно, и этот параметр позволяет использовать привычное имяqhb
, если имя пользователя операционной системы отличается. -
-W
--pwprompt
Заставляет
initdb
запросить пароль, предназначенный для суперпользователя базы данных. Если вы не планируете использовать аутентификацию по паролю, это не важно. В противном случае вы не сможете использовать аутентификацию по паролю, пока не настроите пароль. -
-X
directory
--waldir=
directory
Этот параметр указывает каталог, в котором должен храниться WAL.
-
--wal-segsize=
size
Устанавливает размер сегмента WAL в мегабайтах, то есть размер каждого отдельного файла в журнале WAL. По умолчанию составляет 16 мегабайт. Значение должно быть степенью 2 от 1 до 1024 (мегабайт). Этот параметр может быть установлен только во время инициализации и не может быть изменен.
Этот пареметр может быть полезно настроить для контроля степени гранулярности и архивации журнала WAL. Кроме того, в базах данных с большим объемом WAL большое количество файлов WAL в каталоге может стать проблемой производительности и управления. Увеличение размера файла WAL приведет к уменьшению количества файлов WAL.
Другие, менее часто используемые параметры также доступны:
-
-d
--debug
Выводит отладочные и другие сообщения загрузчика, представляющие наименьший интерес. Загрузчик - это программа, которую
initdb
использует для создания таблиц каталога. С этим параметром генерируется большое количество чрезвычайно скучных сообщений. -
-L
directory
Указывает, где
initdb
должен искать входные файлы для инициализации кластера базы данных. Обычно в этом нет необходимости. В случае необходмости, вам будет предложено указать их местоположение явно. -
-n
--no-clean
По умолчанию, если ошибка помешала создать кластер базы данных,
initdb
удаляет все файлы, которые он создал. Этот параметр запрещает удаление файлов в цеялх отладки.
Другие опции:
-
-V
--version
Показать версию
initdb
и выйти. -
-?
--help
Показать справку об аргументах командной строки
initdb
и выйти.
Окружение
PGDATA
- Указывает каталог, в котором должен храниться кластер базы данных; может быть переопределено с помощью опции -D.
PG_COLOR
- Указывает, использовать ли цвета в диагностических сообщениях. Возможные значения always, auto, never.
TZ
- Указывает часовой пояс по умолчанию для созданного кластера базы данных. Значением должно быть полное имя часового пояса (см. раздел Часовые пояса).
Эта утилита, как и большинство других утилит QHB, также использует переменные окружения, поддерживаемые libpq.
Примечания
initdb
также может быть вызван через qhb_ctl initdb
.