Восстановление резервной копии базы данных 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.




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

1232   11  

11 ответов:

нет, невозможно понизить уровень базы данных. 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 цента на различные варианты для завершения этого:

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

Красные Ворота является одним из самых популярных, но есть много других, как ApexSQL Diff,Разница Данных ApexSQL,адепт SQL,компании idera .... Все это премиальные инструменты, но вы можете получить работу в пробном режиме ;)

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

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

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

совместимость

  • генерации скрипта -задачи ->Сформировать Сценарии. Убедитесь, что вы установили нужную целевую версию SQL Server на Установить Параметры Сценариев ->Advanced страница. Вы также можете выбрать, следует ли копировать схему, данные или и то, и другое. Обратите внимание, что в созданном скрипте может потребоваться изменить папку данных для mdf/ldf файлы, если двигаться от не-выразить или наоборот.

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

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

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

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

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

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

enter image description here

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

enter image description here

Да, теперь вы закончили с созданием скрипта со схемой и данными базы данных.

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

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

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

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

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

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

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

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

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

Задачи->Сформировать Сценарии... дополнительно в разделе "типы данных для скрипта" выберите " Shema and data" И попробуйте запустить этот скрипт в вашей нижней версии

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

команда BCP OUT: -

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

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

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

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

Comments

    Ничего не найдено.