Привет, Я DocuDroid!
Оценка ИИ поиска
Спасибо за оценку нашего ИИ поиска!
Мы будем признательны, если вы поделитесь своими впечатлениями, чтобы мы могли улучшить наш ИИ поиск для вас и других читателей.
GitHub

gpinitsystem

Инициализирует СУБД Greengage, используя параметры конфигурации, указанные в файле.

Синтаксис

gpinitsystem -c <cluster_configuration_file>
             [ -h <hostfile_gpinitsystem> ]
             [ -B <parallel_processes> ]
             [ -p <postgresql_conf_param_file> ]
             [ -s <standby_master_host>
                 [ -P <standby_master_port> ]
                 [ -S <standby_master_datadir>
                   | --standby_datadir=<standby_master_datadir> ] ]
             [ --ignore-warnings ]
             [ -m <number> | --max_connections=<number> ]
             [ -b <size> | --shared_buffers=<size> ]
             [ -n <locale> | --locale=<locale> ]
             [ --lc-collate=<locale> ]
             [ --lc-ctype=<locale> ]
             [ --lc-messages=<locale> ]
             [ --lc-monetary=<locale> ]
             [ --lc-numeric=<locale> ]
             [ --lc-time=<locale> ]
             [ -e <password> | --su_password=<password> ]
             [ --mirror-mode={group|spread} ]
             [ -a ] [ -q ]
             [ -l <logfile_directory> ]
             [ -D ]
             [ -I <input_configuration_file> ]
             [ -O <output_configuration_file> ]

gpinitsystem -v | --version

gpinitsystem -? | --help

Описание

Утилита gpinitsystem создает экземпляр СУБД Greengage или записывает входной файл конфигурации, используя значения из файла конфигурации кластера и любые параметры командной строки, которые вы укажете. См. раздел Формат файла конфигурации инициализации для получения подробной информации о формате файла конфигурации. Перед запуском убедитесь, что программное обеспечение Greengage DB установлено на всех хостах кластера.

При использовании параметра -O <output_configuration_file> утилита gpinitsystem записывает всю конфигурацию в указанный файл. Этот файл можно затем использовать с параметром -I для создания нового кластера или повторного развертывания существующего кластера.

В СУБД Greengage каждый экземпляр базы данных (мастер и все сегменты) должен быть инициализирован на всех хостах так, чтобы они могли работать совместно как единая СУБД. Утилита gpinitsystem выполняет инициализацию мастера Greengage DB и всех экземпляров сегментов, а также настройку системы в целом.

Перед запуском gpinitsystem необходимо установить переменную окружения GPHOME, указывающую на каталог установки Greengage DB на мастер-хосте, и выполнить обмен SSH-ключами между всеми хостами с помощью gpssh-exkeys.

gpinitsystem выполняет следующие задачи:

  • Проверяет корректность параметров в файле конфигурации.

  • Проверяет возможность подключения к каждому хосту. Если какой-либо адрес недоступен, утилита завершит работу.

  • Проверяет параметры локализации.

  • Отображает конфигурацию, которая будет использована, и запрашивает подтверждение пользователя.

  • Инициализирует экземпляр мастера.

  • Инициализирует экземпляр резервного мастера (если указан).

  • Инициализирует экземпляры основных сегментов.

  • Инициализирует экземпляры зеркальных сегментов (если настроено зеркалирование).

  • Настраивает СУБД Greengage и проверяет наличие ошибок.

  • Запускает СУБД Greengage.

ПРИМЕЧАНИЕ

gpinitsystem использует подключения Secure Shell (SSH) между системами для выполнения своих задач. В крупных или облачных инсталляциях Greengage DB, а также при большом количестве сегментов на хосте, утилита может превысить максимальный лимит неаутентифицированных SSH-подключений. Рассмотрите возможность увеличения этого лимита, обновив параметры конфигурации SSH MaxStartups и MaxSessions. Дополнительную информацию о параметрах конфигурации SSH см. в документации SSH для вашего дистрибутива Linux.

Параметры

-a

Не запрашивает подтверждение у пользователя.

-B <parallel_processes>

Количество сегментов для одновременного создания. Если параметр не указан, утилита запускает до 4 параллельных процессов.

