모든 유형의 복제에 대한 고려 사항
설명서의 이 섹션에는 ID 열, 제약 조건 및 데이터 형식과 같이 복제를 구현하기 전에 고려해야 할 영역이 포함되어 있습니다. 이 항목에서는 모든 유형의 복제에 영향을 주는 영역에 대해 설명하고 다음 항목에서는 추가 정보를 제공합니다.
- 스냅숏 복제에 대한 고려 사항
- 트랜잭션 복제에 대한 고려 사항
- 병합 복제에 대한 고려 사항
- 복제에 대한 국가별 고려 사항
- NOT FOR REPLICATION으로 제약 조건, ID 및 트리거 제어
- 복제의 이전 버전과의 호환성
- 복제 토폴로지에 SQL Server의 여러 버전 사용
이러한 항목 외에도 각 복제 기능에 대한 항목에 기능 구현 시 고려할 사항이 설명되어 있습니다.
SQL Server 에이전트
복제는 에이전트라는 독립 실행형 프로그램을 사용하여 변경 내용 추적 및 데이터 배포와 연관된 작업을 수행합니다. 기본적으로 복제 에이전트는 SQL Server 에이전트에서 예약된 작업으로 실행됩니다. 작업을 실행하려면 SQL Server 에이전트가 실행되고 있어야 합니다. SQL Server 2005가 설치될 때 사용자가 SQL Server 에이전트 서비스를 자동으로 시작하도록 명시적으로 선택하지 않으면 기본적으로 이 서비스는 해제됩니다. SQL Server 에이전트 서비스를 시작하는 방법은 SQL Server 에이전트 시작을 참조하십시오.
보안 고려 사항
응용 프로그램의 데이터 및 비즈니스 논리를 보호하려면 복제 환경의 보안 유지 방법을 이해하는 것이 중요합니다. 기본적으로 복제 환경의 보안 유지를 위해서는 인증 및 권한 부여 옵션을 이해하고, 복제 필터링 기능의 적절한 사용 방법을 이해하고, 복제 환경의 각 부분(배포자, 게시자, 구독자 및 스냅숏 폴더)에 대해 보안을 유지하는 구체적인 방법을 배워야 합니다. 자세한 내용은 복제에 대한 보안 고려 사항을 참조하십시오.
관리 고려 사항
복제를 구성한 후에는 복제 토폴로지 관리 방법을 이해하는 것이 중요합니다. 최선의 복제 관리 방법은 최선의 복제 관리 방법을 참조하십시오. 이 항목에서는 다양한 영역의 작업에 대한 기본적인 수행 방법과 각 영역에 대한 추가 정보를 제공하는 링크를 제공합니다. 이 항목에 제공된 최상의 수행 방법 외에 다음의 FAQ 항목을 읽고 일반적인 질문 사항과 문제점에 대해 숙지하십시오. 복제 관리자를 위한 질문과 대답.
네트워크 및 성능 고려 사항
다음과 같은 영역에서는 성능과 관련된 여러 가지 최선의 방법을 수행할 수 있습니다.
- 서버 및 네트워크 하드웨어
- 데이터베이스 디자인
- 배포자 구성
- 게시 디자인 및 옵션
- 필터 디자인 및 사용
- 구독 옵션
- 스냅숏 옵션
- 에이전트 매개 변수
- 유지 관리
자세한 내용은 복제 성능 향상을 참조하십시오.
저속 연결을 통해 복제하는 경우 복제와 관련된 에이전트에 대한 프로필을 사용자 지정할 수 있습니다. 구성 옵션은 프로필이 구성되어 있는 에이전트에 따라 다릅니다. 자세한 내용은 복제 에이전트 프로필 및 느린 네트워크로 인해 문제가 발생함을 참조하십시오.
대부분의 경우 초기 스냅숏을 적용할 때 가장 중요한 문제는 네트워크 속도입니다. 증분 데이터 변경 내용의 양이 적어도 초기에 배포되는 데이터의 양은 클 수 있습니다. 가능한 해결책은 다음과 같습니다.
- CD-ROM 또는 테이프 장치를 사용하여 스냅숏을 전송합니다. 자세한 내용은 대체 스냅숏 폴더 위치 및 압축 스냅숏을 참조하십시오.
- 스냅숏 없이 구독을 초기화합니다. 자세한 내용은 스냅숏 없이 트랜잭션 구독 초기화 및 스냅숏 없이 병합 구독 초기화를 참조하십시오.
복제 토폴로지에서 서버 이름 지정
복제에 참여하는 서버 인스턴스 이름을 지정할 때는 SQL Server에 등록된 서버 인스턴스 이름의 형식으로 이름을 지정해야 합니다. 예를 들어 복제 저장 프로시저에 대해 게시자 또는 구독자 매개 변수를 지정하거나 명령줄에서 복제 에이전트 연결 설정을 지정할 때 SQL Server 인스턴스 이름을 사용해야 합니다. SQL Server 인스턴스에 대한 네트워크 이름이 등록된 인스턴스 이름과 다른 경우 에이전트에 의한 복제 연결이 실패합니다. 인스턴스의 네트워크 이름과 SQL Server 인스턴스 이름이 다른 경우 올바른 네트워크 이름으로 SQL Server 인스턴스 이름을 추가하십시오. 대체 네트워크 이름을 설정하는 방법 중 하나는 해당 이름을 로컬 호스트 파일에 추가하는 것입니다. 로컬 호스트 파일은 기본적으로 WINDOWS\system32\drivers\etc 또는 WINNT\system32\drivers\etc에 있습니다. 자세한 내용은 Windows 설명서를 참조하십시오.
예를 들어 컴퓨터 이름이 comp1이고 컴퓨터의 IP 주소가 10.193.17.129이고 인스턴스 이름이 inst1/instname이면 호스트 파일에 다음 항목을 추가하십시오.
10.193.17.129 inst1
데이터 무결성
구독자에서 업데이트를 수행할 수 있는 토폴로지에서는 각 구독자에서 응용 프로그램 무결성이 유지되어야 합니다. 제약 조건과 같이 구독자에서 데이터 변경의 유효성을 확인하는 데 사용되는 모든 제어가 구독자에 지정되어 있거나 응용 프로그램에서 처리되어야 합니다. 구독자의 복제 에이전트 및 제약 조건에 대한 자세한 내용은 NOT FOR REPLICATION으로 제약 조건, ID 및 트리거 제어를 참조하십시오.
데이터 충돌
구독자에서 업데이트할 수 있는 토폴로지에서는 충돌을 최소화하도록 응용 프로그램을 디자인합니다. 구독자에서 데이터를 읽기만 하고 업데이트할 필요가 없는 경우에는 충돌이 방지됩니다. 지리적 위치 또는 비즈니스 용도에 따라 데이터를 논리적으로 분할해도 사용자가 같은 데이터 값을 업데이트하지 못하도록 하여 충돌을 방지할 수 있습니다. 데이터를 분할하는 방법은 게시된 데이터 필터링을 참조하십시오.
LOB(Large Object) 데이터 형식
text, ntext 및 image 데이터 형식은 사용되지 않습니다. 이러한 형식 대신 각각 varchar(max), nvarchar(max), varbinary(max) 데이터 형식을 사용하는 것이 좋습니다. text, ntext 및 image 데이터 형식을 사용하는 경우 자세한 내용은 트랜잭션 복제에 대한 고려 사항 및 병합 복제에 대한 고려 사항 항목의 "LOB(Large Object) 데이터 형식" 섹션을 참조하십시오.
문자 모드 스냅숏은 비-SQL Server(Non-SQL Server) 게시자, 비-SQL Server(Non-SQL Server) 구독자 및 Microsoft SQL Server 2005 Compact Edition을 실행하는 구독자에 의해 사용됩니다. 문자 모드 스냅숏을 사용하는 경우 LOB 형식은 유니코드로 변환되어 스냅숏 파일의 LOB 데이터가 게시 데이터베이스의 동일한 데이터보다 4배 커지게 됩니다. 이 데이터를 구독 데이터베이스로 복사하면 다시 변환되어 결과적으로 게시 데이터베이스의 데이터 크기와 동일하게 됩니다.
데이터 형식 매핑
복제 토폴로지에 이전 버전의 SQL Server, SQL Server 2005 Compact Edition, 비-SQL Server(Non-SQL Server) 게시자 또는 비-SQL Server(Non-SQL Server) 구독자가 포함된 경우 데이터 형식은 데이터베이스 간에 매핑됩니다. 데이터 형식 매핑 목록은 다음을 참조하십시오.
- 복제 토폴로지에 SQL Server의 여러 버전 사용
- 데이터 형식 및 복제 (SQL Server 2005 Compact Edition)
- Oracle 게시자에 대한 데이터 형식 매핑
- Oracle 구독자
- IBM DB2 구독자
ID 열
둘 이상의 노드에서 업데이트된 ID 열을 복제 토폴로지에서 사용하려면 복제 토폴로지의 각 노드가 다른 범위의 ID 값을 사용해야 중복이 발생하지 않습니다. 복제는 모든 게시 및 구독 유형에서 ID 열을 처리하므로 사용자가 열을 수동으로 관리하거나 복제를 통해 자동으로 관리되도록 할 수 있습니다. 자세한 내용은 ID 열 복제를 참조하십시오.
계산 열
복제는 계산 열의 정의만 구독자로 복사합니다. 구독자의 각 행에 대한 값은 구독자의 데이터 및 열 계산에 비결정적 함수가 사용되는지 여부에 따라 달라집니다. 특정 시점에 게시자의 데이터와 구독자의 데이터가 동일하고 계산에 결정적 함수만 사용되는 경우 행에 대해 계산된 값은 동일합니다. 데이터가 다르거나 계산에 하나 이상의 비결정적 함수가 사용되는 경우에는 게시자의 값과 구독자의 값이 다를 수 있습니다. 함수의 결정성에 대한 자세한 내용은 결정적 함수 및 비결정적 함수를 참조하십시오.