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