-c <cluster_configuration_file>

(Обязательно) Полный путь и имя файла конфигурации, содержащего все параметры для настройки и инициализации новой СУБД Greengage. См. раздел Формат файла конфигурации инициализации для описания формата файла. Необходимо указать либо параметр -c <cluster_configuration_file>, либо -I <input_configuration_file>.

-D

Устанавливает отладочный уровень логирования (debug).

-h <hostfile_gpinitsystem>

(Опционально) Полный путь и имя файла, содержащего адреса хостов сегментов. Если параметр не указан, можно задать хост-файл через параметр MACHINE_LIST_FILE в файле <cluster_configuration_file>.

-I <input_configuration_file>

Полный путь и имя входного файла конфигурации, который определяет хост-системы Greengage DB, мастер-экземпляр и сегмент-экземпляры на хостах, используя параметры QD_PRIMARY_ARRAY, PRIMARY_ARRAY и MIRROR_ARRAY. Входной файл конфигурации обычно создается с помощью gpinitsystem с параметром -O <output_configuration_file>. Отредактируйте эти параметры для инициализации нового кластера или повторного создания кластера из сохраненной конфигурации. Вы должны указать либо параметр -c <cluster_configuration_file>, либо -I <input_configuration_file> для gpinitsystem.

--ignore-warnings

Определяет поведение gpinitsystem при появлении предупреждений или ошибок. По умолчанию утилита возвращает 0, если инициализация завершается без предупреждений. Если возникают только предупреждения, система инициализируется и остается работоспособной.

С этим параметром gpinitsystem также возвращает 0 при наличии предупреждений и ненулевое значение в случае критической ошибки.

Если параметр не указан, утилита возвращает 1, если инициализация завершилась с предупреждениями, и 2 или больше в случае критической ошибки.

См. лог-файл gpinitsystem для подробной информации о предупреждениях и ошибках.

-n <locale> | --locale=<locale>

Устанавливает локаль по умолчанию для Greengage DB. Если параметр не указан, используется локаль en_US.utf8. Идентификатор локали состоит из кода языка и кода региона, а при необходимости — также кодировки символов. Например, sv_SE — шведский язык в Швеции, en_US — американский английский, fr_CA — канадский французский. Если необходимо указать кодировку, формат будет таким: en_US.UTF-8 (локаль и кодировка символов). На большинстве систем команда locale покажет текущие настройки локали, а locale -a — список всех доступных локалей.

--lc-collate=<locale>

Аналогичен параметру --locale, но задает локаль для сортировки данных (collation). Порядок сортировки нельзя изменить после инициализации Greengage DB, поэтому важно выбрать локаль сортировки, совместимую с используемой кодировкой. Существует специальное имя сортировки C или POSIX (сортировка по байтам вместо словарного порядка). Сортировка C совместима с любой кодировкой символов.

--lc-ctype=<locale>

Аналогичен параметру --locale, но задает локаль для классификации символов (определяет, какие последовательности символов допустимы и как они интерпретируются). После инициализации Greengage DB изменить эту локаль нельзя, поэтому важно выбрать совместимую с данными локаль.

--lc-messages=<locale>

Аналогичен параметру --locale, но задает локаль для сообщений Greengage DB. На данный момент Greengage DB поддерживает только английский язык сообщений, поэтому изменение этого параметра не влияет на вывод.

--lc-monetary=<locale>

Аналогичен параметру --locale, но задает локаль для форматирования денежных величин.

--lc-numeric=<locale>

Аналогичен параметру --locale, но задает локаль для форматирования чисел.

--lc-time=<locale>

Аналогичен параметру --locale, но задает локаль для форматирования даты и времени.

-l <logfile_directory>

Каталог для записи лог-файла. По умолчанию ~/gpAdminLogs.

-m <number> | --max_connections=<number>

Задает максимальное количество клиентских подключений к мастеру. По умолчанию 250.

-O <output_configuration_file>

Опциональный параметр, используемый при инициализации нового кластера. Записывает информацию из cluster_configuration_file (передаваемую с -c) в указанный output_configuration_file. Этот файл определяет экземпляры Greengage DB через параметры QD_PRIMARY_ARRAY, PRIMARY_ARRAY и MIRROR_ARRAY. Файл может служить шаблоном для параметра -I input_configuration_file. См. раздел Примеры для получения дополнительной информации.

