У нас на сервере есть пара баз данных.
Мы хотели бы обновить эти базы данных до sql 2008.
Есть ли вероятность, что некоторые функции приложения не будут работать в 2008 году, которые работали в 2005 году?
Мне сказали, что sql 2008 на 100% обратно совместим с 2005.
Ни один выпуск SQL не является на 100% обратно совместимым. В каждом выпуске есть хорошо документированный список устаревших и прекращенных функций, и SQL Server 2008 не исключение. Список опубликован на Обратная совместимость ядра СУБД SQL Server. Он содержит список функций, которые больше не поддерживаются в SQL 2008, например:
Кроме того, ни одна из функций SQL Server никогда не прекращается без предупреждения. Все функции, которые не поддерживаются в SQL 2008, были включены в список устаревших функций в SLQ 2005. Вы можете использовать SQL Profiler для мониторинга своего приложения SQL 2005 и отслеживания событий:
Первое событие будет срабатывать каждый раз, когда ваше приложение использует функцию из списка «заблокированных». Второе событие срабатывает, когда вы используете функцию, поддержка которой будет прекращена в следующем выпуске.
Наконец, есть счетчик производительности SQL для устаревших функций, см. Какие устаревшие функции я использую?:
select instance_name as [Deprecated Feature]
, cntr_value as [Frequency Used]
from sys.dm_os_performance_counters
where object_name = 'SQLServer:Deprecated Features'
and cntr_value > 0
order by cntr_value desc
Среди всей доступной документации и инфраструктуры для отслеживания устаревших функций у вас есть множество средств, чтобы выяснить, использует ли ваше приложение какие-либо прекращенные функции.
При этом, если вы не используете возможности темных веков SQL Server 6.0. ваше приложение, скорее всего, будет работать без изменений на SQL Server 2008. Существует множество причин для обновления, в первую очередь я всегда цитирую сжатие страницы, что буквально дает большой прирост производительности при бесплатной цене (я преувеличиваю для драматического эффекта, но лишь незначительно).
Вы должны пойти дальше и обновить, но сделайте это с умом:
Поэтому в зависимости от того, насколько сложны ваши данные, вы хотите применить все, некоторые или ничего из вышеперечисленного. Я могу сказать, что если бы вы были в лодке «все», вы, вероятно, не задали бы вопрос для начала;) некоторые Приведенный выше совет относится к вам.
Мы не можем сказать вам, что ваш приложения сделают.
Я думаю, что лучше всего иметь второй сервер, на котором работает SQL Server 2008, перенести на него базы данных (возможно, по одной, медленно), а в случае возникновения проблем переключиться обратно на сервер SQL Server 2005.
Для этого действительно требуется два сервера (физический или виртуальный), но в любом случае вы получите отличную возможность восстановления.
Один хороший тест - запустить советник по обновлению Microsoft SQL Server 2008. Советчик по обновлению Microsoft SQL Server 2008 анализирует экземпляры SQL Server 2000 и SQL Server 2005 при подготовке к обновлению до SQL Server 2008. Советчик по обновлению выявляет изменения функций и конфигурации, которые могут повлиять на обновление, и предоставляет ссылки на документацию, описывающую каждую выявленную проблему и как это решить.
Вы можете скачать его бесплатно здесь: http://www.microsoft.com/downloads/details.aspx?FamilyID=f5a6c5e9-4cd9-4e42-a21c-7291e7f0f852&displaylang=en
Вы можете запустить это в производственной среде, но, как было сказано выше, всегда лучше всего использовать тестовую среду.