MSSQL разница между базами данных - PullRequest
0 голосов
/ 15 октября 2019
  • У нас есть веб-приложение, которое подключено к серверу MS SQL. В базе данных (назовем это Prod-database) мы храним конфигурацию нашего приложения (некоторые таблицы с правами доступа и т. Д.) И информацию о наших клиентах. В течение дня мы получаем новых клиентов и заказы.

  • Основная идея - обновить наше приложение до следующего патча. Процесс обновления (с тестированием) занимает около 12 часов. Проблема в том, что мы не хотим терять данные о клиентах в течение «дня обновления»

  • Поэтому мы решили, что не будем ничего делать с Prod-database в течение дня. Это будет работать как обычно.

Это процесс обновления (приложение Productive работает):

  1. В начале «дня обновления» мы создадим другую базу данных, используя резервную копию базы данных Prod, давайтеНазовите это Test-Database.
  2. Мы развертываем второе приложение, используя Test-Database.
  3. Мы обновляем Test-Database
  4. В течение дня мы тестируем новый патч
  5. После успешного тестирования мынеобходимо обновить разницу (информация о клиентах) между Test-Database и Prod-database
  6. Резервное копирование Test-database
  7. Восстановление Prod-базы данных из резервной копии Test-database
  8. Имы обновляемся

И главный вопрос: как правильно передать разницу? учитывая, что данные в базе данных Prod можно обновлять и вставлять, а не удалять.

  • Использование для новых данных: Выберите * ОТ [База данных Prod]. [Заказ] INTO Test-Database. [Заказ]Где CreatedOn = [CurrentDate]
  • Использование для измененных данных: обновление [Test-Database.]. [Order] SET [Test-Database]. [Order]. [AnyColumn] = [Prod-database]. [Order]. [AnyColumn] FROM [Prod-database]. [Order] Где [Prod-database]. [Order] .Id = [Test-Database]. [Order] .Id AND [Prod-database]. [Order].ModifiedOn = [CurrentDate]

Или есть какой-то другой, более эффективный способ, может быть, репликация или использование снимков. Не могли бы вы объяснить, как это сделать? Буду признателен за любую помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...