Есть ли проблемы с резервным копированием базы данных из SQL Server 2008 и последующим ее импортом в SQL Server 2005? Я обновился до SQL Server 2008, но 2008 кажется слишком проблематичным, поэтому теперь я хочу перейти на более раннюю версию. Есть ли проблемы при этом?
Понижение версии SQL Server 2008 до SQL Server 2005.
Ответы (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, так как это не поддерживается корпорацией Майкрософт. Чтобы узнать больше, почему вы не можете восстановить базу данных с более высокой версии на более низкую, прочитайте следующее статья. Если вы хотите понизить версию базы данных, используйте службы SQL Server Integration Services. Пример понижения версии базы данных SQL Server 2008 до SQL Server 2005 приведен в следующей статье< /а>сильный>.