-p <postgresql_conf_param_file>

(Опционально) Полный путь к файлу с параметрами конфигурации postgresql.conf, которые следует применить к Greengage DB. Эти настройки будут использованы при инициализации экземпляров мастера и сегментов. Параметры также можно изменить позднее с помощью утилиты gpconfig.

-q

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

-b <size> | --shared_buffers=<size>

Задает объем памяти, который экземпляр сервера Greengage DB использует для буферов разделяемой памяти. Размер можно указать в килобайтах (kB), мегабайтах (MB) или гигабайтах (GB). По умолчанию 125MB.

-s <standby_master_host>

(Опционально) Если вы хотите настроить резервный мастер, укажите имя хоста с помощью этого параметра. Программное обеспечение Greengage DB должно быть установлено и настроено на этом хосте.

-P <standby_master_port>

Используется вместе с -s для указания порта резервного мастера. По умолчанию совпадает с портом основного мастера. Если основной и резервный мастер находятся на одном хосте, необходимо указать другой порт для резервного мастера. Программное обеспечение Greengage DB должно быть установлено и настроено на этом хосте.

-S <standby_master_datadir> | --standby_datadir=<standby_master_datadir>

Если вы настраиваете резервный мастер с параметром -s, используйте этот параметр для указания каталога данных резервного мастера. Если основной и резервный мастер находятся на одном хосте, каждому экземпляру необходимо выделить отдельный каталог данных.

-e <password> | --su_password=<password>

Указывает пароль для учетной записи суперпользователя Greengage DB (например, gpadmin). Если параметр не указан, используется пароль по умолчанию gparray. Позднее пароль можно изменить с помощью команды ALTER ROLE.

Рекомендуемые практики безопасности:

  • Не используйте пароль по умолчанию в production-средах.

  • Сразу после установки измените пароль.

--mirror-mode={group|spread}

Определяет стратегию размещения экземпляров зеркальных сегментов на сегмент-хостах. По умолчанию group размещает зеркальные сегменты для всех основных сегментов хоста на одном альтернативном хосте. spread распределяет зеркальные сегменты для основных сегментов на хосте по разным хостам в массиве Greengage DB. Распределение spread разрешено только если количество хостов превышает количество сегментов на хосте. См. статью Настройка зеркалирования в кластере для подробной информации о стратегиях зеркалирования Greengage DB.

-v | --version

Выводит версию утилиты gpinitsystem и завершает выполнение.

-? | --help

Отображает справку по аргументам командной строки gpinitsystem и завершает выполнение.

Формат файла конфигурации инициализации

Утилита gpinitsystem требует наличия файла конфигурации кластера с заданными параметрами. Пример такого файла можно найти в $GPHOME/docs/cli_help/gpconfigs/gpinitsystem_config.

Чтобы избежать конфликтов портов между Greengage DB и другими приложениями, номера портов Greengage DB не должны попадать в диапазон, заданный параметром операционной системы net.ipv4.ip_local_port_range. Например, если net.ipv4.ip_local_port_range = 12000 65535, можно использовать следующие базовые номера портов для Greengage DB:

PORT_BASE = 10000
MIRROR_PORT_BASE = 10500
ARRAY_NAME

(Обязательно) Имя настраиваемого кластера. Вы можете выбрать любое имя. Если имя содержит пробелы, заключите его в кавычки.

MACHINE_LIST_FILE

(Опционально) Используется вместо параметра -h. Указывает файл со списком адресов сегмент-хостов, входящих в состав СУБД Greengage. Мастер-хост, с которого запускается утилита, включать в файл не нужно. Если сегмент-хосты имеют несколько сетевых интерфейсов, файл должен содержать все адреса для каждого хоста. Укажите абсолютный путь к файлу.

SEG_PREFIX

(Обязательно) Префикс для именования каталогов данных на экземплярах мастера и сегментов. Соглашение об именовании в Greengage DB: SEG_PREFIX плюс номер, где мастер всегда -1, а сегменты нумеруются начиная с 0. Например, для префикса gpseg каталог данных мастера будет gpseg-1, а сегменты — gpseg0, gpseg1, gpseg2, gpseg3 и так далее.

