복제된 데이터베이스 업그레이드 또는 패치
적용 대상:SQL Server - Windows만 해당
SQL Server는 이전 버전의 SQL Server에서 복제된 데이터베이스 업그레이드를 지원합니다. 노드를 업그레이드하는 동안 다른 노드에서 작업을 중지할 필요는 없습니다.
필수 구성 요소
한 토폴로지 내에서 지원되는 버전과 관련된 규칙만 잘 지키면 됩니다.
배포자는 게시자 버전보다 크거나 같으면 모든 버전일 수 있습니다(대부분의 경우 배포자는 게시자와 동일한 인스턴스).
게시자는 배포자 버전 이하인 모든 버전일 수 있습니다.
구독자 버전은 게시 유형에 따라 달라집니다.
트랜잭션 게시에 대한 구독자는 게시자의 두 가지 버전 중 어떤 버전이든 될 수 있습니다. 예를 들어 SQL Server 2012(11.x) 게시자에는 SQL Server 2014(12.x) 및 SQL Server 2016(13.x) 구독자가 있을 수 있으며, SQL Server 2016(13.x) 게시자에는 SQL Server 2014(12.x) 및 SQL Server 2012(11.x) 구독자가 있을 수 있습니다.
병합 게시 구독자는 버전 수명 주기 지원 주기에 따라 지원되는 모든 버전이 게시자 버전과 같거나 낮을 수 있습니다.
업그레이드 경로
SQL Server로의 업그레이드 경로는 배포 패턴에 따라 다릅니다. SQL Server는 일반적으로 다음 두 가지 업그레이드 경로를 제공합니다.
함께 실행: 병렬 환경을 배포하고 로그인, 작업 등 연결된 인스턴스 수준 개체와 함께 데이터베이스를 새 환경으로 이동합니다.
현재 위치 업그레이드: SQL Server 설치 미디어를 통해 SQL Server 비트를 바꾸고 데이터베이스 개체를 업그레이드하여 기존 SQL Server 설치를 업그레이드하도록 허용합니다. AG(가용성 그룹) 또는 FCI(장애 조치(failover) 클러스터 인스턴스)를 실행하는 환경의 경우, 가동 중단 시간을 최소화하기 위해 제자리 업그레이드를 롤링 업그레이드와 결합합니다.
복제 토폴로지의 병렬 업그레이드에 대한 일반적인 방법은 전체 토폴로지의 이동과는 달리 부분의 게시자-구독자 쌍을 새 병렬 환경으로 이동하는 것입니다. 이 단계적 접근 방식은 가동 중지 시간을 제어하고 복제에 종속된 비즈니스에 미치는 영향을 최소화합니다.
이 문서는 대부분 SQL Server 버전을 업그레이드하는 것으로 범위가 지정됩니다. 그러나 SQL Server를 서비스 팩 또는 누적 업데이트로 패치할 때도 적절한 업그레이드 프로세스를 사용해야 합니다.
발언
복제 토폴로지를 업그레이드하는 작업은 다단계 프로세스입니다. 실제 프로덕션 환경에서 업그레이드를 실행하기 전에 테스트 환경에서 복제 토폴로지의 복제본을 업그레이드해 보는 것이 좋습니다. 이렇게 하면 실제 업그레이드 프로세스 중에 비용이 많이 들고 긴 가동 중지 시간 없이 업그레이드를 원활하게 처리하는 데 필요한 운영 설명서를 다듬을 수 있습니다. 복제 토폴로지 업그레이드하는 동안 프로덕션 환경에 대한 AG 및/또는 FCI를 사용하여 가동 중지 시간을 크게 줄일 수 있습니다. 또한 업그레이드를 시도하기 전에 msdb
, master
, 배포 데이터베이스 및 복제에 참여하는 사용자 데이터베이스를 비롯한 모든 데이터베이스의 백업을 수행하는 것이 좋습니다.
장애 조치(failover) 클러스터 인스턴스에 배포 데이터베이스가 있는 경우 참여하는 모든 노드가 동일한 빌드를 사용하는지 확인합니다. 한 노드가 SQL Server 2016(13.x) SP2-CU3 또는 SQL Server 2017(14.x) CU6 이전의 SQL Server 버전이고 다른 노드는 SQL Server 2016(13.x) SP2-CU3 또는 SQL Server 2017(14.x) CU6보다 오래된 SQL Server 버전인 설치를 권장하지 않습니다. SQL Server 2016(13.x) SP2-CU3 및 SQL Server 2017(14.x) CU6부터 AG에서 배포 데이터베이스를 사용하고 배포 데이터베이스의 새 개체(테이블, 저장 프로시저)에 대한 지원이 추가됩니다. 배포 데이터베이스가 장애 조치(failover) 클러스터 인스턴스에 있고 단계적 마이그레이션을 수행하는 경우(그리고 모든 노드를 동일한 버전의 SQL Server로 업그레이드할 수 없는 경우) 마이그레이션 기간이 한정된 경우에는 최신 버전의 SQL Server가 있는 노드에 새 구독자, 구독, 게시자 또는 게시를 추가하는 것과 같은 계정 작업을 수행하는 것이 좋습니다.
복제 매트릭스
트랜잭션 및 스냅샷 복제 호환성 표
게시자 | 배포자 | 구독자 |
---|---|---|
Azure SQL Managed InstanceAUTD | Azure SQL Managed InstanceAUTD | Azure SQL Database Azure SQL Managed InstanceAUTD Azure SQL Managed Instance2022 SQL Server 2022(16.x) SQL Server 2019 (15.x) |
Azure SQL Managed Instance2022 | Azure SQL Managed InstanceAUTD Azure SQL Managed Instance2022 |
Azure SQL Database Azure SQL Managed InstanceAUTD Azure SQL Managed Instance2022 SQL Server 2022(16.x) SQL Server 2019 (15.x) SQL Server 2017(14.x) |
SQL Server 2022(16.x) | SQL Server 2022(16.x) | Azure SQL Database Azure SQL Managed InstanceAUTD Azure SQL Managed Instance2022 SQL Server 2022(16.x) SQL Server 2019 (15.x) SQL Server 2017(14.x) |
SQL Server 2019 (15.x) | SQL Server 2022(16.x) SQL Server 2019 (15.x) |
Azure SQL Database Azure SQL Managed InstanceAUTD Azure SQL Managed Instance2022 SQL Server 2022(16.x) SQL Server 2019 (15.x) SQL Server 2017(14.x) SQL Server 2016(13.x) |
SQL Server 2017(14.x) | SQL Server 2022(16.x) SQL Server 2019 (15.x) SQL Server 2017(14.x) |
Azure SQL Managed Instance2022 SQL Server 2022(16.x) SQL Server 2019 (15.x) SQL Server 2017(14.x) SQL Server 2016(13.x) SQL Server 2014(12.x) |
SQL Server 2016(13.x) | SQL Server 2022(16.x) SQL Server 2019 (15.x) SQL Server 2017(14.x) SQL Server 2016(13.x) |
SQL Server 2019 (15.x) SQL Server 2017(14.x) SQL Server 2016(13.x) SQL Server 2014(12.x) SQL Server 2012(11.x) |
SQL Server 2014(12.x) | Azure SQL Managed InstanceAUTD Azure SQL Managed Instance2022 SQL Server 2022(16.x) SQL Server 2019 (15.x) SQL Server 2017(14.x) SQL Server 2016(13.x) SQL Server 2014(12.x) |
SQL Server 2017(14.x) SQL Server 2016(13.x) SQL Server 2014(12.x) SQL Server 2012(11.x) SQL Server 2008 R2(10.50.x) SQL Server 2008(10.0.x) |
SQL Server 2012(11.x) | SQL Server 2022(16.x) SQL Server 2019 (15.x) SQL Server 2017(14.x) SQL Server 2016(13.x) SQL Server 2014(12.x) SQL Server 2012(11.x) |
SQL Server 2016(13.x) SQL Server 2014(12.x) SQL Server 2012(11.x) SQL Server 2008 R2(10.50.x) SQL Server 2008(10.0.x) |
SQL Server 2008 R2(10.50.x) SQL Server 2008(10.0.x) |
SQL Server 2022(16.x) SQL Server 2019 (15.x) SQL Server 2017(14.x) SQL Server 2016(13.x) SQL Server 2014(12.x) SQL Server 2012(11.x) SQL Server 2008 R2(10.50.x) SQL Server 2008(10.0.x) |
SQL Server 2014(12.x) SQL Server 2012(11.x) SQL Server 2008 R2(10.50.x) SQL Server 2008(10.0.x) |
2022SQL Server 2022 업데이트 정책구성된 Azure SQL Managed Instance에 적용됩니다. AUTD Azure SQL Managed Instance는 Always-up-to-date 업데이트 정책로 구성되어 적용됩니다.
병합 복제 호환성 표
게시자 | 배포자 | 구독자 |
---|---|---|
SQL Server 2022(16.x) | SQL Server 2022(16.x) | SQL Server 2022(16.x) SQL Server 2019 (15.x) SQL Server 2017(14.x) SQL Server 2016(13.x) SQL Server 2014(12.x) SQL Server 2012(11.x) SQL Server 2008 R2(10.50.x) SQL Server 2008(10.0.x) |
SQL Server 2019 (15.x) | SQL Server 2022(16.x) SQL Server 2019 (15.x) |
SQL Server 2019 (15.x) SQL Server 2017(14.x) SQL Server 2016(13.x) SQL Server 2014(12.x) SQL Server 2012(11.x) SQL Server 2008 R2(10.50.x) SQL Server 2008(10.0.x) |
SQL Server 2017(14.x) | SQL Server 2022(16.x) SQL Server 2019 (15.x) SQL Server 2017(14.x) |
SQL Server 2017(14.x) SQL Server 2016(13.x) SQL Server 2014(12.x) SQL Server 2012(11.x) SQL Server 2008 R2(10.50.x) SQL Server 2008(10.0.x) |
SQL Server 2016(13.x) | SQL Server 2022(16.x) SQL Server 2019 (15.x) SQL Server 2017(14.x) SQL Server 2016(13.x) |
SQL Server 2016(13.x) SQL Server 2014(12.x) SQL Server 2012(11.x) SQL Server 2008 R2(10.50.x) SQL Server 2008(10.0.x) |
SQL Server 2014(12.x) | SQL Server 2022(16.x) SQL Server 2019 (15.x) SQL Server 2017(14.x) SQL Server 2016(13.x) SQL Server 2014(12.x) |
SQL Server 2014(12.x) SQL Server 2012(11.x) SQL Server 2008 R2(10.50.x) SQL Server 2008(10.0.x) |
SQL Server 2012(11.x) | SQL Server 2022(16.x) SQL Server 2019 (15.x) SQL Server 2017(14.x) SQL Server 2016(13.x) SQL Server 2014(12.x) SQL Server 2012(11.x) |
SQL Server 2012(11.x) SQL Server 2008 R2(10.50.x) SQL Server 2008(10.0.x) |
SQL Server 2008 R2(10.50.x) SQL Server 2008(10.0.x) |
SQL Server 2022(16.x) SQL Server 2019 (15.x) SQL Server 2017(14.x) SQL Server 2016(13.x) SQL Server 2014(12.x) SQL Server 2012(11.x) SQL Server 2008 R2(10.50.x) SQL Server 2008(10.0.x) |
SQL Server 2008 R2(10.50.x) SQL Server 2008(10.0.x) |
업그레이드 고려 사항
업그레이드하기 전에 트랜잭션 복제를 위해 로그 판독기 에이전트 실행
SQL Server를 업그레이드하기 전에 게시된 테이블의 커밋된 모든 트랜잭션이 로그 판독기 에이전트에 의해 처리되었는지 확인해야 합니다. 모든 트랜잭션이 처리되도록 하려면 트랜잭션 게시를 포함하는 각 데이터베이스에 대해 다음 단계를 수행합니다.
데이터베이스에서 로그 판독기 에이전트가 실행 중인지 확인합니다. 기본적으로 에이전트는 계속 실행됩니다.
게시된 테이블에 대한 사용자 동작을 중지합니다.
로그 판독기 에이전트가 배포 데이터베이스로 트랜잭션을 복사할 때까지 기다린 다음 에이전트를 중지합니다.
sp_replcmds 실행하여 모든 트랜잭션이 처리되는지 확인합니다. 이 프로시저의 결과 집합은 비어 있어야 합니다.
sp_replflush 실행하여
sp_replcmds
연결을 닫습니다.서버를 최신 버전의 SQL Server로 업그레이드합니다.
업그레이드 후 자동으로 시작되지 않는 경우 SQL Server 에이전트 및 로그 판독기 에이전트를 다시 시작합니다.
업그레이드 후 병합 복제에 대한 에이전트 실행
업그레이드 후에 각 병합 게시에 대해 스냅샷 에이전트를 실행하고 각 구독에 대해 병합 에이전트를 실행하여 복제 메타데이터를 업데이트합니다. 구독을 다시 초기화할 필요가 없으므로 새 스냅샷을 적용할 필요가 없습니다. 구독 메타데이터는 업그레이드 후에 병합 에이전트가 처음 실행될 때 업데이트됩니다. 즉, 게시자를 업그레이드하는 동안 구독 데이터베이스를 온라인 활성 상태로 유지할 수 있습니다.
병합 복제는 게시 및 구독 데이터베이스의 여러 시스템 테이블에 게시 및 구독 메타데이터를 저장합니다. 스냅샷 에이전트를 실행하면 게시 메타데이터가 업데이트되고 병합 에이전트를 실행하면 구독 메타데이터가 업데이트됩니다. 게시 스냅샷을 생성하기만 하면 됩니다. 병합 게시에 매개 변수가 있는 필터가 사용되면 각 파티션은 스냅샷도 갖게 됩니다. 분할된 스냅샷을 업데이트할 필요는 없습니다.
에이전트는 SQL Server Management Studio, 복제 모니터 또는 명령줄에서 실행합니다. 스냅샷 에이전트를 실행하는 방법은 다음 문서를 참조하세요.
- 초기 스냅샷 만들기 및 적용
- 복제 에이전트 시작 및 중지(SQL Server Management Studio)
- 초기 스냅샷 만들기 및 적용
- Replication Agent Executables Concepts
병합 에이전트를 실행하는 방법은 다음 문서를 참조하세요.
병합 복제를 사용하는 토폴로지에서 SQL Server 를 업그레이드한 후에 새 기능을 사용하려면 모든 게시의 게시 호환성 수준을 변경합니다.
표준, 작업 그룹 또는 Express 버전으로 업그레이드
SQL Server의 한 버전에서 다른 버전으로 업그레이드하기 전에 현재 사용 중인 기능이 업그레이드 중인 버전에서 지원되는지 확인합니다. 자세한 내용은 SQL Server 2022의 버전 및 지원하는 기능의 복제 섹션을 참조하세요.
복제 토폴로지를 업그레이드하는 단계
다음 단계에서는 복제 토폴로지의 서버를 업그레이드하는 순서를 간략하게 설명합니다. 트랜잭션 복제 또는 병합 복제 중 어느 것을 실행하든 동일한 단계가 적용됩니다. 그러나 이러한 단계는 피어 투 피어 복제, 지연 업데이트 구독 또는 즉시 업데이트 구독을 다루지 않습니다.
전체 업그레이드
- 배포자를 업그레이드합니다.
- 게시자와 구독자를 업그레이드합니다. 순서에 관계없이 업그레이드할 수 있습니다.
참고
SQL Server 2008(10.0.x) 및 SQL Server 2008 R2(10.50.x)의 경우 복제 토폴로지 행렬에 맞게 게시자와 구독자의 업그레이드를 동시에 수행해야 합니다. SQL Server 2008(10.0.x) 및 SQL Server 2008 R2(10.50.x) 게시자 또는 구독자는 SQL Server 2016(13.x) 이상 게시자 또는 구독자를 가질 수 없습니다. 동시에 업그레이드할 수 없는 경우 중간 업그레이드를 사용하여 SQL Server 인스턴스를 SQL Server 2014(12.x)로 업그레이드한 다음 SQL Server 2016(13.x) 이상으로 다시 업그레이드합니다.
병렬 업그레이드
- 배포자를 업그레이드합니다.
- 새 SQL Server 인스턴스에서 을(를) 다시 구성하고 배포 구성을 수행합니다.
- 게시자를 업그레이드합니다.
- 구독자를 업그레이드합니다.
- 구독자의 다시 초기화를 포함하여 모든 게시자-구독자 쌍을 다시 구성합니다.
배포자를 Windows Server로 병렬로 마이그레이션하는 단계
병렬 업그레이드는 장애 조치(failover) 클러스터에 참여하는 SQL Server 인스턴스에 사용할 수 있는 유일한 업그레이드 경로입니다. 독립 실행형 SQL Server 인스턴스 또는 FCI(장애 조치(failover) 클러스터 인스턴스) 내에서 다음 단계를 수행할 수 있습니다.
Windows Server에서 독립 실행형 또는 FCI로 새 SQL Server 인스턴스, 에디션 및 버전을 설정하고, 다른 Windows 클러스터와 SQL Server FCI 이름 또는 독립 실행형 호스트 이름을 배포자로 사용합니다. 복제 에이전트 실행 파일, 복제 폴더 및 데이터베이스 파일 경로가 새 환경의 동일한 경로에 있는지 확인하려면 디렉터리 구조를 이전 배포자와 동일하게 유지해야 합니다. 이렇게 하면 필요한 마이그레이션/업그레이드 후 단계가 줄어듭니다.
복제가 동기화되었는지 확인한 다음, 모든 복제 에이전트를 종료합니다.
현재 SQL Server 배포자 인스턴스를 종료합니다. 독립 실행형 인스턴스인 경우 서버를 종료합니다. SQL Server FCI인 경우 네트워크 이름을 포함하여 클러스터 관리자에서 전체 SQL Server 역할을 오프라인으로 전환합니다.
이전(현재 배포자 인스턴스) 환경에 대한 DNS 및 Active Directory 컴퓨터 개체 항목을 제거합니다.
새 서버의 호스트 이름이 이전 서버의 호스트 이름과 일치하도록 변경합니다.
- SQL Server FCI인 경우 새 SQL Server FCI의 이름을 이전 인스턴스와 동일한 가상 서버 이름으로 바꿉니다.
SAN 리디렉션, 스토리지 복사본 또는 파일 복사본을 사용하여 이전 인스턴스의 데이터베이스 파일을 복사합니다.
새 SQL 서버 인스턴스를 온라인으로 전환합니다.
모든 복제 에이전트를 다시 시작하고, 에이전트가 제대로 실행되는지 확인합니다.
복제가 예상대로 작동하는지 확인합니다.
SQL Server 설치 미디어를 사용하여 SQL Server 인스턴스에서 새 SQL Server 버전으로의 현재 위치 업그레이드를 실행합니다.
참고
가동 중지 시간을 줄이려면 배포자의 병렬 마이그레이션 하나의 작업으로 수행하고 SQL Server 현재 위치 업그레이드를 다른 작업으로 수행하는 것이 좋습니다. 이를 통해 단계적 접근 방식을 취하고, 위험을 줄이고, 가동 중지 시간을 최소화할 수 있습니다.
병합 복제를 위한 웹 동기화
병합 복제를 위한 웹 동기화 옵션을 사용하려면 SQL Server 복제 수신기(replisapi.dll
)를 동기화에 사용되는 IIS(인터넷 정보 서비스) 서버의 가상 디렉터리에 복사해야 합니다. 웹 동기화를 구성할 때 웹 동기화 구성 마법사는 파일을 가상 디렉터리에 복사합니다. IIS 서버에 설치된 SQL Server 구성 요소를 업그레이드하는 경우에는 COM 디렉터리의 replisapi.dll을 IIS 서버의 가상 디렉터리에 수동으로 복사해야 합니다. 웹 동기화를 구성하는 방법은 웹 동기화 구성을 참조하세요.
이전 버전에서 복제된 데이터베이스 복원
이전 버전에서 복제된 데이터베이스의 백업을 복원할 때 복제 설정이 유지되게 하려면 백업 당시의 서버 및 데이터베이스와 같은 이름의 서버 및 데이터베이스에 복원합니다.