Назад | Перейти на главную страницу

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

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

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

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

Спасибо

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

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

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

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