PORT_BASE

(Обязательно) Базовый номер порта, начиная с которого будут назначаться порты основных сегментов. Первый основной сегмент на хосте получает порт PORT_BASE, а каждый следующий основной сегмент на том же хосте получает порт на единицу больше. Допустимый диапазон значений: 1 — 65535.

DATA_DIRECTORY

(Обязательно) Указывает пути для хранения данных, где утилита создаст каталоги данных основных сегментов. Количество указанных каталогов определяет число основных сегментов, создаваемых на физическом хосте. Если для хоста указано несколько адресов, сегменты распределяются равномерно между ними. Вы можете повторять один и тот же каталог, если хотите, чтобы несколько сегментов использовали одно и то же место хранения. Пользователь, запускающий gpinitsystem (например, gpadmin), должен иметь права на запись в эти каталоги.

Пример: создание шести основных сегментов на хосте:

declare -a DATA_DIRECTORY=(/data1/primary /data1/primary /data1/primary /data2/primary /data2/primary /data2/primary)
MASTER_HOSTNAME

(Обязательно) Имя хоста, на котором будет размещен экземпляр мастера. Имя должно точно соответствовать имени хоста (проверьте командой hostname).

MASTER_DIRECTORY

(Обязательно) Путь для создания каталога данных мастера. Убедитесь, что пользователь, запускающий gpinitsystem (например, gpadmin), имеет права на запись в этот каталог.

MASTER_PORT

(Обязательно) Порт, который будет использоваться экземпляром мастера. Клиенты и пользовательские подключения будут обращаться к СУБД Greengage через этот порт.

TRUSTED_SHELL

(Обязательно) Оболочка для выполнения команд на удаленных хостах. Допустимое значение — ssh. Перед запуском gpinitsystem необходимо настроить беспарольные SSH-подключения между мастер-хостом и сегмент-хостами (например, с помощью gpssh-exkeys).

CHECK_POINT_SEGMENTS

(Обязательно) Максимальное количество сегментов WAL (каждый сегмент обычно 16 МБ) между автоматическими контрольными точками. Это значение устанавливает параметр checkpoint_segments в файле postgresql.conf для каждого сегмента СУБД Greengage.

ENCODING

(Обязательно) Кодировка символов, используемая СУБД. Она должна быть совместима с выбранными настройками локали (--locale), особенно --lc-collate и --lc-ctype. Greengage DB поддерживает те же кодировки, что и PostgreSQL.

DATABASE_NAME

(Опционально) Имя базы данных Greengage DB, которая будет создана после инициализации кластера. Вы всегда можете создать базу данных позже с помощью команды CREATE DATABASE или утилиты createdb.

MIRROR_PORT_BASE

(Опционально) Базовый номер порта для зеркальных сегментов. Первый зеркальный сегмент на хосте будет использовать этот порт, а последующие — увеличенные на единицу порты. Допустимые значения: от 1 до 65535; значения не должны пересекаться с портами, вычисляемыми на основе параметра PORT_BASE.

MIRROR_DATA_DIRECTORY

(Опционально) Каталоги для хранения данных зеркальных сегментов. Количество каталогов должно соответствовать количеству основных сегментов, указанному в DATA_DIRECTORY. Пользователь, запускающий gpinitsystem (например, gpadmin), должен иметь права на запись в эти каталоги. Например:

declare -a MIRROR_DATA_DIRECTORY=(/data1/mirror /data1/mirror /data1/mirror /data2/mirror /data2/mirror /data2/mirror)
QD_PRIMARY_ARRAY, PRIMARY_ARRAY, MIRROR_ARRAY

Обязательные параметры при использовании input_configuration_file с параметром -I. Эти параметры указывают мастер-хост Greengage DB и хосты основных и зеркальных сегментов соответственно. Во время инициализации нового кластера используйте параметр -O <output_configuration_file>, чтобы заполнить QD_PRIMARY_ARRAY, PRIMARY_ARRAY и MIRROR_ARRAY.

