Как восстановить файл резервной копии базы данных 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.
Как восстановить файл резервной копии на этом сервере?
sql-server
Oreo
источник
источник
Ответы:
Нет, невозможно понизить версию базы данных. 10.50.1600 - это версия SQL Server 2008 R2 . Нет абсолютно никакого способа восстановить или присоединить эту базу данных к экземпляру SQL Server 2008, на котором вы пытаетесь восстановить (10.00.1600 - это SQL Server 2008). Ваши единственные варианты:
источник
Вы можете использовать функциональность, которая называется Export Data-Tier Application, которая генерирует
.bacpac
файл, состоящий из схемы базы данных и данных.На конечном сервере вы можете использовать опцию Импортировать приложение уровня данных, которая создает и заполняет новую базу данных из предварительно созданного
.bacpac
файла.Если вы хотите просто передать схему базы данных, вы можете использовать Извлечь приложение уровня данных для создания файла и Развернуть приложение уровня данных для развертывания созданной схемы базы данных.
Я пробовал этот процесс на разных версиях SQL Server от SQL 2014 до SQL 2012 и от SQL 2014 до SQL 2008R2 и работал хорошо.
источник
sqlpackage.exe
командной строки. Google для больше.Не обязательно будет работать
Резервное копирование / восстановление - не будет работать, если целью является более ранняя версия MS SQL.
Копировать базу данных - не будет работать, если целью является SQL Server Express: «Сервер назначения не может быть экземпляром SQL Server 2005 или более поздней версии Express».
Импорт данных - не будет копировать схему.
Буду работать
Генерация скриптов - Задачи -> Генерация скриптов . Убедитесь, что вы задали нужную целевую версию 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
(скачать здесь ).источник
Вот мои 2 цента на разные варианты для этого:
Сторонние инструменты . Вероятно, самый простой способ выполнить задание - создать пустую базу данных в более низкой версии, а затем использовать сторонние инструменты для чтения резервной копии и синхронизации новой только что созданной базы данных с резервной копией.
Red gate - один из самых популярных, но есть много других, таких как ApexSQL Diff , ApexSQL Data Diff , Adept SQL , Idera …. Все это инструменты премиум-класса, но вы можете выполнить работу в пробном режиме;)
Создание сценариев : как уже упоминалось, вы всегда можете создать структуру сценариев и данные, используя SSMS, но вы должны принять во внимание порядок выполнения. По умолчанию объектные сценарии не упорядочены правильно, и вам придется позаботиться о зависимостях. Это может быть проблемой, если база данных большая и содержит много объектов.
Мастер импорта и экспорта : это не идеальное решение, так как он восстанавливает не все объекты, а только таблицы данных, но вы можете рассмотреть его для быстрого и грязного исправления, когда это необходимо.
источник
Вы не можете восстановить базу данных (или присоединить), созданную в верхней версии, в более низкую версию. Единственный способ - создать сценарий для всех объектов и использовать сценарий для создания базы данных.
Да, теперь вы покончили с созданием сценария со схемой и данными базы данных.
источник
Еще один способ сделать это - использовать функцию «Копировать базу данных»:
Найдите правой кнопкой мыши исходную базу данных> «Задачи»> «Копировать базу данных».
Вы можете скопировать базу данных в более низкую версию экземпляра SQL Server. Это работало для меня от SQL Server 2008 R2 (SP1) - 10.50.2789.0 до Microsoft SQL Server 2008 (SP2) - 10.0.3798.0
источник
Вы можете попробовать это.
источник
Перейдите в Task-> Generate Scripts ...
В разделе « Дополнительно» в разделе «Типы данных для сценария» выберите
"Schema and data"
и попробуйте запустить этот сценарий в более низкой версии.источник
Это не красиво, но я так и сделал, если у вас установлена эта опция при установке SQL 2008 R2.
1) Щелкните правой кнопкой мыши базу данных в SQL Server 2008 R2 «Задачи». «Создание сценариев» в мастере, выберите всю базу данных и объекты на первом этапе. На шаге «Настройка параметров сценариев» вы должны увидеть кнопку «Дополнительно», выберите ее и убедитесь, что вы выбрали «Сценарий для версии сервера» = SQL Server 2008 «не версия R2. Это важный шаг, поскольку« импорт данных » сам по себе не несет с собой все первичные ключи, константы и любые другие объекты, такие как хранимые процедуры. "
2) Запустите сценарий SQL, созданный на новом экземпляре установки или базы данных SQL Express или SQL Server 2008, используя окно запроса, или откройте сохраненный сценарий .sql и выполните его; вы увидите новую базу данных.
3) Теперь щелкните правой кнопкой мыши новую базу данных и выберите «Задачи» .. «Импортировать данные ...», выберите источник в качестве базы данных R2 и пункт назначения в качестве новой базы данных. «Скопировать данные из одной или нескольких таблиц или представлений», установите верхний флажок, чтобы выбрать все таблицы, а затем на следующем шаге запустите пакет, и у вас должно быть все в более старой версии. Это должно работать и для возврата к версии 2005 года. Надеюсь, это поможет кому-то.
источник
Вы можете использовать BCP для небольших столов.
Команда BCP OUT: -
Команда BCP IN: - Создать структуру таблицы для Invoicescopy1.
источник
Я ценю, что это старый пост, но людям может быть полезно знать, что мастер миграции Azure (доступный в Codeplex - не может ссылаться на него, поскольку Codeplex в данный момент набираю это) будет делать это легко.
источник
Вам нужно будет использовать мастера импорта / экспорта в SSMS для переноса всего
С помощью резервного копирования / восстановления или отсоединения / подключения невозможно выполнить «даунгрейд». Поэтому вам нужно сделать следующее:
источник
Вы можете создать сценарий из меню задач
Для подробного ознакомления
Как перенести базу данных SQL Server на более низкую версию
источник