Комментарии 6
Добавление нового поля также как и добавление любого другого объекта базы данных — обратно-совместимое изменение и не требует никаких дополнительных шагов в плане реализации zero-downtime deployment.Не факт, если поле имеет нетривиальное значение по умолчанию.
0
А есть ли готовые утилиты, в идеале open source и бесплатные для коммерческого использования, которые могут помочь?
0
Да, можно посмотреть на утилиту pt-online-schema-change. Она позволяет выполнять ALTER TABLE
и другие массивные изменения схемы на лету, это достигается, например, за счёт создания временной таблицы и временных триггеров, которые реплицируют все изменения исходной таблицы во временную. Потом происходит атомарное переименование таблиц. Утилита выполняет всё колдовство сама, на входе только несложные параметры и запрос ALTER TABLE
. Посмотрите документацию.
0
Если в базе несколько терабайт данных то простое добавление или удаление колонки далеко не zero-downtime, база может секунды, минуты и даже больше быть недоступной для записи или даже чтения пока эти операции не завершатся. Ожидал от статьи чего-то интересного, а по факту банальщина. Разочарован.
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Обновление базы данных и zero-downtime deployment