Чтобы инициализировать новый кластер или повторно создать кластер из сохраненной конфигурации, отредактируйте эти значения во входном файле конфигурации, используемом с параметром -I <input_configuration_file>. Используйте один из следующих форматов для указания информации о хосте:

<hostname>~<address>~<port>~<data_directory>/<seg_prefix><segment_id>~<dbid>~<content_id>

или

<host>~<port>~<data_directory>/<seg_prefix><segment_id>~<dbid>~<content_id>

Первый формат заполняет поля hostname и address в таблице gp_segment_configuration значениями имени хоста и IP-адреса из входного файла конфигурации. Второй формат присваивает полям hostname и address одинаковое значение, взятое из <host>.

Мастер Greengage DB всегда использует идентификатор сегмента и идентификатор контента -1. Например, значения seg_prefix<segment_id> и dbid для QD_PRIMARY_ARRAY используют -1 для обозначения мастер-экземпляра:

QD_PRIMARY_ARRAY=mdw~mdw~5432~/gpdata/master/gpseg-1~1~-1
declare -a PRIMARY_ARRAY=(
sdw1~sdw1~40000~/gpdata/data1/gpseg0~2~0
sdw1~sdw1~40001~/gpdata/data2/gpseg1~3~1
sdw2~sdw2~40000~/gpdata/data1/gpseg2~4~2
sdw2~sdw2~40001~/gpdata/data2/gpseg3~5~3
)
declare -a MIRROR_ARRAY=(
sdw2~sdw2~50000~/gpdata/mirror1/gpseg0~6~0
sdw2~sdw2~50001~/gpdata/mirror2/gpseg1~7~1
sdw1~sdw1~50000~/gpdata/mirror1/gpseg2~8~2
sdw1~sdw1~50001~/gpdata/mirror2/gpseg3~9~3
)

Чтобы повторно создать кластер, используя существующую конфигурацию СУБД Greengage, отредактируйте идентификаторы сегментов и контента так, чтобы они соответствовали текущей системе.

HEAP_CHECKSUM

(Опционально) Указывает, включены ли контрольные суммы для heap-данных. Когда параметр включен, контрольные суммы вычисляются для данных в heap-таблицах во всех базах, что позволяет Greengage DB обнаруживать повреждения, возникающие на уровне ввода-вывода. Этот параметр задается при инициализации кластера и не может быть изменен впоследствии.

HEAP_CHECKSUM включен по умолчанию, и его отключение крайне не рекомендуется. Если отключить этот параметр, повреждения данных в хранилище могут остаться незамеченными, что существенно осложнит восстановление.

Чтобы проверить, включены ли контрольные суммы для heap-данных в вашей СУБД, получите значение параметра конфигурации сервера data_checksums с помощью утилиты gpconfig:

$ gpconfig -s data_checksums
HBA_HOSTNAMES

(Опционально) Управляет тем, будет ли gpinitsystem использовать IP-адреса или имена хостов при обновлении файла pg_hba.conf для указания адресов, которые могут подключаться к Greengage DB. По умолчанию установлено 0, и утилита использует IP-адреса. Если вы хотите, чтобы при инициализации СУБД Greengage использовались имена хостов вместо IP-адресов, укажите HBA_HOSTNAMES=1.

Указание хостов с использованием имен хостов или IP-адресов

При инициализации СУБД Greengage с помощью gpinitsystem сегмент-хосты можно указывать либо по их именам, либо по IP-адресам. Например, это можно сделать в файле, переданном с помощью параметра -h:

  • Если указывается имя хоста, разрешение имени в IP-адрес должно выполняться локально для обеспечения безопасности. Например, используйте записи в локальном файле /etc/hosts для сопоставления имени хоста с IP-адресом. Разрешение имени через внешние сервисы, такие как публичные DNS-серверы, не допускается. Перед изменением сопоставления имени хоста с другим IP-адресом необходимо остановить СУБД Greengage.

  • Если указывается IP-адрес, он не должен изменяться после начальной конфигурации. Когда включено зеркалирование сегментов, репликация с основного на зеркальный сегмент не будет работать при изменении IP-адреса. Поэтому рекомендуется использовать имена хостов при инициализации, если нет строгой необходимости в IP-адресах.

