SQL Server 2005 Replication의 주요 변경

업데이트: 2006년 4월 14일

이 항목에서는 응용 프로그램을 변경해야 할 수도 있는 복제 기능 변경에 대해 설명합니다.

[!참고] 이 항목은 설치 도움말 설명서와 SQL Server 2005 온라인 설명서에서 사용할 수 있습니다. 설치 도움말 설명서에서 굵게 표시된 항목 링크는 온라인 설명서에만 제공되는 항목을 나타냅니다.

모든 복제 유형에 영향을 주는 주요 변경

다음 주요 변경은 Microsoft SQL Server 2005의 모든 복제 유형에 적용됩니다.

기능 설명

복제 스크립트에 필요한 변경

복제 에이전트 보안 모델이 Microsoft SQL Server 2000에서 변경되었습니다. 보안 모델에 대한 자세한 내용은 복제 에이전트 보안 모델을 참조하십시오. SQL Server 2005의 sysadmin 고정 서버 역할의 멤버로 SQL Server 2000 또는 SQL Server 7.0에서 작성한 복제 스크립트를 실행하는 경우 스크립트는 제대로 실행됩니다. dbo 고정 데이터베이스 역할 또는 다른 역할의 멤버인 경우 스크립트는 실패하므로 업그레이드해야 합니다. 스크립트 업그레이드에 대한 자세한 내용은 How to: Upgrade Replication Scripts (Replication Transact-SQL Programming)를 참조하십시오. sysadmin 역할의 멤버에 의해 실행되는 스크립트는 반드시 업그레이드할 필요는 없지만 향상된 보안 기능을 활용하기 위해 업그레이드하는 것이 좋습니다.

복제 에이전트에 대한 로컬 연결

SQL Server 2005로의 업그레이드 시 SQL Server 인증을 사용하는 모든 로컬 연결은 Windows 인증을 사용하도록 수정됩니다. 로컬 연결은 에이전트가 있는 컴퓨터에서 실행되는 SQL Server 인스턴스에 대해 에이전트가 설정하는 연결을 말합니다. 예를 들어 끌어오기 구독을 위한 병합 에이전트는 구독자에서 실행되므로 구독자에 대해 설정되는 연결이 로컬 연결이 됩니다.

이전 SQL Server 버전에서 에이전트는 기본적으로 SQL Server 에이전트 서비스 계정 컨텍스트에서 실행되었습니다. 업그레이드 후 로컬 연결은 이 계정의 컨텍스트에서 설정됩니다. SQL Server 2005에서는 복제 에이전트를 실행하여 데이터베이스 및 기타 리소스로 Windows 통합 연결을 설정하는 각 계정을 더욱 세밀하게 제어할 수 있습니다. 각 에이전트에 대해 서로 다른 계정을 지정할 수 있습니다. 업그레이드 후에는 각 에이전트에 대해 서로 다른 계정을 지정하는 것이 좋습니다. 자세한 내용은 복제된 데이터베이스 업그레이드복제 에이전트 보안 모델을 참조하십시오.

ActiveX 컨트롤

모든 ActiveX 컨트롤은 스크립팅 및 초기화에 안전하지 않은 것으로 표시됩니다.

스냅숏 에이전트 ActiveX 컨트롤은 SQL Server 2005에서 사용할 수 없습니다. 대신 관리되는 새 스냅숏 에이전트를 사용하십시오. 자세한 내용은 SnapshotGenerationAgentHow to: Create the Initial Snapshot (RMO Programming)를 참조하십시오.

distributor_admin 계정 암호

게시자와 원격 배포자 간의 트러스트된 연결은 두 서버 간에 암호를 필요로 하지 않았기 때문에 더 이상 지원되지 않습니다. SQL Server 2000 서비스 팩 3 이전 버전에서는 트러스트된 연결이 기본적으로 사용되었습니다. 원격 배포자를 사용하는 경우 SQL Server 2005로 업그레이드하기 전에 트러스트된 연결을 트러스트되지 않은 연결로 변환하십시오. 이 문제는 로컬 배포자를 사용하는 게시자에는 영향을 주지 않습니다. distributor_admin 계정에 대한 자세한 내용은 배포자 보안 설정을 참조하십시오.

사용 중인 연결 유형을 확인하려면

트러스트되지 않은 연결로 변경하려면

  1. 배포자에서 sp_changedistpublisher(Transact-SQL)를 실행하여 @property 매개 변수 값은 'trusted'로 지정하고 @value 매개 변수 값은 'False'로 지정합니다.
    ms143470.note(ko-kr,SQL.90).gif참고:
  2. 게시자와 배포자 모두에서 sp_changedistributor_password(Transact-SQL)를 실행하여 @password 매개 변수에 강력한 암호를 지정합니다.

SQL Server Express는 SQL Server 에이전트를 포함하지 않음

SQL Server Express로 업그레이드할 경우 SQL Server Express에는 SQL Server 에이전트가 없기 때문에 복제 동기화를 다시 구성해야 합니다.

끌어오기 구독을 사용하려면 RMO(복제 관리 개체) 및 Windows 동기화 관리자를 사용하여 동기화하거나 명령줄에서 복제 에이전트를 실행하여 동기화해야 합니다. 자세한 내용은 SQL Server Express에 데이터 복제를 참조하십시오.

SQL Server 에이전트를 사용하여 복제 에이전트 작업을 계속 실행하려면 밀어넣기 구독을 사용하거나 다른 버전의 SQL Server로 업그레이드해야 합니다. SQL Server Express 및 Microsoft SQL Server 2005 Compact Edition을 제외한 모든 버전에는 SQL Server 에이전트가 포함되어 있습니다. 밀어넣기 구독을 사용하면 배포자에서 배포 에이전트 또는 병합 에이전트가 실행되므로 SQL Server 에이전트를 사용할 수 있습니다. SQL Server Express는 배포자가 될 수 없습니다.

