Перейти к основному содержимому

Понижение версии Selena

В этой теме описывается, как понизить версию кластера Selena.

Если после обновления кластера Selena возникает исключение, вы можете понизить его версию до более ранней для быстрого восстановления кластера.

Обзор

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

Пути понижения версии

  • Для понижения версии патча

    Вы можете понизить версию кластера Selena между версиями патчей, например, с v2.2.11 напрямую до v2.2.6.

  • Для понижения минорной версии

    По соображениям совместимости и безопасности мы настоятельно рекомендуем понижать версию кластера Selena последовательно от одной минорной версии к другой. Например, чтобы понизить кластер Selena v2.5 до v2.2, необходимо понижать его в следующем порядке: v2.5.x --> v2.4.x --> v2.3.x --> v2.2.x.

    warning

    После обновления Selena до v3.3 НЕ понижайте версию напрямую до v3.2.0, v3.2.1 или v3.2.2, иначе это приведет к потере метаданных. Необходимо понизить кластер до v3.2.3 или более поздней версии, чтобы предотвратить эту проблему.

  • Для понижения мажорной версии

    Вы можете понизить кластер Selena v3.0 только до v2.5.3 и более поздних версий.

    • Selena обновляет библиотеку BDB в v3.0. Однако BDBJE нельзя откатить. После понижения версии необходимо использовать библиотеку BDB версии v3.0.
    • Новая система привилегий RBAC используется по умолчанию после обновления до v3.0. После понижения версии можно использовать только систему привилегий RBAC.

Процедура понижения версии

Процедура понижения версии Selena выполняется в обратном порядке по отношению к процедуре обновления. Поэтому необходимо сначала понизить версию FE, а затем BE и CN. Понижение версии в неправильном порядке может привести к несовместимости между FE и BE/CN и, следовательно, к сбою сервиса. Для узлов FE необходимо сначала понизить версию всех Follower FE узлов перед понижением версии Leader FE узла.

Перед началом

Во время подготовки необходимо выполнить настройку совместимости, если планируется понижение минорной или мажорной версии. Также необходимо выполнить тест доступности понижения версии на одном из FE или BE перед понижением версии всех узлов в кластере.

Выполнение настройки совместимости

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

  • Универсальная настройка совместимости

Перед понижением версии кластера Selena необходимо отключить клонирование tablet. Этот шаг можно пропустить, если балансировщик уже отключен.

ADMIN SET FRONTEND CONFIG ("tablet_sched_max_scheduling_tablets" = "0");
ADMIN SET FRONTEND CONFIG ("tablet_sched_max_balancing_tablets" = "0");
ADMIN SET FRONTEND CONFIG ("disable_balance"="true");
ADMIN SET FRONTEND CONFIG ("disable_colocate_balance"="true");

После понижения версии можно снова включить клонирование tablet, если статус всех BE узлов станет Alive.

ADMIN SET FRONTEND CONFIG ("tablet_sched_max_scheduling_tablets" = "10000");
ADMIN SET FRONTEND CONFIG ("tablet_sched_max_balancing_tablets" = "500");
ADMIN SET FRONTEND CONFIG ("disable_balance"="false");
ADMIN SET FRONTEND CONFIG ("disable_colocate_balance"="false");
  • Если понижение выполняется с v2.2 и более поздних версий

Установите параметр конфигурации FE ignore_unknown_log_id в true. Поскольку это статический параметр, необходимо изменить его в файле конфигурации FE fe.conf и перезапустить узел, чтобы изменение вступило в силу. После понижения версии и завершения первой контрольной точки можно сбросить его в false и перезапустить узел.

  • Если включен доступ по FQDN

Если включен доступ по FQDN (поддерживается с v2.4) и необходимо понизить версию до версий ранее v2.4, необходимо переключиться на доступ по IP-адресу перед понижением версии. См. Откат FQDN для подробных инструкций.

Понижение версии FE

примечание

Чтобы понизить кластер с v3.3.0 или более поздней версии до v3.2, выполните следующие шаги перед понижением версии:

  1. Убедитесь, что все транзакции ALTER TABLE SCHEMA CHANGE, инициированные в кластере v3.3, либо завершены, либо отменены перед понижением версии.

  2. Очистите всю историю транзакций, выполнив следующую команду:

    ADMIN SET FRONTEND CONFIG ("history_job_keep_max_second" = "0");
  3. Убедитесь, что не осталось исторических записей, выполнив следующую команду:

    SHOW PROC '/jobs/<db>/schema_change';

