Восстановление резервной копии базы данных SQL Server в нижней версии

Как восстановить файл резервной копии базы данных SQL Server более высокой версии на SQL Server более низкой версии?

Используя SQL Server 2008 R2 (10.50.1600), я создал файл резервной копии, и теперь я хочу восстановить его на своем живом сервере SQL Server 2008 (10.00.1600).

Когда я пытался восстановить резервную копию на SQL Server 2008, она выдает ошибку, т.е. Restore Failed, потому что:

Резервное копирование базы данных на сервере с версией 10.50.1600. Эта версия несовместима с этим сервером, на котором запущена версия 10.00.1600.

Как восстановить файл резервной копии на этом сервере?

Ответ 1

Нет, невозможно понизить базу данных. 10.50.1600 - это версия SQL Server 2008 R2. Абсолютно невозможно восстановить или прикрепить эту базу данных к экземпляру SQL Server 2008, который вы пытаетесь восстановить (10.00.1600 - это SQL Server 2008). Возможны следующие варианты:

  • обновить этот экземпляр до SQL Server 2008 R2 или
  • восстановить резервную копию, имеющуюся на экземпляре SQL Server 2008 R2, экспортировать все данные и импортировать их в базу данных SQL Server 2008.

Ответ 2

Вы можете использовать функциональные возможности Экспорт данных-уровня, который генерирует файл .bacpac, содержащий схему и данные базы данных.

На целевом сервере вы можете использовать опцию Импорт параметров уровня данных, которая создает и заполняет новую базу данных из предварительно созданного файла .bacpac

Если вы хотите просто передать схему базы данных, вы можете использовать Извлечь приложение уровня данных для создания файла и Развернуть приложение уровня данных для развертывания созданной схемы базы данных.

Я пробовал этот процесс в разных версиях SQL Server с SQL 2014 на SQL 2012 и с SQL 2014 на SQL 2008R2 и работал хорошо.

Ответ 3

Не обязательно будет работать

Буду работать

  • Генерация скриптов - Задачи → Генерация скриптов. Убедитесь, что вы задали нужную целевую версию SQL Server на странице "Задать параметры сценариев → Дополнительно". Вы также можете выбрать, копировать схему, данные или и то, и другое. Обратите внимание, что в сгенерированном скрипте вам может потребоваться изменить папку DATA для файлов mdf/ldf при переходе с неэкспресса на экспресс или наоборот.

  • Я думаю, что Microsoft SQL Server Publishing Services - поставляется с SQL Server 2005 и выше. Загрузите последнюю версию здесь. Предварительные условия: sqlncli.msi/sqlncli_x64.msi/sqlncli_ia64.msi, SQLServer2005_XMO.msi/SQLServer2005_XMO_x64.msi/SQLServer2005_XMO_ia64.msi (скачать здесь).

Ответ 4

Вот мои 2 цента на различные варианты для этого:

Сторонние инструменты. Вероятно, самый простой способ выполнить эту работу - создать пустую базу данных на более низкой версии, а затем использовать сторонние инструменты для чтения резервной копии и синхронизации новой недавно созданной базы данных с резервное копирование.

Red gate является одним из самых популярных, но есть много других, таких как ApexSQL Diff, ApexSQL Data Diff, Adept SQL, Idera.... Все это премиальные инструменты, но вы можете выполнить работу в пробном режиме;)

Создание сценариев: как уже упоминалось, вы всегда можете структурировать и использовать script структуру и данные с помощью SSMS, но вам нужно принять во внимание порядок выполнения. По умолчанию объектные скрипты не упорядочены правильно, и вам придется позаботиться о зависимостях. Это может быть проблемой, если база данных большая и имеет много объектов.

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

Ответ 5

Вы не можете восстановить базу данных (или прикрепить), созданную в верхней версии, в более низкую версию. Единственный способ создать script для всех объектов и использовать script для создания базы данных.

введите описание изображения здесь

выберите "Схема и данные" - если вы хотите взять как вещи в резервном файле script
выберите Только схема - если требуется только схема.

введите описание изображения здесь

Да, теперь вы сделали с Create script с помощью схемы и данных базы данных.

Ответ 6

Другой способ сделать это - использовать функцию "Копировать базу данных":

Найти, щелкнув правой кнопкой мыши исходную базу данных > "Задачи" > "Копировать базу данных".

Вы можете скопировать базу данных в более низкую версию экземпляра SQL Server. Это работало для меня с SQL Server 2008 R2 (SP1) - 10.50.2789.0 до Microsoft SQL Server 2008 (SP2) - 10.0.3798.0

Ответ 7

Вы можете попробовать это.

  • Создайте базу данных на SQL Server 2008.
  • Использование функции импорта данных импортирует данные из SQL Server R2 (или любой более высокой версии).
  • используйте "RedGate SQLCompare" для синхронизации script.

Ответ 8

Это не очень, но я так и сделал, что у вас установлен этот параметр для установки SQL 2008 R2.

1) Щелкните правой кнопкой мыши базу данных в SQL Server 2008 R2 "Задачи".. "Сгенерируйте скрипты" в мастере, сначала выберите всю базу данных и объекты. На шаге "Установить параметры сценария" вы должны увидеть кнопку "Дополнительно", выберите это и убедитесь, что вы выбрали "Script для версии сервера" = SQL Server 2008 ", а не версии R2. Это важный шаг, потому что "импорт данных" сам по себе не включает в себя все первичные ключи, констрианты и любые другие объекты, такие как хранимые процедуры ".

2) Запустите SQL script, сгенерированный на новом экземпляре установки или базы данных SQL Express или SQL Server 2008, используя окно запроса или откройте сохраненный .sql script и выполните, и вы увидите новую базу данных.

3) Теперь щелкните правой кнопкой мыши по новой базе данных и выберите "Задачи".. "Импорт данных.." выберите источник как базу данных R2 и пункт назначения в качестве новой базы данных. "Скопируйте данные из одной или нескольких таблиц или представлений", установите верхний флажок, чтобы выбрать все таблицы, а затем следующий шаг, запустите пакет, и вы должны иметь все в старой версии. Это должно работать и для возврата к версии 2005 года. Надеюсь, это поможет кому-то.

Ответ 9

Задача- > Сгенерировать скрипты... в разделе Дополнительно в разделе "Типы данных для script" выберите "Шема и данные" И попробуйте запустить этот script в своей нижней версии

Ответ 10

вы можете использовать BCP для небольших таблиц.

Команда BCP OUT: -

BCP "SELECT *  FROM [Dinesh].[dbo].[Invoices]" QUERYOUT C:\av\Invoices1.txt -S MC0XENTC -T -c -r c:\error.csv

Команда BCP IN: - Создание структуры таблицы для Invoicescopy1.

BCP [Dinesh].[dbo].[Invoicescopy1] IN C:\av\Invoices.txt -S MC0XENTC -T -c

Ответ 11

Я понимаю, что это старый пост, но людям может быть полезно знать, что мастер миграции Azure (доступный на Codeplex - не может ссылаться на то, что Codeplex на данный момент я набираю это) будет делать это легко.