Microsoft Access(Jet 4.0) 구독자

Jet는 Access에서 사용되는 기본 데이터베이스이며 SQL Server 2000에서는 복제가 Jet 데이터베이스에 대한 구독을 지원했습니다. 이러한 구독은 더 이상 지원되지 않습니다.

대신 Microsoft SQL Server 2005 Express Edition을 사용하는 것이 좋습니다. Access는 SQL Server 데이터베이스를 백 엔드로 사용할 수 있으며 SQL Server 데이터베이스는 이 문제로 인해 영향을 받지 않습니다. 자세한 내용은 SQL Server Express에 데이터 복제를 참조하십시오.

트랜잭션 복제에 대한 주요 변경

다음 주요 변경은 SQL Server 2005의 트랜잭션 복제에 적용됩니다.

기능

설명

지연 구독 업데이트에 대한 메시지 큐 옵션

지연 구독 업데이트를 사용할 경우 구독자의 변경 내용이 큐에 기록됩니다. 그러면 큐 판독기 에이전트가 큐에서 변경 내용을 읽은 다음 게시자로 배달합니다. SQL Server 2000에서 구독은 SQL Server 큐 또는 메시지 큐에 변경 내용을 저장할 수 있었습니다. 큐 유형이 sp_addpublication(Transact-SQL)@queue_type 매개 변수로 지정되었으므로 sqlmsmq 값이 허용되었습니다. 그러나 SQL Server 2005에서는 sql 값만 허용됩니다. 메시지 큐를 사용하는 기존 게시는 업그레이드 중에 SQL Server 큐를 사용하도록 수정됩니다. 메시지 큐를 사용하는 지연 업데이트에 종속된 응용 프로그램인 경우 SQL Server 큐를 허용하도록 다시 작성해야 합니다. 지연 구독 업데이트에 대한 자세한 내용은 트랜잭션 복제를 위한 업데이트 가능 구독을 참조하십시오.

SQL Server가 업그레이드되는 동안 메시지 큐 서비스가 실행 중이면 업그레이드 시 기존 MSMQ(Microsoft Message Queuing) 구독 큐는 제거됩니다.

ms143470.note(ko-kr,SQL.90).gif중요:

Windows 2000 및 Windows XP의 경우 메시지 큐가 이러한 운영 체제에서 MSDTC(Microsoft Distributed Transaction Coordinator)를 필요로 하기 때문에 MSDTC 서비스도 실행 중이어야 합니다.

메시지 큐 서비스가 실행 중이 아니면 업그레이드가 완료된 후에 수동으로 큐를 제거해야 합니다. 큐 제거 방법은 Windows 설명서를 참조하십시오.

병합 복제에 대한 주요 변경

다음 주요 변경은 SQL Server 2005의 병합 복제에 적용됩니다.

기능 설명

SQL Server Express에서 게시

SQL Server MSDE는 병합 게시의 게시자 역할을 할 수 있었으나 MSDE 대신 사용되는 SQL Server Express는 게시자 역할을 할 수 없습니다. 이 버전은 병합, 트랜잭션 및 스냅숏 게시를 구독할 수 있습니다. 구독 업데이트가 있는 병합 복제 및 트랜잭션 복제의 경우 변경 내용을 구독자에서 게시자로 다시 전파할 수 있도록 허용합니다. SQL Server Express로 복제하는 방법에 대한 자세한 내용은 SQL Server Express에 데이터 복제를 참조하십시오.

변경 내용 일괄 처리

이전 버전의 SQL Server에서는 병합 에이전트의 변경 내용이 행 단위로 처리되었습니다. SQL Server 2005에서는 성능을 높이기 위해 변경 내용이 일괄 처리되므로 단일 문에서 둘 이상의 행을 삽입, 업데이트 또는 삭제할 수 있습니다. 게시 또는 구독 데이터베이스의 게시된 테이블에 트리거가 있을 경우 해당 트리거에서 다중 행 삽입, 업데이트 및 삭제를 처리할 수 있습니다. 자세한 내용은 DML 트리거에 대한 다중 행 고려 사항을 참조하십시오.

충돌 테이블 다시 만들기

SQL Server 2005로 업그레이드 시 소유자를 DBO로 하여 충돌 테이블이 다시 생성됩니다. SQL Server 2000에서 다른 사용자가 소유한 테이블이 하나라도 있다면 응용 프로그램을 수정해야 합니다.

병합 복제는 게시의 각 아티클에 대한 충돌 테이블을 conflict_PublicationName_ArticleName 형식의 이름으로 만듭니다. 모든 메타데이터 테이블은 업그레이드 시 다시 생성되고 모든 충돌 테이블은 DBO 스키마에서 생성됩니다.

새로 할당된 ID 범위

자동 ID 범위 관리를 사용하는 테이블에 대해 복제는 업그레이드 동안 새 ID 범위를 할당할 수도 있습니다. 임의의 테이블에 할당된 ID 범위가 게시자보다 구독자에서 더 크다면 복제는 구독자의 범위와 같은 범위를 할당합니다.

각 아티클에 사용되는 범위를 확인하려면 게시 데이터베이스에서 sp_helpmergearticle(Transact-SQL)을 실행하고 pub_identity_rangeidentity_range 열을 검사하십시오.

참고 항목

개념

복제의 이전 버전과의 호환성

관련 자료

향상된 복제 기능

도움말 및 정보

SQL Server 2005 지원 받기