При инициализации gpinitsystem использует информацию о хостах для заполнения таблицы gp_segment_configuration и добавления хостов в файл pg_hba.conf. По умолчанию в файл добавляется IP-адрес хоста. Чтобы добавить имена хостов, установите параметр конфигурации HBA_HOSTNAMES=1.

Greengage DB использует значение поля address в таблице gp_segment_configuration для поиска хост-систем, участвующих в интерконнекте Greengage DB между мастером и сегментами, а также для других внутренних операций.

Примеры

Инициализация СУБД Greengage с предоставлением файла конфигурации кластера и файла адресов сегмент-хостов, а также настройка распределенного зеркалирования (--mirror-mode=spread):

$ gpinitsystem -c init_config -h hostfile_segment_hosts --mirror-mode=spread

Инициализация СУБД с установкой пароля суперпользователя:

$ gpinitsystem -c init_config -h hostfile_segment_hosts --su_password=mypassword

Инициализация СУБД с резервным мастер-хостом:

$ gpinitsystem -c init_config -h hostfile_segment_hosts -s smdw

Инициализация СУБД и запись конфигурации в выходной файл, например cluster_init.config:

$ gpinitsystem -c init_config -h hostfile_segment_hosts -O cluster_init.config

Выходной файл использует параметры QD_PRIMARY_ARRAY и PRIMARY_ARRAY для определения мастера и сегмент-хостов:

ARRAY_NAME="Greengage DB cluster"
TRUSTED_SHELL=ssh
CHECK_POINT_SEGMENTS=8
ENCODING=UNICODE
SEG_PREFIX=gpseg
HEAP_CHECKSUM=on
HBA_HOSTNAMES=0
QD_PRIMARY_ARRAY=mdw~mdw~5432~/data1/master/gpseg-1~1~-1
declare -a PRIMARY_ARRAY=(
sdw1~sdw1~10000~/data1/primary/gpseg0~2~0
sdw1~sdw1~10001~/data1/primary/gpseg1~3~1
sdw2~sdw2~10000~/data1/primary/gpseg2~4~2
sdw2~sdw2~10001~/data1/primary/gpseg3~5~3
)
declare -a MIRROR_ARRAY=(
sdw2~sdw2~10500~/data1/mirror/gpseg0~6~0
sdw2~sdw2~10501~/data1/mirror/gpseg1~7~1
sdw1~sdw1~10500~/data1/mirror/gpseg2~8~2
sdw1~sdw1~10501~/data1/mirror/gpseg3~9~3
)

Инициализация Greengage DB с использованием входного файла конфигурации (файл, который определяет кластер), используя параметры QD_PRIMARY_ARRAY и PRIMARY_ARRAY:

$ gpinitsystem -I cluster_init.config

Следующий пример использует хост-систему, настроенную с несколькими сетевыми интерфейсами (NIC). Если хост-системы имеют несколько сетевых интерфейсов, можно инициализировать СУБД так, чтобы каждый интерфейс использовался как отдельный хост. Вы должны убедиться, что хост-системы настроены с достаточными ресурсами для поддержки всех экземпляров сегментов, добавляемых к хосту. Кроме того, если включено зеркалирование, вы должны убедиться, что конфигурация СУБД поддерживает переключение при отказе, если хост-система выходит из строя. Для получения информации о схемах зеркалирования Greengage DB см. статью Настройка зеркалирования в кластере.

В этой конфигурации мастер и сегмент используют хост-систему gp6m с двумя интерфейсами: gp6m-1 и gp6m-2. QD_PRIMARY_ARRAY использует gp6m-1 для мастера. PRIMARY_ARRAY и MIRROR_ARRAY используют gp6m-2 для определения экземпляра основного и зеркального сегмента:

QD_PRIMARY_ARRAY=gp6m~gp6m-1~5432~/data/master/gpseg-1~1~-1
declare -a PRIMARY_ARRAY=(
gp6m~gp6m-2~40000~/data/data1/gpseg0~2~0
gp6s~gp6s~40000~/data/data1/gpseg1~3~1
)
declare -a MIRROR_ARRAY=(
gp6s~gp6s~50000~/data/mirror1/gpseg0~4~0
gp6m~gp6m-2~50000~/data/mirror1/gpseg1~5~1
)

См. также