Top.Mail.Ru
Tarantool » 2.2 » Administration » Обновление
 
Administration / Обновление
Administration / Обновление

Обновление

Обновление

Обновление базы данных Tarantool

Если вы создали базу данных в старой версии Tarantool’а, а потом обновили Tarantool до более свежей версии, вызовите команду box.schema.upgrade(). Она обновляет системные спейсы Tarantool’а так, чтобы они совпадали с текущей установленной версией Tarantool’а.

Например, вот что происходит, если выполнить команду box.schema.upgrade() для базы данных, созданной в Tarantool версии 1.6.4 (показана лишь малая часть выводимых сообщений):

tarantool> box.schema.upgrade()
alter index primary on _space set options to {"unique":true}, parts to [[0,"unsigned"]]
alter space _schema set options to {}
create view _vindex...
grant read access to 'public' role for _vindex view
set schema version to 1.7.0
---
...

Обновление экземпляра Tarantool’а

Tarantool поддерживает обратную совместимость между двумя последовательными версиями. Например, обновление Tarantool 1.6 до 1.7 или Tarantool 1.7 до 2.x не должно вызвать затруднений, тогда как миграции с Tarantool 1.6 сразу на 2.x могут препятствовать несовместимые изменения.

How to upgrade from Tarantool 1.7 to 2.x

  1. Остановите Tarantool-сервер.
  2. Создайте копию всех данных (см. подразделы про горячее резервное копирование в разделе Резервное копирование) и пакета, из которого была установлена текущая (старая) версия (на случай отката).
  3. Обновите Tarantool-сервер. Инструкции по установке доступны на странице загрузок Tarantool’а.
  4. Запустите обновленный Tarantool-сервер с помощью tarantoolctl или systemctl.

Как обновить Tarantool 1.6 до 2.x

The procedure is fully analogous to upgrading from 1.7 to 2.x.

Как обновить Tarantool 1.6 до 1.7

Этот процесс предназначен для обновления индивидуальных экземпляров Tarantool’а с 1.6.х до 1.7.х на боевом сервере. Обратите внимание, что это всегда приводит к некоторому простою. Для обновления без простоев необходимо, чтобы несколько работающих Tarantool-серверов были объединены в репликационный кластер (см. ниже).

Tarantool 1.7 работает с несовместимыми форматами файлов – .snap и .xlog. Файлы Tarantool’а 1.6 поддерживаются при обновлении, но после непродолжительного использования Tarantool’а 1.7 вернуться к 1.6 уже нельзя. Также были переименованы некоторые конфигурационные параметры, но старые параметры еще поддерживаются. Список критических изменений доступен в Примечаниях к версиям Tarantool’а 1.7.

  1. Уточните у разработчиков, необходимо ли обновлять файлы приложения из-за наличия несовместимых изменений (см. Примечания к версии Tarantool’а 1.7). Если да, то создайте резервные копии старых файлов приложения.
  2. Остановите Tarantool-сервер.
  3. Создайте копию всех данных (см. подразделы про горячее резервное копирование в разделе Резервное копирование) и пакета, из которого была установлена текущая (старая) версия (на случай отката).
  4. Обновите Tarantool-сервер. Инструкции по установке доступны на странице загрузок Tarantool’а.
  5. Обновите базу данных Tarantool. Выполните команду box.schema.upgrade(), поместив ее внутрь функции box.once() в файле инициализации Tarantool’а. В результате на этапе запуска Tarantool создаст новые системные спейсы, обновит названия типов данных (например, num -> unsigned, str -> string) и список доступных типов данных в системных спейсах.
  6. При необходимости обновите файлы приложения.
  7. Запустите обновленный Tarantool-сервер с помощью tarantoolctl или systemctl.

Обновление Tarantool’а в репликационном кластере

Tarantool 1.7 может служить репликой для Tarantool’а 1.6 – и наоборот. При установке соединения происходит обсуждение возможностей, и новые для 1.7 репликационные функции не используются при работе с репликами версии 1.6. Такой подход позволяет обновлять кластерные конфигурации.

Этот процесс позволяет осуществить последовательное обновление без простоев и подходит для любой конфигурации кластера: master-master или мастер-реплика.

  1. Обновите Tarantool на всех репликах (или на любом мастере в кластере мастер-мастер). Подробные инструкции доступны в подразделе Обновление экземпляра Tarantool’а.

  2. Проверьте работу реплик:

    1. Запустите Tarantool.
    2. Присоединитесь к мастеру и начните работать, как раньше.

    На мастере установлена старая версия Tarantool’а, которая всегда совместима со следующей мажорной версией.

  3. Обновите мастер. Процесс такой же, как и при обновлении реплики.

  4. Проверьте работу мастера:

    1. Запустите Tarantool в режиме реплики для получения последней версии данных.
    2. Переключитесь в режим мастера.
  5. Обновите базу данных на любом мастере в кластере. Выполните команду box.schema.upgrade(). Это обновит системные спейсы Tarantool’а так, чтобы они совпадали с текущей установленной версией Tarantool’а. Изменения распространятся на другие узлы кластера через обычный механизм репликации.