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

gpaddmirrors

Добавляет зеркальные сегменты в кластер Greengage DB, изначально настроенный без зеркалирования.

Синтаксис

gpaddmirrors [ -p <port_offset> ]
             [ -m <datadir_config_file> [ -a ] ]
             [ -s ]
             [ -d <master_data_directory> ]
             [ -b <segment_batch_size> ]
             [ -B <batch_size> ]
             [ -l <logfile_directory> ]
             [ -v ]
             [ --hba-hostnames ]

gpaddmirrors -i <mirror_config_file>
             [ -a ]
             [ -d <master_data_directory> ]
             [ -b <segment_batch_size> ]
             [ -B <batch_size> ]
             [ -l <logfile_directory> ]
             [ -v ]

gpaddmirrors -o <output_sample_mirror_config>
             [ -s ]
             [ -m <datadir_config_file> ]

gpaddmirrors -?

gpaddmirrors --version

Описание

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

ВАЖНО

Во время процесса репликации кластер Greengage DB должен быть свободен от активных нагрузок — рабочие запросы выполняться не должны.

По умолчанию утилита запрашивает пути в файловой системе, где будут созданы каталоги данных зеркальных сегментов. Чтобы пропустить эти запросы, можно указать файл с путями с помощью параметра -m.

Расположения и порты зеркальных сегментов должны отличаться от расположений и портов основных сегментов.

Утилита создает уникальный каталог данных для каждого экземпляра зеркального сегмента по указанному пути, используя предопределенное соглашение об именовании. Число указанных путей для зеркальных сегментов должно совпадать с числом путей основных сегментов. Можно использовать одно и то же имя каталога несколько раз, чтобы разместить все каталоги данных зеркал в одном месте, или указать отдельное расположение для каждого зеркала. Укажите абсолютный путь, например:

Enter mirror segment data directory location 1 of 2 > /data1/mirror
Enter mirror segment data directory location 2 of 2 > /data1/mirror

или:

Enter mirror segment data directory location 1 of 2 > /data1/mirror1
Enter mirror segment data directory location 2 of 2 > /data1/mirror2

Также можно запустить утилиту gpaddmirrors, указав подробный файл конфигурации с помощью параметра -i. Это полезно, если вы хотите разместить зеркальные сегменты на наборе хостов, полностью отличающемся от хостов основных сегментов. Формат файла конфигурации зеркал:

<contentID>|<address>|<port>|<data_dir>

где contentID — идентификатор контента сегмента, address — имя хоста или IP-адрес сегмент-хоста, port — порт для связи, а data_dir — каталог данных экземпляра сегмента. Например:

0|sdw5|11000|/data1/mirror/gpseg0
1|sdw5|11001|/data1/mirror/gpseg1

Системная таблица gp_segment_configuration может использоваться для определения текущей конфигурации основных сегментов при планировании размещения зеркальных сегментов. Например, выполните следующий запрос:

SELECT dbid, content, address as host_address, port, datadir
FROM gp_segment_configuration
ORDER BY dbid;

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

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

ПРИМЕЧАНИЕ

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

Параметры

-a

Запуск в неинтерактивном режиме — не запрашивать ввод данных. При использовании этого параметра необходимо указать файл конфигурации с помощью -m или -i.

-b <segment_batch_size>

Максимальное количество сегментов на хост для параллельной обработки. Допустимые значения: от 1 до 128. Если параметр не указан, утилита будет обрабатывать до 64 сегментов параллельно на каждом хосте.

-B <batch_size>

Количество хостов для параллельной обработки. Если параметр не указан, утилита будет обрабатывать до 16 хостов параллельно. Допустимые значения: от 1 до 64.

-d <master_data_directory>

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

--hba-hostnames

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

-i <mirror_config_file>

Файл конфигурации, содержащий по одной строке на каждый создаваемый зеркальный сегмент. Для каждого основного сегмента в системе должен быть указан один экземпляр зеркального сегмента. Формат файла соответствует атрибутам таблицы gp_segment_configuration:

<contentID>|<address>|<port>|<data_dir>

contentID — идентификатор контента сегмента, address — имя хоста или IP-адрес сегмент-хоста, port — порт для связи, а data_dir — каталог данных экземпляра сегмента. Для деталей использования имени хоста или IP-адреса см. раздел Указание хостов с использованием имен хостов или IP-адресов. Дополнительно см. раздел Использование хостов с несколькими сетевыми картами.

