Подтвердить что ты не робот

Возможно ли восстановить резервную копию Sql Server 2008 в SQL Server 2005

Можно ли восстановить резервную копию базы данных SQL Server 2008 на экземпляр SQL Server 2005?

Мне нужно работать над примером приложения, для которого резервная копия базы данных находится в SQL Server 2008. Но я не смогу установить 2008. Так можно восстановить это резервное копирование в 2005 году?

4b9b3361

Ответ 1

Нет. Невозможно восстановить базу данных из резервной копии более новой версии.

Если вы мертвы на нем, я думаю, что ваш лучший вариант - это скрыть базу данных в обозревателе объектов в SQL 2008, щелкните правой кнопкой мыши, выберите "Задачи- > Сгенерировать скрипты". В диалоговом окне параметров отображается все, включая Script Данные.

И убедитесь, что вы выбрали "Script для SQL 2005".

Источник

При импорте объектов на ваш целевой сервер, если объекты большие, вы можете обнаружить, что вы не можете открыть файл SQL через Management Studio (с абсолютно бесполезной ошибкой "Операция не может быть выполнена", не менее), Это хорошо, просто загрузите файл через sqlcmd.

Ответ 2

Во всех ответах отсутствует одна важная вещь, и именно тот факт, что Generate Scripts в SSMS не упорядочивает скрипты правильно.

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

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

Мой опыт в том, что его наиболее удобно использовать сторонние инструменты, которые могут читать резервные копии и генерировать скрипты в правильном порядке. Я использую ApexSQL Diff и Data Diff от ApexSQL, но вы не можете ошибиться с любым популярным поставщиком.

Ответ 3

Нет, не напрямую. Резервные копии баз данных SQL Server 2008 не имеют обратной совместимости с SQL Server 2005. Однако с SQL Server 2008 Management Studio вы можете script данные и схемы в режиме SQL Server 2005. Этот article описывает процесс подробно.

Ответ 4

Да возможно

Использование экспорта в SQL Server 2008. Перейдите к All ProgramsMicrosoft SQL Server 2008Import and Export Data

  • Затем откроется окно SQL Server Import AND Export Wizard. Нажмите Next

  • Выберите источник данных (в вашем случае из SQL Server 2008). Выберите пункт назначения (в вашем случае с SQL Server 2005).

  • Выберите Copy data from one or more tables or view

  • Выберите исходные таблицы и таблицы назначения

  • Нажмите Next и Finish

.

Ответ 5

У меня была эта проблема в течение долгого времени.

Вы не можете восстановить резервные копии SQL2008 на экземпляр SQL2005.

И для меня обходные пути, такие как импорт/экспорт wizzard или script базы данных из SQL2008 с использованием сценариев генерации с параметром для SQL2005, не будут работать. Просто мои базы данных перекрестно ссылаются друг на друга внутри их представлений и хранимых процедур или udfs. Они не доходят до моей ответственности полностью, поэтому я не могу консолидировать их в 1 базу данных. Они представляют собой набор из 6 dbs, которые ссылаются друг на друга непосредственно внутри их представлений и хранимых процедур. Когда я переношу их из одного экземпляра SQL2005 на другой, я обычно делаю полное резервное копирование/восстановление.

Если бы я был в script, даже с параметром зависимостей с ошибками, я получал бы ошибки во время повторного создания, так как db1 не найдет представления внутри db3, потому что так случилось, что я сначала выполнил создание db1 script. Если я попробовал db3, сначала получаю аналогичные исключения.

Единственный способ для script их, чтобы у меня не было таких зависимостей, заключается в том, чтобы определить последовательность, которая работает, и script их частично таким образом: скажем: db1_tables, за которым следует db2_tables, за которым следует db2_views по db1_views, sp, udfs и т.д.

У меня есть такая последовательность. И когда мне нужно создать новый набор таких 6 dbs, я выполнил меньшие частичные скрипты в последовательности.

Это объясняет, почему сценарии генерации с зависимостями и с данными и для сценариев версий SQL2005 просто не работают для меня.

Импорт/экспорт wizzard лучше в моем случае, потому что он скопирует таблицы, а затем вы все равно должны script просмотреть все виды, sp, udfs и т.д.

Мне действительно нужен инструмент преобразования для файлов резервных копий SQL2008, чтобы преобразовать их в формат SQL2005. Тогда моя проблема исчезнет. Или какой-то инструмент, который позволит восстановить файлы с полным резервным копированием SQL2008, не задавая мне слишком много вопросов.

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

Ответ 6

Вы можете использовать DBSave, это отличный бесплатный инструмент для резервного копирования и восстановления ms sql-сервера на разных машинах. Это просто настроить и использовать.

Ответ 7

Нет, вы не можете, но такие инструменты, как red gate SQL Compare/Data Compare могут напрямую считывать файлы резервных копий и передавать информацию в живую базу данных, имея в виду любой синтаксис или настройки, которые не совместимы с SS2005

Ответ 8

Не повезло с материалами "Импорт/Экспорт" (неудача экспорта плоских файлов при импорте требовала сопоставления символов набора символов [даже при том, что одна и та же кодировка использовалась повсюду] и/или проблемы усечения [хотя источник и получатель имели ту же структуру]), и не повезло с использованием опции "генерировать скрипты" предложенной Garry Shutler (она сгенерировала script с синтаксическими ошибками), я был finally можно скопировать большую таблицу, которую я хотел скопировать с 2008 по 2005 год, используя утилиту SQL Server bcp. Так что другой вариант для этой ситуации, хотя для всей базы данных это будет таблица за таблицей и, вероятно, не поможет с представлениями и т.д.

Используемые шаги:

  • На исходном сервере используйте Script Таблица As... CREATE ", чтобы получить структуру, запустите ее на целевом сервере.

  • На целевом сервере создайте файл формата bcp, используя новую таблицу:

    bcp database.owner.table format nul -f table.fmt -n

    (Если вы не используете Windows auth, вам могут понадобиться опции -U и -P, чтобы указать имя пользователя и пароль.)

  • Скопируйте этот файл формата на исходный сервер (при необходимости).

  • Экспортируйте данные в файл на исходном сервере:

    bcp database.owner.table out table.dat -f table.fmt

    (Опять же, возможно, с -U и -P.)

  • Скопируйте файл данных на целевой сервер (при необходимости).

  • Импортируйте данные на целевой сервер:

    bcp database.owner.table in table.dat -f table.fmt

    (Опять же, возможно, с -U и -P.)

В надежде, что это окажется полезным для кого-то другого.