Восстановление резервной копии из SQL 2008 в 2008R2 в режиме ожидания

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

Когда мы поговорили с продавцом (который сказал нам, что да, это можно было бы воспроизвести), он показал, что их другие клиенты используют доставку журналов, что является моим текущим направлением. Моя единственная проблема заключается в том, что на сервере работает SQL 2008, а на целевом сервере - 2008R2. Когда я пытаюсь восстановить резервную копию в режиме ожидания, она падает на первый взгляд, но если я использую другой экземпляр той же версии, процесс выполняется без нареканий.

Есть ли способ сделать это с различными версиями SQL Server, или я застрял с текущим расположением?

Спасибо

1 ответ

Решение

Технически, вы могли бы написать скрипт обновления, который копирует новые данные из производства в тестовую систему, но не только потому, что это будет сложно, вы также столкнетесь с проблемами, которые далеко не тривиально решить:

  • Производительность на ОБА БД будет ухудшаться во время копирования.
  • Новые строки легко обнаружить, а удаленные / обновленные строки нет. Если в приложении еще не реализовано какое-либо управление версиями данных, вам придется реализовать его самостоятельно или каждый раз копировать содержимое всех таблиц.
  • Будет сложно поддерживать глобально согласованное состояние в целевой БД, заключая механизм обновления в одну гигантскую транзакцию (с обеих сторон). Я позволю вам угадать, каковы будут последствия этого:P

В качестве альтернативы вы также можете изменить исходное приложение, чтобы оно одновременно выполняло запись в обе БД (я использовал это решение в аналогичном случае).

Честно говоря, я не вижу никакого (разумного) решения, которое было бы проще, чем убедиться, что обе БД используют одну и ту же версию SQL-сервера.

Другие вопросы по тегам