-l <logfile_directory>

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

-m <datadir_config_file>

Файл конфигурации, содержащий список путей в файловой системе, где будут созданы каталоги данных зеркальных сегментов. Если файл не указан, утилита запросит эти пути у пользователя. Каждая строка файла должна содержать одно расположение каталога данных зеркала. Например:

/data1/mirror1
/data1/mirror2
/data1/mirror3
/data1/mirror4
-o <output_sample_mirror_config>

Если вы не уверены, как составить файл конфигурации зеркал для параметра -i, можно запустить gpaddmirrors с этим параметром, чтобы сгенерировать пример файла на основе конфигурации основных сегментов. Утилита запросит пути к каталогам данных зеркальных сегментов (если они не указаны в файле через -m). Полученный файл можно отредактировать, например, чтобы изменить хосты на альтернативные для зеркальных сегментов, если это необходимо.

-p <port_offset>

(Опционально) Число, используемое для вычисления портов баз данных зеркальных сегментов. Смещение по умолчанию — 1000. Порты зеркальных сегментов вычисляются по формуле:

primary_port + offset = mirror_database_port

Например, если основные сегменты используют порты от 10000 до 10003, а для -p задано значение 5000, зеркальные сегменты будут работать на портах от 15000 до 15003.

-s

Распределяет зеркальные сегменты по доступным хостам. По умолчанию зеркала сегментов одного хоста размещаются вместе на альтернативном хосте относительно своих основных сегментов. При включенном распределении каждое зеркало размещается на отдельном хосте в кластере Greengage DB. Распределение возможно только при наличии достаточного числа хостов в кластере (число хостов должно превышать количество сегментов на каждом хосте).

-v

Включает подробное логирование.

--version

Отображает версию утилиты.

-?

Показывает справку по параметрам.

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

При настройке зеркалирования с помощью gpaddmirrors -i для значения address можно указать либо имя хоста, либо IP-адрес.

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

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

При добавлении хостов в конфигурацию зеркалирования gpaddmirrors заполняет таблицу gp_segment_configuration информацией о зеркальных сегментах. Greengage DB использует адреса из этой таблицы для организации интерконнекта между мастером и сегментами, между самими сегментами, а также для другой внутренней связи.

Использование хостов с несколькими сетевыми картами

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

Ниже показан пример конфигурации сегментов для системы Greengage DB. Сегмент-хост gp6m имеет два сетевых интерфейса — gp6m-1 и gp6m-2; система использует gp6m-1 для мастера и gp6m-2 для экземпляров сегментов.

SELECT content, role, port, hostname, address
FROM gp_segment_configuration;

Результат:

 content | role | port  | hostname | address
---------+------+-------+----------+----------
      -1 | p    |  5432 | gp6m     | gp6m-1
       0 | p    | 40000 | gp6m     | gp6m-2
       0 | m    | 50000 | gp6s     | gp6s
       1 | p    | 40000 | gp6s     | gp6s
       1 | m    | 50000 | gp6m     | gp6m-2
(5 rows)

Примеры

Добавление зеркалирования в существующую систему Greengage DB с использованием того же набора хостов, что и для основных сегментов. Порты зеркал вычисляются добавлением 5000 к текущим номерам портов основных сегментов:

$ gpaddmirrors -p 5000

Генерация примера файла конфигурации зеркал с параметром -o для последующего использования с gpaddmirrors -i:

$ gpaddmirrors -o mirror_conf_file

Добавление зеркалирования в существующую систему Greengage DB с использованием другого набора хостов, отличного от набора основных сегментов:

$ gpaddmirrors -i mirror_config_file

Пример содержимого файла mirror_config_file:

0|sdw5|11000|/data1/mirror/gpseg0
1|sdw5|11001|/data1/mirror/gpseg1
2|sdw6|11000|/data1/mirror/gpseg2
3|sdw6|11001|/data1/mirror/gpseg3
4|sdw7|11000|/data1/mirror/gpseg4
5|sdw7|11001|/data1/mirror/gpseg5
6|sdw8|11000|/data1/mirror/gpseg6
7|sdw8|11001|/data1/mirror/gpseg7

См. также