적용 대상: SQL Server 2025(17.x)
이 문서에서는 SQL Server 2025(17.x)에 도입된 SQL Server 데이터베이스 엔진의 주요 기능에 대한 주요 변경 내용을 설명합니다. 이러한 변경은 이전 버전의 SQL Server를 기반으로 하는 애플리케이션, 스크립트 또는 기능을 손상할 수 있습니다.
업그레이드 후 연결된 서버 연결 실패
SQL Server 2025(17.x)에는 연결된 서버에 호환성이 손상되는 변경을 도입하는 암호화 변경 내용이 포함되어 있습니다. 이러한 변경은 이전 버전의 SQL Server를 기반으로 하는 애플리케이션, 스크립트 또는 기능을 손상할 수 있습니다.
Microsoft OLE DB Driver 19를 사용하여 이전 버전의 SQL Server에서 SQL Server 2025(17.x)로 업그레이드하면 기존 연결된 서버 구성이 실패할 수 있습니다. 암호화 매개 변수의 기본값이 다르면 유효한 인증서가 제공되지 않는 한 이 오류가 발생할 수 있습니다.
SQL Server 2025(17.x):
-
SQL Server 2025 인스턴스에 연결된 서버는 연결 문자열에서
Encrypt매개 변수를 사용해야 합니다. - Microsoft OLE DB Driver 19를 사용하여 이전 버전의 SQL Server에서 SQL Server 2025로 마이그레이션하는 경우 기존 연결된 서버 구성이 실패할 수 있습니다.
SQL Server 2025(17.x) 인스턴스에 안전하게 연결하는 방법에 대한 자세한 내용은 TDS 8.0을 참조하세요.
업그레이드 후 복제 구성 요소 실패
SQL Server 2025(17.x)에는 암호화의 변경 사항이 포함되어 있으며, 이는 트랜잭션, 스냅샷, 피어 투 피어 및 병합 복제에 대한 호환성을 손상시키는 변화입니다.
SQL Server 인스턴스인 경우 이전 버전의 모든 SQL Server에서 SQL Server 2025(17.x)로 업그레이드한 후 복제 구성 요소가 실패할 수 있습니다.
- 복제 게시자로 구성됩니다.
- 복제 토폴로지에서 원격 배포자를 만듭니다.
- 신뢰할 수 있는 인증서로 구성되지 않았습니다.
업그레이드 후 다음과 같은 동작이 표시될 수 있습니다.
- 복제는 계속 성공하지만 게시 변경은 실패합니다.
- SSMS(SQL Server Management Studio)의 복제 모니터가 실패합니다.
- SSMS UI의 에이전트 상태가 실패합니다.
원격 배포자는 게시자와 배포자 간의 통신에 연결된 서버를 사용합니다. OLEDB 19 공급자의 SQL Server 2025(17.x)에 도입된 보안 기본값에는 다음이 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.
원격 배포자는 게시자와 배포자 간의 통신에 연결된 서버를 사용합니다. OLEDB 19 공급자의 SQL Server 2025(17.x)에 도입된 보안 기본값에는 다음이 TrustServerCertificate=False필요합니다.
이 문제를 해결하려면 내부 인증 기관의공용 상용 인증서 또는 인증서를 사용하도록 배포자 SQL Server 인스턴스를 구성합니다.
또는 덜 안전한 옵션을 선택하여 OLEDB 19 공급자의 보안 기본값을 재정의하고 배포자가 자체 서명된 인증서를 신뢰하도록 설정할 TrustServerCertificate=True 수 있습니다. 기본값을 재정의하려면 trust_distributor_certificate 저장 프로시저를 호출할 때 매개 변수를 사용합니다.
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 인스턴스가 이전 버전을 사용하는 경우 모니터가 원격 SQL Server 2025(17.x) 인스턴스인 경우 로그 전달 모니터링이 중단됩니다.
SQL Server 2025(17.x) 인스턴스에 안전하게 연결하는 방법에 대한 자세한 내용은 TDS 8.0을 참조하세요.
업그레이드 후 Full-Text 쿼리 및 인구 생성 실패
SQL Server 2025 (17.x)는 Full-Text Search에서 사용하는 모든 레거시 단어 분리기 및 필터 바이너리 파일을 제거합니다. 이러한 구성 요소는 최신 도구 집합을 사용하여 다시 빌드되며 더 많은 언어 및 문서 형식에 대한 확장된 지원을 제공합니다. 업그레이드 후 기존 인덱스는 에 따라 index_version = 1지정됩니다sys.fulltext_indexes. 새로 만든 인덱스는 데이터베이스 범위 구성을 사용하여 FULLTEXT_INDEX_VERSION 지정하지 않는 한 버전 2로 지정되고 새 구성 요소를 사용합니다.
업그레이드 직후 버전 1 인덱스에서의 Full-Text 쿼리는 디스크에서 단어 분리기 이진 파일을 찾지 못합니다.
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.
마찬가지로, 버전 1 인덱스에서 발급된 Full-Text 인덱스 생성을 업그레이드된 후 디스크에서 필터 바이너리를 찾지 못합니다.
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을 유지해야 하는 경우 먼저 다시 빌드 시 의도하지 않은 업그레이드를 방지하기 위해 = 1을 설정 FULLTEXT_INDEX_VERSION 했는지 확인합니다.
ALTER DATABASE SCOPED CONFIGURATION
SET FULLTEXT_INDEX_VERSION = 1;
그런 다음 레거시 단어 분리기와 필터 이진 파일들을 이전 인스턴스에서 대상 인스턴스의 binn 폴더로 복사해야 합니다.