Понижение версии SQL Server 2008 до SQL Server 2005
Существуют ли проблемы с резервным копированием базы данных из SQL Server 2008 и последующим импортом в SQL Server 2005? Я обновился до SQL Server 2008, но 2008 год кажется слишком проблематичным, поэтому теперь я хочу понизить его. Есть ли проблемы в этом?
4 ответа
Ну, вы не сможете восстановить резервную копию 2008 на сервер SQL 2005.
Самый простой способ сделать это - использовать мастер "Создание сценариев SQL Server" для создания сценария (включая схему и данные), который можно запустить в SQL 2005 для создания базы данных. См. http://www.devx.com/dbzone/Article/40531
Но вернемся к первоначальной проблеме: какие проблемы возникают у вас с SQL 2008?
Другой способ сделать это - подключиться к обоим серверам через проводник объектов и импортировать данные из одного в другой.
Однако при этом некоторые вещи переносятся неправильно. Например, мне пришлось вручную сбросить настройки первичного и внешнего ключа, а также настройки автоинкремента. Это была небольшая цена за то, чтобы заставить все данные работать.
Я бы согласился, в чем проблема? Вы не можете запустить базу данных в режиме совместимости SQL 2005, если это что-то о приложении. Если вам нужно перейти на 2005, вы не можете просто восстановить базу данных с 08 по 05.
Если у вас есть БД размером более 50 МБ или около того, я написал бы схему вашей базы данных, используя мастер создания сценариев, записав все ваши ключи, индексы, триггеры, параметры сортировки и любые полнотекстовые индексы, которые у вас есть, без данных. Только не забудьте проверить скрипт для опции версии sql 2005. Запустите этот скрипт, чтобы создать новую базу данных на вашем сервере SQL 2005.
Если у вас есть триггеры в ваших таблицах, вы можете отключить их все, прежде чем импортировать данные. Эти сценарии сделают это для вас. Они сделают это для вас
-- Disable Triggers
While @i <= @MaxI
Begin
Select @dsql = 'DISABLE Trigger ' + TriggerName + ' ON ' + TableName
From @DisableTriggers
Where MyRowCount = @i
Exec sp_executesql @dsql
Select @i = @i + 1
End
-- Enable Triggers
While @i <= @MaxI
Begin
Select @dsql = 'Enable Trigger ' + TriggerName + ' ON ' + TableName
From @DisableTriggers
Where MyRowCount = @i
Exec sp_executesql @dsql
Select @i = @i + 1
End
Затем используйте мастер импорта / экспорта для импорта данных в вашу базу данных; это гораздо быстрее, чем сценарий из моего сценария.
Нельзя восстановить резервную копию базы данных SQL Server, взятую из SQL Server 2008, и восстановить ее на SQL Server 2005, так как это не поддерживается Microsoft. Чтобы узнать больше, почему вы не можете восстановить базу данных из более ранней версии в более низкую, прочитайте следующую статью. Если вы хотите понизить версию базы данных, то можете использовать SQL Server Integration Services. Пример понижения базы данных SQL Server 2008 до SQL Server 2005 упоминается в следующей статье.