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.

Смотрите также

qhb_ctl, qhb