Поделиться через


Критические изменения функций ядра СУБД в SQL Server 2025

Применимо к: SQL Server 2025 (17.x)

В этой статье описываются критические изменения функций ядра СУБД SQL Server, появившиеся в SQL Server 2025 (17.x). Эти изменения могут нарушить работу приложений, скриптов или функций, основанных на более ранних версиях SQL Server.

Сбой подключений связанного сервера после обновления

SQL Server 2025 (17.x) содержит изменения в шифровании , которые приводят к критическому изменению связанных серверов. Эти изменения могут нарушить работу приложений, скриптов или функций, основанных на более ранних версиях SQL Server.

При обновлении с предыдущих версий SQL Server до SQL Server 2025 (17.x) с Microsoft OLE DB Driver 19 существующие конфигурации связанных серверов могут завершиться ошибкой. Разные значения по умолчанию для параметра шифрования могут привести к сбою, если не указан допустимый сертификат.

В SQL Server 2025 (17.x):

Сведения о безопасном подключении к экземплярам SQL Server 2025 (17.x) см. в статье TDS 8.0.

Сбой компонентов репликации после обновления

SQL Server 2025 (17.x) содержит изменения в шифровании , которые приводят к критическому изменению транзакционных, моментальных снимков, одноранговой репликации и репликации слиянием .

Компоненты репликации могут потерпеть сбой после обновления до SQL Server 2025 (17.x) из всех предыдущих версий SQL Server, если ваш экземпляр SQL Server:

  • Настраивается в качестве издателя репликации.
  • Имеет удаленный распространитель в топологии репликации.
  • Не настроен доверенный сертификат.

После обновления может появиться следующее поведение:

  • Репликация продолжает выполняться успешно, но изменения публикации завершаются ошибкой.
  • Монитор репликации в СРЕДЕ SQL Server Management Studio (SSMS) завершается ошибкой.
  • Состояние агента в пользовательском интерфейсе SSMS завершается ошибкой.

Удаленный распространитель использует связанный сервер для обмена данными между издателем и распространителем. Безопасная конфигурация по умолчанию, введенная в SQL Server 2025 (17.x) для провайдера OLEDB 19, требует, чтобы TrustServerCertificate=False.

Эту проблему можно устранить заблаговременно, до начала обновления, или решить её в случае сбоя компонентов репликации после обновления.

Перед началом обновления

Если вы знаете, что экземпляр SQL Server столкнется с этой проблемой после обновления, вы можете предварительно устранить сбой, настроив экземпляр SQL Server для использования общедоступного коммерческого сертификата или сертификата из внутреннего центра сертификации.

Это рекомендуемый вариант для максимальной безопасности.

Сбой компонентов после обновления

Если компоненты репликации завершаются сбоем после обновления, вы всё равно можете настроить экземпляр SQL Server для использования либо общедоступного коммерческого сертификата, либо сертификата из внутреннего центра сертификации.

Кроме того, можно выбрать менее безопасную опцию, чтобы переопределить безопасный параметр по умолчанию поставщика OLEDB 19 и настроить trust_distributor_certificate=yes, чтобы распространитель доверял самозаверенному сертификату.

Чтобы переопределить новое безопасное значение по умолчанию, используйте хранимую процедуру sp_changedistributor_property, чтобы задать параметрtrust_distributor_certificate:yes

EXECUTE sp_changedistributor_property
    @property = N'trust_distributor_certificate',
    @value = N'yes';

Замечание

Безопасные параметры по умолчанию относятся к базовому поставщику OLEDB 19, что повышает безопасность. Параметр переопределения по умолчанию является менее безопасным, чем настройка экземпляра для использования доверенного сертификата. После переопределения по умолчанию у вас есть возможность настроить SQL Server для использования сертификата, а затем использовать хранимую процедуру sp_changedistributor_property для возврата trust_distributor_certificate=no свойства в безопасное значение по умолчанию.

Сбой при добавлении удаленного распространителя репликации

SQL Server 2025 (17.x) содержит изменения в шифровании , которые приводят к критическому изменению транзакционных, моментальных снимков, одноранговой репликации и репликации слиянием .

При настройке распространителя для репликации sp_adddistributor хранимая процедура завершается ошибкой, когда:

  • Издатель — это экземпляр SQL Server 2025 (17.x).
  • Распространитель удален.
  • Распространитель не настроен с доверенным сертификатом.

При запуске sp_adddistributor в экземпляре издателя может появиться следующая ошибка:

