Определение текущей версии Microsoft SQL Server и своевременное его обновление являются критически важными задачами для обеспечения стабильности, безопасности и оптимальной производительности информационных систем, особенно для таких требовательных к ресурсам приложений, как "1С:Предприятие". В данной статье мы подробно рассмотрим, как выяснить версию установленного SQL Server, проанализируем текущую ситуацию с устаревшими версиями и разберем пошаговые методы обновления до актуального состояния, включая установку сервис-паков и полную миграцию на новые версии SQL Server.
Первый и самый важный шаг — это точно определить, какая версия SQL Server у нас установлена. Существует несколько надежных способов получения этой информации.
SELECT @@VERSION:
Это самый простой и распространенный способ. Подключившись к экземпляру SQL Server с помощью SQL Server Management Studio (SSMS) или любого другого инструмента для выполнения SQL-запросов, мы можем выполнить следующую команду:
SELECT @@VERSION;
Этот запрос вернет строку с полной информацией о версии, редакции, разрядности операционной системы и дате сборки. Например, для версии, упомянутой в исходном сообщении, вывод будет выглядеть примерно так:
Microsoft SQL Server 2008 (RTM) - 10.0.1600.22 (X64) Jul 9 2008 14:17:44 Copyright (c) 1988-2008 Microsoft Corporation Enterprise Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1)
Из этой строки мы видим, что перед нами Microsoft SQL Server 2008 (RTM), что означает Release To Manufacturing — первоначальный выпуск без каких-либо установленных пакетов обновлений (Service Packs).
SERVERPROPERTY:
Функция SERVERPROPERTY предоставляет возможность получить различные свойства сервера по отдельности, что очень удобно для скриптов и автоматического сбора информации. Рассмотрим пример получения наиболее важных свойств:
SELECT
SERVERPROPERTY('ProductName') AS ProductName,
SERVERPROPERTY('ProductVersion') AS ProductVersion,
SERVERPROPERTY('ProductLevel') AS ProductLevel,
SERVERPROPERTY('Edition') AS Edition,
SERVERPROPERTY('EngineEdition') AS EngineEdition;
ProductName: Полное имя продукта (например, "Microsoft SQL Server Enterprise Edition").ProductVersion: Номер версии (например, "10.0.1600.22").ProductLevel: Уровень продукта (например, "RTM", "SP1", "SP2", "CU1").Edition: Редакция SQL Server (например, "Enterprise Edition (64-bit)").EngineEdition: Тип движка (например, 3 для Standard/Enterprise/Developer).При подключении к экземпляру сервера в окне "Обозреватель объектов" (Object Explorer) SSMS, версия и редакция SQL Server часто отображаются в скобках рядом с именем сервера. Это быстрый визуальный способ проверки.
В начале каждого файла журнала ошибок SQL Server (обычно расположенных в папке `MSSQL\Log` внутри каталога установки SQL Server) содержится подробная информация о версии, редакции и разрядности сервера. Это может быть полезно, если у нас нет возможности подключиться к серверу напрямую через SSMS.
Как мы выяснили из сообщения 0 и 5, у нас установлен Microsoft SQL Server 2008 (RTM) - 10.0.1600.22. Этот номер сборки четко указывает на то, что это оригинальный выпуск 2008 года, без каких-либо установленных пакетов обновлений (Service Packs) или накопительных обновлений (Cumulative Updates).
Важно понимать, что поддержка SQL Server 2008 давно прекращена. Изначальная дата окончания основной поддержки была 8 июля 2014 года, а расширенной поддержки (Extended Support) — 9 июля 2019 года. Это означает, что для данной версии больше не выпускаются обновления безопасности, исправления ошибок или техническая поддержка со стороны Microsoft. Использование устаревшей версии SQL Server создает серьезные риски для безопасности данных и стабильности работы всей информационной системы.
Для SQL Server 2008 последним выпущенным пакетом обновлений является Service Pack 4 (SP4) с номером сборки 10.00.6000. Даже установка SP4 не вернет версию в поддерживаемое состояние, но значительно повысит ее стабильность и исправит множество известных ошибок, накопившихся со временем.
Если мы пока не готовы к полной миграции на новую версию SQL Server, но хотим повысить стабильность и безопасность текущей системы, то установка последнего Service Pack для SQL Server 2008 — это обязательный промежуточный шаг.
Нам потребуется найти и загрузить установочный файл SQL Server 2008 Service Pack 4 (SP4). Рекомендуем всегда загружать обновления с официального сайта Microsoft или доверенных источников.
Перед началом установки Service Pack необходимо выполнить несколько важных подготовительных шагов:
master, msdb, model) и конфигурационных файлов. Это наш "спасательный круг" на случай непредвиденных проблем.После загрузки и подготовки мы можем приступить к установке.
Запустите установочный файл Service Pack. В большинстве случаев это будет выглядеть следующим образом:
После установки Service Pack обязательно снова выполните запрос SELECT @@VERSION, чтобы убедиться, что номер сборки изменился на 10.00.6000 (для SP4). Также проверьте логи SQL Server на предмет ошибок.
Обновление до более современной версии SQL Server (такой как SQL Server 2019 или 2022) — это гораздо более серьезный и ответственный процесс, чем установка Service Pack. Однако это крайне необходимо для обеспечения максимальной производительности, безопасности и доступности всех современных функций, которые могут значительно ускорить работу "1С:Предприятие" и других приложений.
Мы рассмотрим основные методы и шаги для успешной миграции.
Существует два основных подхода к обновлению SQL Server:
При этом методе мы запускаем установщик новой версии SQL Server непосредственно на сервере, где уже установлен старый SQL Server. Установщик определяет существующий экземпляр и предлагает его обновить.
Для SQL Server 2008 "на месте" можно обновиться до SQL Server 2012 или 2014, а затем уже на новый сервер с современной ОС и SQL Server 2019/2022. Однако этот путь все равно считается рискованным и многоступенчатым.
Этот метод является предпочтительным и наиболее безопасным, особенно при переходе с сильно устаревших версий. Он включает установку новой версии SQL Server на отдельный новый сервер (или виртуальную машину), а затем перенос баз данных и других объектов со старого сервера на новый.
Перед тем как приступить к обновлению, мы должны убедиться в совместимости наших баз данных с новой версией SQL Server. Microsoft предлагает для этого специализированные инструменты:
Это современный инструмент, который заменил старый Upgrade Advisor. DMA анализирует базы данных на исходном сервере и выявляет потенциальные проблемы совместимости, устаревшие функции, изменения в поведении, которые могут повлиять на работу приложений после обновления. Инструмент также может помочь непосредственно в процессе миграции баз данных и системных объектов.
Мы настоятельно рекомендуем использовать DMA для оценки совместимости перед любой серьезной миграцией.
Современные версии SSMS также включают встроенный функционал, который может помочь оценить базы данных на предмет проблем с обновлением и совместимостью.
Прямое обновление "на месте" с SQL Server 2008 до SQL Server 2022 не поддерживается. Поэтому наиболее надежный и рекомендуемый путь — это параллельная миграция баз данных на новый сервер с установленным SQL Server 2019 или 2022.
Разберем по шагам процесс параллельной миграции:
.bak) на новый сервер.После восстановления базы данных на новом сервере она, скорее всего, сохранит свой исходный уровень совместимости (например, 100 для SQL Server 2008). Чтобы воспользоваться всеми преимуществами и оптимизациями новой версии SQL Server, необходимо изменить уровень совместимости базы данных.
Это можно сделать через свойства базы данных в SSMS или с помощью T-SQL запроса:
ALTER DATABASE [ИмяВашейБазыДанных] SET COMPATIBILITY_LEVEL = 150; -- Для SQL Server 2019
-- ALTER DATABASE [ИмяВашейБазыДанных] SET COMPATIBILITY_LEVEL = 160; -- Для SQL Server 2022
Уровень 150 соответствует SQL Server 2019, 160 — SQL Server 2022. Изменение уровня совместимости позволит использовать новые возможности оптимизатора запросов и другие улучшения.
Помимо самих баз данных, нам потребуется перенести системные объекты, такие как:
После успешного переноса баз данных и системных объектов на новый сервер, нам необходимо выполнить ряд важных завершающих шагов:
Это критически важно для корректной работы оптимизатора запросов после миграции.
EXEC sp_updatestats; -- Выполнить для каждой базы данных
Или, для всех баз данных:
DECLARE @db_name VARCHAR(255)
DECLARE db_cursor CURSOR FOR
SELECT name FROM sys.databases WHERE state = 0 AND is_read_only = 0
OPEN db_cursor
FETCH NEXT FROM db_cursor INTO @db_name
WHILE @@FETCH_STATUS = 0
BEGIN
EXEC ('USE [' + @db_name + ']; EXEC sp_updatestats;');
FETCH NEXT FROM db_cursor INTO @db_name
END
CLOSE db_cursor
DEALLOCATE db_cursor
Убедимся в отсутствии повреждений после переноса с помощью команды DBCC CHECKDB для каждой базы данных.
DBCC CHECKDB ('[ИмяВашейБазыДанных]') WITH NO_INFOMSGS;
Запустите все ключевые процессы, отчеты, обработки в "1С", которые интенсивно работают с базой данных. Убедитесь, что все работает корректно и, возможно, даже быстрее. Проверьте производительность, проанализируйте медленные запросы.
Не забудьте обновить строку подключения к SQL Server во всех приложениях, которые использовали старый сервер (например, в кластере серверов 1С).
При выборе новой версии SQL Server крайне важно убедиться, что она официально поддерживается вашей версией платформы "1С:Предприятие". Например, для полноценной работы с Microsoft SQL Server 2019 рекомендуется использовать версию платформы "1С:Предприятие" 8.3.17 и выше. Более старые версии платформы 1С могут не использовать все преимущества нового SQL Server или иметь проблемы совместимости. Всегда проверяйте актуальную информацию о совместимости в официальной документации от 1С.
Следуя этим рекомендациям, мы сможем успешно обновить SQL Server, обеспечив при этом максимальную стабильность и производительность для нашей системы "1С:Предприятие".