Назад | Перейти на главную страницу

Как лучше всего обновить SQL 7 до SQL 2008?

Я обновляю старый веб-сайт и перемещаю все на новые серверы и последние версии программного обеспечения.

В рамках этого обновления мне нужно переместить базу данных с сервера Win2000 с MS-SQL 7 на новый 64-битный сервер Win2008 с MS-SQL 2008.

Я пытался сделать резервную копию базы данных и восстановить ее во время предыдущего тестового запуска, и SQL 2008 не восстанавливает резервные копии базы данных из версии 7.

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

В противном случае я мог бы попытаться установить SQL 2000 или SQL 2005 на новый ящик и восстановить его - тогда либо:

ИЛИ

Это производственная система, поэтому передача данных приведет к отключению системы на некоторое время, но я бы хотел свести это к минимуму.

Как лучше всего подойти к этому обновлению? Есть ли подводные камни, на которые следует обратить внимание? Должен ли я использовать способ BCP или промежуточную версию db?

Если вы хотите выполнить обновление, пройдите через SQL 2000 или SQL 2005, а затем до SQL 2008. Существует множество документации о том, как это сделать. Прочтите перед тем, как начать. Шутки в сторону.

Ваш метод передачи структур и данных также является вариантом, но может вызвать проблемы. Сделал бы метод апгрейда. Лично я бы сделал это через SQL 2005, а затем до 2008 года.

Вы не можете выполнить обновление с SQL Server 7 до SQL Server 2008 напрямую. В этом документе перечислены возможные поддерживаемые варианты. [http://msdn.microsoft.com/en-us/library/ms143393.aspx]

Лучше всего перейти с SQL Server 7 на SQL Server 2000 и с SQL Server 2000 на SQL Server 2008. И не делайте слишком много прыжков, чем необходимо. Это лучший вариант для получения достоверной информации. http://www.microsoft.com/downloads/details.aspx?FamilyID=66d3e6f5-6902-4fdd-af75-9975aea5bea7&displaylang=en

После обновления

  1. Будьте готовы к некоторым проблемам с производительностью, поскольку оптимизатор запросов написан с нуля, и вы получите совершенно другие планы, и вы будете в поисках переписывания кода. Не ожидайте, что переход на SQL Server 2008 решит проблемы (по крайней мере) вначале.
  2. Не забудьте перестроить все индексы или обновить статистику с помощью полного сканирования
  3. Запустите DBCC UPDATEUSAGE, и это поможет системным представлениям (DMV) исправить количество строк.
  4. ALTER DATABASE SET PAGE_VERIFY CHECKSUM, и это поможет вам обнаружить повреждение ввода-вывода на ранней стадии. В идеале вы хотите установить эту опцию перед выполнением перестроения индексов.

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

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

Если вы все же выбираете подход BCP, основанный на копировании структуры и данных, убедитесь, что вы правильно установили уровень совместимости целевой базы данных, чтобы уменьшить проблемы из-за изменений в самом SQL. Видеть http://msdn.microsoft.com/en-us/library/ms178653(SQL.90).aspx для получения более подробной информации об этих различиях.

Даже при соответствующем установленном уровне совместимости вы должны запланировать полный регрессионный тест любого приложения, использующего базу данных, так как все еще могут быть небольшие различия, когда ваш код полагается на поведение «undefined», которое было постоянным в SQL7, но не гарантированно будет так в дальнейшем. редакции.