2012-05-25 2 views
23

База данных, которая первоначально была из SQL Server 2008, была восстановлена ​​в SQL Server 2012. Была создана резервная копия с SQL Server 2012, и я пытаюсь восстановить ее на локальном SQL Server 2008 Express. Однако я получаю сообщение об ошибке «Указанный откат недействителен» (SQLManagerUI).Как восстановить файл резервной копии базы данных (.bak) из SQL Server 2012 в SQL Server 2008 Express?

Я создал SQL-скрипт с 2012 года и настроил его так, чтобы он сгенерировался с совместимостью с SQL Server 2008. Однако это большой sql-файл размером около 700mb.

Напомню, что раньше я пытался запустить скрипт такого размера на локальном SQLExpress, а также получил ошибку.

Есть ли способ получить «большую» базу данных с SQL Server 2012 в SQL Server 2008 Express?

+4

Вы можете ** никогда не переходить «назад» с точки зрения версий в SQL Server. Если вы создали резервную копию своей базы данных в версии 2012 года, вы не сможете восстановить эту резервную копию до версии 2008 года. Просто не сработает - никаких трюков или путей вокруг него :-( –

+0

О, нет. Спасибо Marc. Я попытаюсь посмотреть, могу ли я запустить сгенерированный sql-скрипт, чтобы получить копию базы данных в моем локальном sql экспресс. – stormwild

+1

См. [Почему SQL Server не может восстановить резервную копию до более ранней версии] (http://www.mytechmantra.com/LearnSQLServer/Unable_to_Restore_Database_From_Backup.html) –

ответ

21

Спасибо Marc и Aaron за предоставленные ответы.

Быстрый ответ: нет, восстановить файл резервной копии с более высокой версии на более низкую версию SQL Server невозможно.

Работать вокруг было бы создание сценариев для создания базы данных.

Вы можете настроить генерацию сценария на более низкую версию.

Для получения дополнительной информации см. Комментарии выше.

Ссылка:

Why an SQL Server Database from a higher version cannot be restored onto a lower version of SQL Server?

Create Database in SQL Server 2012, Script and Use in 2008?

3

Пар вещи, чтобы добавить, что может быть полезным для людей

При сценариях больших баз данных с помощью мастера создания сценариев в SSMS, что очень важно, чтобы проверить выполнение закажите и будьте готовы его вручную организовать. У старых версий SSMS была эта проблема, потому что они (возможно) полагались на sp_depends, у которого есть bug.

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

SQL Server database backup restore on lower version

Одно дело, что ни один из методов не будет ловить это вещь Аарон упоминается об использовании функций, специфичных для более высокой версии.

1

Лучшим вариантом, чем использование мастера сценариев SSMS, является использование аналогичного инструмента, доступного в Codeplex, называемом мастером миграции базы данных SQL - http://sqlazuremw.codeplex.com/releases/view/32334. Вы хотите, чтобы последняя версия v4.x работала с SQL Server 2012.

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

Причина, по которой это лучший вариант, чем мастер сценариев SSMS, заключается в том, что он использует BCP для передачи данных, а не TSQL, и поэтому намного эффективнее.

Смежные вопросы