mxmoveseg

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

Примечание!
mxmoveseg используется исключительно для перемещения сегментных экземпляров, указанных в таблице gp_segment_configuration, где столбец role (текущая роль) имеет значение m (mirror). Он не зависит от значения в столбце preferred_role (предпочитаемая роль).

1 Описание

  • Функциональность
    • Инструмент mxmoveseg поддерживает миграцию любого экземпляра базы данных, в данный момент выполняющего роль Mirror/Standby, на другой сервер.
  • Сценарии использования
    • Текущий кластер работает, но дисбаланс нагрузки влияет на производительность и стабильность. Переместите зеркальные (Mirror/Standby) сегменты между серверами для выравнивания нагрузки.
    • Сервер вышел из строя. Перенесите сегмент Mirror/Standby на исправный новый сервер, чтобы сохранить доступность кластера.

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

2 Параметры командной строки

В следующей таблице перечислены доступные параметры командной строки:

Параметр Описание
--config Создать конфигурационный файл для зеркального сегмента, который будет перемещён
--plan Сгенерировать план миграции на основе конфигурации
--setup Выполнить план миграции
-h / --help Отобразить справочную информацию

3 Примеры

3.1 Перемещение существующего сегмента на новый сервер

Примечание!
На новом сервере должен быть установлен пакет YMatrix RPM/DEB той же версии, что указано в документации по развёртыванию YMatrix, но не следует инициализировать новый кластер через графический интерфейс.

Примечание!
Новый сервер может содержать кластер YMatrix с другой основной версией (например, YMatrix 4.8 на старом сервере и YMatrix 5.1 на новом сервере).

Соберите информацию о текущем кластере базы данных. Используйте more /etc/matrixdb5/cluster.conf, чтобы просмотреть идентификатор кластера.

[<username>@<master_hostname> ~]$ sudo /opt/ymatrix/matrixdb5/bin/mxctl expand init --cluster-id <clusterid> --unrestrict > /tmp/init

Добавьте новый сервер.

[<username>@<master_hostname> ~]$ cat /tmp/init | sudo /opt/ymatrix/matrixdb5/bin/mxctl expand add --unrestrict --host <newhost> > /tmp/initadd

Проверьте сетевую связь между обнаруженными серверами.

[<username>@<master_hostname> ~]$ cat /tmp/initadd | sudo /opt/ymatrix/matrixdb5/bin/mxctl expand netcheck > /tmp/netcheck

Переключитесь на пользователя mxadmin.

[<username>@<master_hostname> ~]$ sudo su - mxadmin

Создайте конфигурационный файл миграции. Отредактируйте требуемые экземпляры сегментов в соответствии с инструкциями в сгенерированном файле.

$ mxmoveseg config --db-cluster-id <clusterid> --filename /tmp/migrate.cfg

# After creating the configuration file, manually edit the dbid (obtained by running SELECT * FROM gp_segment_configuration; after connecting to the database), hostname, etc., of the segment to be migrated. SPEC: If there is a port conflict between the new and old servers, specify a new port in the configuration file.
$ vim /tmp/migrate.cfg

Создайте план миграции.

$ mxmoveseg plan --init-file /tmp/netcheck --config-file /tmp/migrate.cfg > /tmp/plan

Выполните миграцию.

$ mxmoveseg setup --plan-file /tmp/plan --mode cli

После успешной миграции проверьте состояние перемещённого зеркального сегмента через графический интерфейс: "Cluster Management" → "Cluster Overview" → "Instance View", либо с помощью SQL-запроса SELECT * FROM gp_segment_configuration.

3.2 Перемещение существующего сегмента на старый сервер

Соберите информацию о текущем кластере базы данных. Используйте more /etc/matrixdb5/cluster.conf, чтобы просмотреть идентификатор кластера.

[<username>@<master_hostname> ~]$ sudo /opt/ymatrix/matrixdb5/bin/mxctl expand init --cluster-id <clusterid> --unrestrict > /tmp/init

Проверьте сетевую связь между обнаруженными серверами.

[<username>@<master_hostname> ~]$ cat /tmp/init | sudo /opt/ymatrix/matrixdb5/bin/mxctl expand netcheck > /tmp/netcheck

Переключитесь на пользователя mxadmin.

[<username>@<master_hostname> ~]$ sudo su - mxadmin

Создайте конфигурационный файл миграции. Отредактируйте требуемые экземпляры сегментов в соответствии с инструкциями в сгенерированном файле.

$ mxmoveseg config --db-cluster-id <clusterid> --filename /tmp/migrate.cfg

# After creating the configuration file, manually edit the dbid (obtained by running SELECT * FROM gp_segment_configuration; after connecting to the database), hostname, etc., of the Mirror to be migrated. SPEC: If there is a port conflict between the target and original servers, specify a new port in the configuration file.
$ vim /tmp/migrate.cfg

Создайте план миграции.

$ mxmoveseg plan --init-file /tmp/netcheck --config-file /tmp/migrate.cfg > /tmp/plan

Выполните миграцию.

$ mxmoveseg setup --plan-file /tmp/plan --mode cli

После успешной миграции проверьте состояние перемещённого зеркального сегмента через графический интерфейс: "Cluster Management" → "Cluster Overview" → "Instance View", либо с помощью SQL-запроса SELECT * FROM gp_segment_configuration.