Перенос крупной информационной базы 1С:Предприятие 7.7 объемом 30 ГБ и более со связки Windows Server 2003 и MS SQL Server 2000 на современное серверное оборудование требует взвешенного подхода к выбору операционной системы и СУБД. В таких условиях часто возникает дилемма: остаться на проверенных, но устаревших версиях вроде Windows Server 2003 R2 64-bit и SQL Server 2005, либо развернуть инфраструктуру на базе Windows Server 2008 R2 64-bit и SQL Server 2008 (или SQL Server 2008 R2). Разберем ключевые различия этих связок, выясним влияние штатного движка 1С на производительность СУБД и рассмотрим обязательные параметры тонкой настройки сервера.
Штатный движок платформы 1С 7.7 формирует запросы к СУБД по устаревшим алгоритмам, которые изначально разрабатывались под MS SQL Server 6.5 и 7.0. По этой причине смена версии базы данных практически не ускоряет стандартные выборки и проведение документов в немодифицированной конфигурации. Однако с точки зрения стабильности, администрирования и надежности СУБД разница между версиями существенна.
Table Scan). Это провоцирует каскадные блокировки строк и зависание пользователей. В SQL Server 2008 работа оптимизатора стала значительно более предсказуемой.Таким образом, выбор связки Windows Server 2008 R2 64-bit + MS SQL Server 2008 / 2008 R2 является наиболее оправданным решением.
Проанализируем специфику работы с базой без терминального сервера (RDP), когда клиентские приложения запускаются по локальной сети напрямую с рабочих станций. В случае с базой 30 ГБ такой сценарий несет высокие эксплуатационные риски:
1Cv7.MD, список пользователей users.usr и маркеры *.LCK) активные механизмы кэширования директорий и лизинга SMB могут вызывать зависание дескрипторов файлов. В результате пользователи получают критическую ошибку «Ошибка блокировки метаданных». Для стабильной работы на стороне сервера необходимо принудительно отключить лизинг и кэширование каталогов SMB 2.0 либо задействовать совместный доступ по протоколу SMB 1.0.Для того чтобы СУБД SQL Server 2008 корректно и быстро обрабатывала транзакции устаревшего движка «семерки», необходимо выполнить специальную адаптацию системных параметров инстанса:
CXPACKET. Обязательно переведем сервер в однопоточный режим обработки каждого запроса, установив параметр:
sp_configure 'show advanced options', 1;
RECONFIGURE;
GO
sp_configure 'max degree of parallelism', 1;
RECONFIGURE;
GO
tempdb на несколько одинаковых файлов (от 4 до 8 файлов с равным шагом авторасширения) и активируем флаги трассировки -T1118 (выделение сразу полных экстентов по 64 КБ) и -T1117 (пропорциональное увеличение всех файлов группы).-T2371, который автоматически снижает порог устаревания по мере роста объема таблицы.-T4199 включает кумулятивный пакет исправлений логики работы оптимизатора запросов, устраняя проблемы с некорректным выбором планов во многих типовых выборках.-T1211 или -T1224 в параметрах запуска экземпляра SQL Server.Рассмотрим правила взаимодействия клиентских машин с экземпляром базы данных:
Cyrillic_General_CI_AS. Несовпадение серверного порядка сортировки с кодовой страницей информационной базы сделает подключение невозможным на этапе входа в систему.SQL Server and Windows Authentication mode), так как 1С 7.7 требует авторизации под системной учетной записью СУБД.sqlsrv32.dll). На всех клиентских компьютерах через 32-битную утилиту C:\Windows\SysWOW64\cliconfg.exe жестко зафиксируем использование протокола TCP/IP (отключив Named Pipes), а также создадим явный алиас сервера с указанием статического порта SQL Server. Это позволит полностью исключить паразитные задержки и нестабильность службы SQL Server Browser.Соблюдение приведенных правил развертывания позволит комфортно эксплуатировать базу 1С 7.7 любого объема на современном серверном оборудовании под управлением Windows Server 2008 R2 и MS SQL Server 2008, сохраняя высокую скорость транзакций и целостность данных.