Сине-зеленое развертывание в базе данных SQL Server

#sql-server #sql-server-2014 #database-replication

#sql-сервер #sql-server-2014 #база данных-репликация

Вопрос:

У нас есть база данных SQL Server 2014, и мы планируем выполнить сине-зеленое развертывание в этой базе данных, чтобы сократить время простоя этой базы данных во время окна развертывания.

Существуют ли какие-либо варианты, которые можно использовать для реализации этого решения?

Комментарии:

1. Пожалуйста, опишите, как вы хотите синхронизировать данные между синим и зеленым? Простого способа внести изменения в схему базы данных не существует.

2. @piotr — Я ищу решения для синхронизации данных и схемы для этого. Это был мой вопрос здесь

3. Я не знаю ни о каком общем решении, например, если в новой версии добавляется новая таблица, и вы получаете некоторые данные там, вы не можете просто удалить эту таблицу, поэтому вы не можете выполнить откат без потери данных.

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

Ответ №1:

Я бы посоветовал следовать подходу от BlueGreenDeployment Мартина Фаулера:

При использовании этого метода базы данных часто могут быть проблемой, особенно когда вам нужно изменить схему для поддержки новой версии программного обеспечения. Хитрость заключается в том, чтобы отделить развертывание изменений схемы от обновлений приложения. Итак, сначала примените рефакторинг базы данных, чтобы изменить схему для поддержки как новой, так и старой версии приложения, разверните ее, убедитесь, что все работает нормально, чтобы у вас была точка отката, затем разверните новую версию приложения. (И когда обновление завершится, удалите поддержку базы данных для старой версии.)