복제 토폴로지에 SQL Server의 여러 버전 사용
복제 기능을 사용하여 데이터를 다른 버전의 SQL Server로 복제할 수 있습니다. 이 항목에서는 다음 영역에 대한 정보를 제공합니다.
SQL Server 버전 지원
이전 버전에 대한 SQL Server 2008 데이터 형식 매핑
이전 버전에서 복제된 데이터베이스 복원
병합 게시에 대한 호환성 수준
SQL Server Express 및 SQL Server Compact 3.5 SP1로 데이터를 복제하는 방법은 SQL Server Express에 데이터 복제 및 SQL Server Compact에 데이터 복제를 참조하십시오. SQL Server의 각 버전에서 지원하는 기능에 대한 자세한 내용은 SQL Server 2008 버전에서 지원하는 기능을 참조하십시오.
지원되는 SQL Server 버전
SQL Server 2000 및 SQL Server 2005는 모두 SQL Server 2008과의 복제 토폴로지에 참여할 수 있습니다. SQL Server 2000의 경우 최소 버전은 SP3(서비스 팩 3)이고 SQL Server 2005의 경우 최소 버전은 SP2(서비스 팩 2)입니다.
서로 다른 버전의 SQL Server 간에 복제하는 경우 가장 오래된 버전의 기능으로 제한되는 경우가 많습니다. 예를 들어 배포자를 SQL Server 2008 인스턴스로 업그레이드하지만 SQL Server 2005 인스턴스를 실행 중인 게시자와 SQL Server 2000 인스턴스를 실행 중인 구독자가 있는 경우 SQL Server 2000의 일반 기능과 복제 기능으로 제한됩니다.
[!참고]
SQL Server 디스크상 저장소 형식은 64비트 및 32비트 환경에서 동일하므로 복제 토폴로지가 32비트 환경에서 실행되는 서버 인스턴스와 64비트 환경에서 실행되는 서버 인스턴스를 결합할 수 있습니다.
모든 유형의 복제에서 배포자 버전은 게시자 버전과 같거나 그 이후 버전이어야 합니다. 배포자는 게시자와 동일한 인스턴스로 실행되는 경우가 많습니다.
트랜잭션 복제의 경우 트랜잭션 게시에 대한 구독자는 게시자의 두 가지 버전 중 어느 버전이든 가능합니다. 예를 들어 SQL Server 2000 게시자는 SQL Server 2008 구독자를 가질 수 있으며 SQL Server 2008 게시자는 SQL Server 2000 구독자를 가질 수 있습니다.
병합 복제의 경우 병합 게시에 대한 구독자는 게시자 버전과 같거나 이전 버전일 수 있습니다. 이전 버전과의 호환성에 대한 자세한 내용은 이 항목의 뒷부분에 나오는 "병합 게시에 대한 호환성 수준"을 참조하십시오. SQL Server의 여러 버전에서 지원되는 복제 기능에 대한 자세한 내용은 SQL Server 2008 버전에서 지원하는 기능을 참조하십시오.
SQL Server 2000을 실행 중인 게시자와 함께 SQL Server 2005 또는 SQL Server 2008 배포자 사용
SQL Server 2000을 실행 중인 게시자에 대한 원격 배포자로 SQL Server 2005 및 SQL Server 2008을 사용할 수 있습니다. 이 시나리오에서 에이전트 속성을 변경하려면 배포자에서 다음 저장 프로시저를 실행하십시오. 이러한 프로시저를 사용하면 SQL Server 2005에 도입된 속성을 변경할 수 있습니다.
SQL Server 2000을 실행하는 게시자 및 배포자가 있는 경우 sp_changedistpublisher 및 sp_changesubscriber를 사용하여 에이전트가 연결하는 데 사용되는 자격 증명을 변경할 수 있습니다. 그러나 배포자를 SQL Server 2008로 업그레이드하는 경우 이러한 프로시저를 사용하여 기존 에이전트 작업에 사용되는 자격 증명을 변경할 수 없습니다. 프로시저가 호출된 다음 생성된 에이전트 작업은 프로시저의 영향을 받습니다. 기존 에이전트 작업에 대한 자격 증명을 변경하려면 위에 나열된 4개의 프로시저 중 하나를 호출하십시오.
이전 버전에 대한 새 데이터 형식 매핑
SQL Server 2008 및 SQL Server 2005는 몇 가지 새 데이터 형식을 지원합니다. 다음 표에서 볼 수 있듯이 이러한 새 데이터 형식은 SQL Server 2005 또는 SQL Server 2008 배포자의 밀어넣기 구독 사용 시 구독자에서 호환 가능한 데이터 형식으로 매핑됩니다. 새 데이터 형식이 이전 버전의 SQL Server를 실행하는 구독자로 복제되는 경우 데이터 형식이 올바르게 매핑되는지 확인해야 합니다.
병합 게시의 아티클에 대해서는 기본적으로 매핑이 수행되지만 스냅숏 또는 트랜잭션 게시의 아티클에 대해서는 매핑이 수행되지 않습니다. 병합 게시의 경우 게시 호환성 수준에 따라 형식이 매핑되는 방법이 결정됩니다. 예를 들어 열의 형식이 geography일 때 호환성 수준이 90RTM이면 형식이 varbinary(max)로 매핑되고 호환성 수준이 80RTM이면 형식이 image로 매핑됩니다.
매핑 동작은 sp_addarticle 및 sp_addmergearticle의 @schema\_option 매개 변수에 의해 제어됩니다.
스키마 옵션을 설정하는 방법은 방법: 스키마 옵션 지정(SQL Server Management Studio) 및 방법: 스키마 옵션 지정(복제 Transact-SQL 프로그래밍)을 참조하십시오.
SQL Server 2008 데이터 형식 |
SQL Server 2005 데이터 형식 |
SQL Server 2000 데이터 형식 |
---|---|---|
공용 언어 런타임 UDT(사용자 정의 형식): 8000바이트 이하 |
UDT |
image |
UDT: 8000 바이트 초과1 |
varbinary(max) |
image |
date2, 3 |
nvarchar(10) |
nvarchar(10) |
datetime22, 3 |
nvarchar(27) |
nvarchar(27) |
datetimeoffset2, 3 |
nvarchar(34) |
nvarchar(34) |
FILESTREAM특성1, 4 |
varbinary(max) |
지원되지 않음 |
geography 및 geometry1, 3 |
varbinary(max) |
image |
hierarchyid1, 5 |
varbinary(max) |
image |
nvarchar(max) |
nvarchar(max) |
ntext |
time2, 3 |
nvarchar(16) |
nvarchar(16) |
varchar(max) |
varchar(max) |
text |
varbinary(max) |
varbinary(max) |
image |
xml |
xml |
ntext |
1 업데이트할 수 있는 구독이 있는 트랜잭션 게시에서는 UDT, FILESTREAM, geography, geometry 및 hierarchyid 형식에 대한 매핑이 지원되지 않습니다. 업데이트 중인 모든 구독자가 SQL Server 2008 이상 버전을 실행하는 경우에만 이러한 형식을 포함하십시오.
2 복제는 구독자에서 삽입된 데이터의 형식을 확인하지 않습니다. 따라서 응용 프로그램에서 date, datetime2, datetimeoffset 및 time 형식의 열에 올바른 형식의 데이터를 삽입해야 합니다. 이를 위해 일반적으로 제약 조건이 사용됩니다. 데이터가 올바른 형식이 아닌 경우 게시자에서 삽입이 실패합니다.
3SQL Server Compact 3.5 구독자는 이러한 형식을 복제 후에 변환합니다. SQL Server Compact 3.5의 데이터 형식 매핑에 대한 자세한 내용은 SQL Server Compact 3.5 설명서를 참조하십시오.
geography 또는 geometry 형식의 열을 varbinary(max) 또는 image로 매핑하는 경우 이러한 열의 기본 제약 조건을 복제할 수 없습니다. 결과적으로 다음과 같은 작업이 필요합니다.
게시자에 기본 제약 조건이 이미 있는 경우 이 제약 조건을 삭제하거나 제약 조건이 복제되지 않도록 지정합니다. 복제되지 않도록 지정하려면 기본 제약 조건에 아티클 스키마 옵션을 사용합니다.
기본값 지정 복사 옵션에 False 값을 선택합니다. 자세한 내용은 방법: 스키마 옵션 지정(SQL Server Management Studio)을 참조하십시오.
스키마 옵션 0x800을 해제합니다. 자세한 내용은 방법: 스키마 옵션 지정(복제 Transact-SQL 프로그래밍)을 참조하십시오.
게시자에 기본 제약 조건을 추가하려면 먼저 스키마 변경 내용이 복제되지 않도록 지정하십시오. 자세한 내용은 방법: 스키마 변경 내용 복제(SQL Server Management Studio) 및 방법: 스키마 변경 복제(복제 Transact-SQL 프로그래밍)를 참조하십시오.
4 FILESTREAM은 varbinary(max) 열의 특성입니다. 복제된 테이블에서 FILESTREAM 열을 사용하는 방법은 다른 SQL Server 기능과 함께 FILESTREAM 사용의 "복제" 섹션을 참조하십시오. FILESTREAM 특성이 있는 열은 문자 모드 스냅숏을 사용하는 게시에 포함되면 안 됩니다.
5hierarchyid 형식의 열에 대한 지원 여부는 복제 유형과 사용된 SQL Server 버전에 따라 결정됩니다. 자세한 내용은 hierarchyid(Transact-SQL)의 "복제된 테이블에서 hierarchyid 열 사용" 섹션을 참조하십시오. 병합 복제의 경우 게시 호환성 수준이 100RTM이고 문자 모드 스냅숏이 사용될 때 hierarchyid가 image로 매핑됩니다.
XML 데이터 형식 복제
XML 데이터 형식을 SQL Server Compact 3.5 SP1로 복제할 때 병합 복제는 Ntext에 이를 매핑합니다. SQL Server 2008의 XML 데이터에는 UTF-16 인코딩을 위한 접두사 바이트가 포함되어 있습니다. 이러한 접두사 바이트는 병합 복제를 사용하여 SQL Server에서 SQL Server Compact 3.5 SP1로 복제할 때 보존되지만 SQL Server Compact 3.5 SP1 데이터베이스의 Ntext 열을 볼 때 SQL Server Management Studio에서 인식하지 못합니다. 따라서 이러한 바이트는 가비지 문자로 표시됩니다.
SQL Server 2008의 업데이트된 XML 스키마 컬렉션은 XML 스키마에 바인딩된 XML 열을 SQL Server 2008에서 SQL Server 2005로 복제하는 데 영향을 미칩니다.
SQL Server 2008에서는 date, time 및 datetime XML 스키마 값에 표준 시간대를 지정하지 않아도 됩니다. 즉, SQL Server 2008 게시자 XML 열에 표준 시간대를 지정하지 않을 경우 SQL Server 2005에서는 표준 시간대를 지정해야 하므로 SQL Server 2005 구독자에 변경 내용이 적용되지 않습니다.
SQL Server 2005에서는 SQL Server 2008 게시자의 date, time 및 datetime XML 스키마 형식화된 값에 대한 표준 시간대 정보가 UTC-0 표준 시간대로 변환되며 표준 시간대 표시 Z로 표시됩니다.
SQL Server 2008 XML 스키마 date, time 및 datetime 형식은 더 큰 전체 자릿수를 지원합니다. 따라서 이러한 값은 SQL Server 2005로 복제하면 반올림됩니다.
XML 스키마 date 또는 datetime 값을 SQL Server 2005에서 SQL Server 2008로 복제할 때 음수 연도가 있는 값은 SQL Server 2008에 적용되지 않습니다. 이는 음수 연도가 있는 값이 SQL Server 2008에서 지원되지 않기 때문입니다.
이러한 경우 복제 에이전트에 있는 sp_table_validation 및 Validate 메서드가 실패할 수 있습니다. 자세한 내용은 형식화된 XML과 형식화되지 않은 XML의 "SQL Server 2005에서 SQL Server 2008로 형식화된 XML 업그레이드" 섹션을 참조하십시오.
압축된 데이터 게시
SQL Server 2008에서는 테이블 및 인덱스 모두에 대해 행 압축과 페이지 압축이 모두 지원됩니다. 압축된 데이터의 복제 지원에 대한 자세한 내용은 압축된 테이블 및 인덱스 만들기의 "압축이 복제에 주는 영향"을 참조하십시오.
이전 버전에서 복제된 데이터베이스 복원
이전 버전에서 복제된 데이터베이스의 백업을 복원할 경우 복제 설정을 유지할 수 있습니다. 백업 당시의 서버 및 데이터베이스와 같은 이름의 서버 및 데이터베이스에 백업을 복원할 경우 또는 KEEP_REPLICATION 옵션을 지정한 경우 복제 설정이 유지됩니다. 자세한 내용은 RESTORE(Transact-SQL)를 참조하십시오. 데이터베이스를 복원한 후 sp_vupgrade_replication을 실행하여 현재 제품 수준의 복제를 지원하도록 스키마 및 시스템 데이터를 업그레이드합니다.
이전 버전에서 백업을 복원한 후 복제를 유지할 수 있지만 이 기능은 업그레이드 옵션으로 거의 사용되지 않습니다. 복제된 데이터베이스를 제품 업그레이드의 일부로 업그레이드하거나 스크립트 집합에서 데이터베이스 및 복제 구성을 다시 만드는 기능이 더 일반적으로 사용됩니다.
병합 게시에 대한 호환성 수준
병합 복제는 게시 호환성 수준을 사용하여 지정된 데이터베이스에서 게시에 사용할 수 있는 기능을 확인합니다. 값 범위는 80RTM(서비스 팩이 설치되지 않은 SQL Server 2000)에서 100RTM(SQL Server 2008)까지입니다. 다음 중 한 가지 방법으로 호환성 수준을 지정할 수 있습니다.
sp_addmergepublication의 @publication\_compatibility\_level 매개 변수를 사용합니다. 자세한 내용은 방법: 병합 게시에 대한 호환성 수준 설정(복제 Transact-SQL 프로그래밍)을 참조하십시오.
새 게시 마법사의 구독자 유형 페이지에서 지정합니다. 이 마법사를 실행하는 방법은 방법: 게시 만들기 및 아티클 정의(SQL Server Management Studio)를 참조하십시오.
게시 속성 - <Publication> 대화 상자의 일반 페이지에서 지정합니다. 자세한 내용은 방법: 병합 게시에 대한 호환성 수준 설정(SQL Server Management Studio)을 참조하십시오.
다음 기능은 90RTM 이상의 호환성 수준을 필요로 합니다.
논리 레코드. 자세한 내용은 논리적 레코드를 사용하여 관련된 행의 변경 내용을 그룹화를 참조하십시오.
구독자 업로드 옵션. 자세한 내용은 다운로드 전용 아티클로 병합 복제 성능 최적화를 참조하십시오.
겹치지 않는 파티션. 자세한 내용은 매개 변수가 있는 행 필터를 참조하십시오.
비즈니스 논리 처리기. 자세한 내용은 병합 동기화 중 비즈니스 논리 실행을 참조하십시오.
ALTER <OBJECT> 문을 사용한 스키마 변경. 자세한 내용은 게시 데이터베이스의 스키마 변경을 참조하십시오.
다음 기능은 호환성 수준과는 관계가 없지만 SQL Server 2005 이상 버전에 포함되어 있는 병합 에이전트를 필요로 합니다. 이전 버전의 SQL Server를 실행하는 구독자는 이 기능이 설정되지 않은 것처럼 작동합니다.
사전 계산 파티션. 자세한 내용은 사전 계산 파티션으로 매개 변수가 있는 필터 성능 최적화를 참조하십시오.
웹 동기화. 자세한 내용은 병합 복제에 대한 웹 동기화를 참조하십시오.
병렬 단계 에이전트(병합 에이전트에 대해 -ParallelUploadDownload 지정). 자세한 내용은 복제 병합 에이전트를 참조하십시오.
매개 변수가 있는 필터를 사용하는 게시에 대한 스냅숏 기능. 이러한 기능은 다음을 제공합니다.
파티션에 대한 스냅숏을 사용할 수 없는 경우 구독자가 스냅숏을 요청할 수 있습니다.
관리자는 스냅숏을 사전에 생성하거나 생성 일정을 예약할 수 있습니다.
FTP를 사용하여 매개 변수가 있는 스냅숏을 배달할 수 있습니다.
자세한 내용은 매개 변수가 있는 필터를 사용하는 병합 게시의 스냅숏 및 FTP를 통해 스냅숏 전송을 참조하십시오.
복제 모니터의 기록 로깅 및 아티클 수준 통계 향상. 자세한 내용은 방법: 구독에 대한 정보 보기 및 태스크 수행(복제 모니터)을 참조하십시오.
SQL Server 2008의 게시 호환성 수준 동작
다음은 게시 호환성 수준에서 고려해야 할 몇 가지 중요한 동작입니다.
이 게시 호환성 수준은 데이터베이스 호환성 수준과는 관계가 없습니다.
sp_addmergepublication 또는 RMO(복제 관리 개체)를 사용하여 게시를 만들 경우 게시 호환성 수준은 기본적으로 80RTM으로 설정됩니다. 새 게시 마법사에서 게시를 만들 경우 게시 호환성 수준은 마법사의 구독자 유형 페이지에서 선택한 옵션을 기준으로 결정됩니다.
SQL Server 2005 이전의 SQL Server 버전에서는 높은 호환성 수준이 필요한 기능을 설정하면 게시 호환성 수준이 자동으로 높아졌습니다. SQL Server 2005부터는 90RTM 이상의 호환성 수준이 필요한 기능을 설정하기 전에 수동으로 게시 호환성 수준을 90RTM 이상으로 설정해야 합니다.
게시 호환성 수준은 스냅숏 에이전트가 시작되지 않고 게시에 구독이 없는 경우에만 감소시킬 수 있습니다.
동일한 데이터베이스의 모든 게시는 동일한 호환성 수준을 가집니다. 결과적으로 다음과 같은 작업이 필요합니다.
데이터베이스에 호환성 수준이 낮은(예: 80RTM) 게시가 있는데 동일한 데이터베이스에 수준이 90RTM 이상인 또 다른 게시를 추가하려는 경우 새로운 게시를 추가하기 전에 수동으로 첫 번째 게시의 수준을 높여야 합니다.
데이터베이스에 호환성 수준이 낮은 게시가 두 개 이상 있는데 동일한 데이터베이스에 수준이 90RTM 이상인 또 다른 게시를 추가하려는 경우 기존 게시를 하나만 남기고 모두 삭제하고 남은 게시의 수준을 90RTM 이상으로 높인 후 삭제한 게시를 90RTM 이상의 수준으로 다시 만든 다음 90RTM 이상의 수준으로 새 게시를 만들어야 합니다.
웹 동기화에 필요한 구성 요소 및 호환성 수준
SQL Server 2008은 SQL Server 2005, SQL Server 2008 및 SQL Server Compact 3.5 버전 3.0, 3.1, 3.5를 실행하는 구독자에 대해 웹 동기화를 지원합니다. 다음 표에서는 각 구독자 유형에 필요한 게시 호환성 수준 및 서버 구성 요소를 나열합니다.
게시자 버전 |
구독자 버전 |
필요한 게시 호환성 수준 |
IIS 서버에 필요한 구성 요소 |
---|---|---|---|
SQL Server 2008 |
SQL Server 2008 |
100RTM |
SQL Server 2008 IIS 구성 요소 |
SQL Server 2008 |
SQL Server Compact 3.5 3.0, 3.1 및 3.5 |
90RTM |
SQL Server Compact 3.5 SP1 IIS 구성 요소 및 SQL Server 2008 IIS 구성 요소 |
SQL Server 2008 |
SQL Server 2005 |
90RTM |
SQL Server 2008 IIS 구성 요소 |
SQL Server 2005 |
SQL Server 2005 |
90RTM |
SQL Server 2005 IIS 구성 요소 |
SQL Server 2005 |
SQL Server Compact 3.5 3.0, 3.1 및 3.5 |
90RTM |
SQL Server Compact 3.5 SP1 IIS 구성 요소 및 SQL Server 2005 IIS 구성 요소 |
SQL Server 2005 |
SQL Server 2008 |
해당 사항 없음1 |
해당 사항 없음1 |
1 게시자 버전은 구독자 버전 이상이어야 하므로 이 구성은 지원되지 않습니다.