OLE DB provider "MSOLEDBSQL19" for linked server "repl_distributor" returned message
"Client unable to establish connection".
Msg -2146893019, Level 16, State 1, Line 21
SSL Provider: The certificate chain was issued by an authority that is not trusted.

Удаленный распространитель использует связанный сервер для обмена данными между издателем и распространителем. Безопасный режим, введённый в SQL Server 2025 (17.x) для поставщика OLEDB 19, требует, чтобы TrustServerCertificate=False.

Чтобы устранить эту проблему, настройте экземпляр SQL Server распространителя для использования общедоступного коммерческого сертификата или сертификата из внутреннего центра сертификации.

Кроме того, можно выбрать менее безопасную опцию, чтобы переопределить безопасный параметр по умолчанию поставщика OLEDB 19 и настроить TrustServerCertificate=True, чтобы распространитель доверял самозаверенному сертификату. Чтобы переопределить значение по умолчанию, используйте trust_distributor_certificate параметр при вызове хранимой процедуры sp_adddistributor :

EXECUTE sys.sp_adddistributor @trust_distributor_certificate = 'yes';

Замечание

Безопасные параметры по умолчанию относятся к базовому поставщику OLEDB 19, что повышает безопасность. Параметр переопределения по умолчанию является менее безопасным, чем настройка экземпляра для использования доверенного сертификата. После переопределения по умолчанию у вас есть возможность настроить SQL Server для использования сертификата, а затем использовать хранимую процедуру sp_changedistributor_property для возврата trust_distributor_certificate=no свойства в безопасное значение по умолчанию.

Удаленный мониторинг доставки журналов может нарушиться

SQL Server 2025 (17.x) содержит изменения в шифровании , которые приводят к критическому изменению доставки журналов. При обновлении могут возникнуть эти проблемы.

Мониторинг доставки журналов может нарушиться, если монитор является удаленным экземпляром SQL Server 2025 (17.x), если другие экземпляры SQL Server в топологии доставки журналов используют предыдущую версию.

Сведения о безопасном подключении к экземплярам SQL Server 2025 (17.x) см. в статье TDS 8.0.

Full-Text сбой запросов и групп населения после обновления

SQL Server 2025 (17.x) удаляет все устаревшие модули обработки слов и фильтров, используемые для Поиска по полному тексту. Эти компоненты перестроены с помощью современного набора инструментов и предлагают расширенную поддержку для дополнительных языков и типов документов. Существующие индексы после обновления обозначаются с помощью index_version = 1 согласно sys.fulltext_indexes. Только что созданным индексам присваивается версия 2 и используются новые компоненты, если иное не указано в конфигурации с областью базы данных FULLTEXT_INDEX_VERSION.

Любой запрос Full-Text в индексе версии 1 не удается найти двоичные файлы разбиения слов на диске сразу после обновления:

Msg 30010, Level 16, State 2, Line 8
An error has occurred during the full-text query. Common causes include: word-breaking errors or timeout, FDHOST permissions/ACL issues, service account missing privileges, malfunctioning IFilters, communication channel issues with FDHost and sqlservr.exe, etc. If recently performed in-place upgrade to SQL2025, For help please see https://aka.ms/sqlfulltext.

Аналогичным образом, любая Full-Text популяция, созданная в индексе версии 1, не обнаруживает двоичные файлы фильтра на диске после обновления до новой версии.

Warning: No appropriate filter was found during full-text index population for table or indexed view '[db].[dbo].[table_name]' (table or indexed view ID '901578250', database ID '5'), full-text key value '1'. Some columns of the row were not indexed.

Перестройте существующие индексы с новой версией

Рекомендуемый способ продолжить использование индексов — перестроить их с помощью более новых компонентов версии 2.

-- Verify value = 2
SELECT *
FROM sys.database_scoped_configurations
WHERE [name] = 'FULLTEXT_INDEX_VERSION';

-- Per catalog upgrade
ALTER FULLTEXT CATALOG [FtCatalog] REBUILD;

Единственным способом обновления отдельных индексов без перестроения всего каталога является удаление и повторное их создание.

Продолжайте использовать версию 1

Если необходимо остаться в версии 1 для совместимости приложений, сначала убедитесь, что задано FULLTEXT_INDEX_VERSION значение = 1, чтобы избежать непреднамеренного обновления при перестроении.

ALTER DATABASE SCOPED CONFIGURATION
    SET FULLTEXT_INDEX_VERSION = 1;

Затем необходимо скопировать устаревшее средство разбиения слов и фильтры из старого экземпляра в папку целевого экземпляра binn.