Утилита migrate-cache-configuration.sh#

В дистрибутив DataGrid входит консольная утилита, предназначенная для миграции конфигураций кешей на кластер DataGrid — Cache Configurations Migration Tool. Утилита сравнивает текущую конфигурацию кешей кластера с новой, создает недостающие кеши, индексы и поля.

Утилита Cache Configurations Migration Tool поддерживает Spring XML-конфигурацию кешей и предоставляет функциональности:

  • создание новых кешей;

  • создание новых таблиц;

  • создание полей в таблицах;

  • удаление полей в таблицах;

  • создание новых индексов.

Сборка утилиты#

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

mvn clean install -Dmaven.test.skip=true

Результат сборки — архив target/ignite-migrate-cache-configuration.zip.

Конфигурация утилиты#

Перед запуском конфигурации утилиты:

  1. Разместите скрипт mirgate-cache-configuration.sh в каталоге IGNITE_HOME/bin/migrate-cache-configuration.sh.

  2. Убедитесь в том, что в classpath на всех узлах кластера присутствует каталог libs/ignite-migrate-cache-configuration.

Утилита использует IgniteLogger из конфигурации клиентского узла для логирования и логируется в отдельный файл как отдельное приложение migrate-cache-configuration.

Использование утилиты#

Синтаксис команды:

migrate-cache-configuration.sh <Путь к XML-конфигурации клиентского узла> <Путь к XML-конфигурации кешей> [--migrate] [--help]

Запуск без ключей выводит информацию об изменениях режиме «read-only».

Описание параметров:

  • Ignite Cfg Path — путь к XML-конфигурации клиентского узла;

  • Caches Cfg Path — путь к XML-конфигурации кешей.

Описание ключей:

  • --help — вывод справочной информации;

  • --migrate — запуск для миграции конфигурации кешей на кластер DataGrid.

Вывод утилиты Cache Configurations Migrate Tool содержит информацию:

  • конфигурацию кластера до вызова утилиты;

  • вычисленные изменения;

  • произведенные действия;

  • конфигурацию кластера после вызова утилиты.

Пример вывода утилиты#

Вывод утилиты при выполнении команды миграции migrate-cache-configuration.sh <Путь к XML-конфигурации клиентского узла> <Путь к XML-конфигурации кешей> [--migrate]:

XML#
...
Cluster info before migration:
...
Cache configurations changes:
New caches:
[cacheName=new-cache1]
[cacheName=new-cache2]
Table changes [cacheName=test-static-cache, tableName=test-static-cache]
Dropped fields:
[name=ORGID]
New fields:
[name=name, type=java.lang.String]
New indexes:
[indexName=PERSON_NAME_ASC_IDX]
[indexName=PERSON_ID_ASC_NAME_ASC_IDX]
...
New caches created [cacheNames=[new-cache1, new-cache2]]
Executed SQL [sql=ALTER TABLE PERSON DROP COLUMN IF EXISTS "ORGID"]
Executed SQL [sql=ALTER TABLE PERSON ADD COLUMN IF NOT EXISTS "NAME" VARCHAR]
Executed SQL [sql=CREATE INDEX IF NOT EXISTS PERSON_NAME_ASC_IDX ON PERSON ("name" ASC)]
Executed SQL [sql=CREATE INDEX IF NOT EXISTS PERSON_ID_ASC_NAME_ASC_IDX ON PERSON ("id" ASC, "name" ASC)]
...
Cluster info after migration:
...

где:

  • cacheName=new-cache1 — имя/имена новых кешей;

  • tableName=test-static-cache — имена новых таблиц;

  • name=name, type=java.lang.String — имена и типы новых полей в таблицах;

  • indexName=PERSON_NAME_ASC_IDX — имена новых новых индексов.