После настройки совместимости и теста доступности можно понизить версию узлов FE. Необходимо сначала понизить версию Follower FE узлов, а затем Leader FE узла.

  1. Создайте снимок метаданных.

    a. Выполните ALTER SYSTEM CREATE IMAGE для создания снимка метаданных.

    b. Можно проверить, синхронизирован ли файл образа, просмотрев файл журнала fe.log Leader FE. Запись в журнале типа "push image.* from subdir [] to other nodes. totally xx nodes, push successful xx nodes" указывает на то, что файл образа был успешно синхронизирован.

    ВНИМАНИЕ

    Оператор ALTER SYSTEM CREATE IMAGE поддерживается в v2.5.3 и более поздних версиях. В более ранних версиях необходимо создать снимок метаданных путем перезапуска Leader FE.

  2. Перейдите в рабочий каталог узла FE и остановите узел.

    # Замените <fe_dir> на каталог развертывания узла FE.
    cd <fe_dir>/fe
    ./bin/stop_fe.sh
  3. Замените исходные файлы развертывания в каталогах bin, lib и spark-dpp на файлы более ранней версии.

    mv lib lib.bak 
    mv bin bin.bak
    mv spark-dpp spark-dpp.bak
    cp -r /tmp/StarRocks-x.x.x/fe/lib .
    cp -r /tmp/StarRocks-x.x.x/fe/bin .
    cp -r /tmp/StarRocks-x.x.x/fe/spark-dpp .

    ВНИМАНИЕ

    Если понижается версия Selena v3.0 до v2.5, необходимо выполнить следующие шаги после замены файлов развертывания:

    1. Скопируйте файл fe/lib/starrocks-bdb-je-18.3.13.jar из развертывания v3.0 в каталог fe/lib развертывания v2.5.
    2. Удалите файл fe/lib/je-7.*.jar.
  4. Запустите узел FE.

    sh bin/start_fe.sh --daemon
  5. Проверьте, успешно ли запустился узел FE.

    ps aux | grep StarRocksFE
  6. Повторите шаги 2-5 выше для понижения версии других Follower FE узлов, и наконец Leader FE узла.

    ВНИМАНИЕ

    Предположим, вы понизили версию кластера после неудачного обновления и хотите снова обновить кластер, например, 2.5->3.0->2.5->3.0. Чтобы предотвратить сбой обновления метаданных для некоторых Follower FE, повторите шаг 1 для создания нового снимка перед обновлением.

Понижение версии BE

После понижения версии узлов FE можно понизить версию узлов BE в кластере.

  1. Перейдите в рабочий каталог узла BE и остановите узел.

    # Замените <be_dir> на каталог развертывания узла BE.
    cd <be_dir>/be
    ./bin/stop_be.sh
  2. Замените исходные файлы развертывания в каталогах bin и lib на файлы более ранней версии.

    mv lib lib.bak 
    mv bin bin.bak
    cp -r /tmp/StarRocks-x.x.x/be/lib .
    cp -r /tmp/StarRocks-x.x.x/be/bin .
  3. Запустите узел BE.

    sh bin/start_be.sh --daemon
  4. Проверьте, успешно ли запустился узел BE.

    ps aux | grep starrocks_be
  5. Повторите описанные выше процедуры для понижения версии других узлов BE.

Понижение версии CN

  1. Перейдите в рабочий каталог узла CN и корректно остановите узел.

    # Замените <cn_dir> на каталог развертывания узла CN.
    cd <cn_dir>/be
    ./bin/stop_cn.sh --graceful
  2. Замените исходные файлы развертывания в каталогах bin и lib на файлы более ранней версии.

    mv lib lib.bak 
    mv bin bin.bak
    cp -r /tmp/StarRocks-x.x.x/be/lib .
    cp -r /tmp/StarRocks-x.x.x/be/bin .
  3. Запустите узел CN.

    sh bin/start_cn.sh --daemon
  4. Проверьте, успешно ли запустился узел CN.

    ps aux | grep  starrocks_be
  5. Повторите описанные выше процедуры для понижения версии других узлов CN.