Home | Data Center | Contact US | Login

제목 MSSQL2005 Replication
첨부파일 MSSQL_Replication-2009-0508.pdf 작성일 2009-05-08 12:52:42


MSSQL2005 Replication

작성자 : 넥스트라인 고객기술지원팀 최보근
작성일 : 2009년 5월 8일


리플리케이션

한 서버에 있는 데이터를 다른 서버로 배포하는데 사용하거나, 중앙 데이터 베이스의 변경 내용을 원격
데이터 베이스와 일치시키거나, 업무 부하를 분산할 여러 개의 데이터 베이스 인스턴스를 만들거나,
중앙 서버의 특정 Data Set을 여러 개의 다른 서버로 배포하거나, Data를 customize하고 다수의 가입자에게
배포하기 위하여 사용 합니다.

복제의 내용은 table, table의 특정 열 / 특정 행, 특정 열과 특정 행으로 이루어진 table의 부분 집합, view,
index, user define function, stored procedure를 포함할 수 있습니다. 또한, 조건을 부여하여 해당 조건을
만족하는 내용만을 복제하는 일도 가능합니다.
복제할 수 없는 내용으로는 model, tempdb, msdb, master와 같은 DB의 객체는 복제할 수 없습니다.

복제를 사용하는 목적과 장점은 데이터를 분산시킴으로써 1대에서 문제가 생길 경우에도 어느 정도의
가용성을 보장하며, 여러 대의 서버에서 같은 정보를 제공함으로써 다양한 사용자가 같은 데이터를
사용할 수 있게 합니다. 사용자가 많은 조직인 경우 여러 대의 서버를 통해 사용자의 작업을 분산시킴
으로써 서버의 부하를 낮춥니다.
또한 조직이 크거나 시스템의 한도초과로 시스템이 더 이상 부하를 이겨내지 못할 경우, 지리적으로 먼
거리의 사용자가 원격지의 SQL Server에 접속 시, 네트워크 문제로 인해 서비스가 중단되는 것을 방지하기
위해 서버를 분산 시킬 수 있습니다.

환경 : Windows2003 standard Edition MSSQL 2005 Standard Editions

용어설명
1. 배포서버 : 데이터베이스가 실제로 쌓이는 서버이며 원본이라고 할 수가 있다.
2. 게시서버 : 이 문서에서는 배포서버와 같이 사용되었으며, 서버 구성상 데이터베이스를 저장하는
                  서버가  아니고 단지,로드밸런서 처럼 데이터베이스를 각각의 구독서버(데이터베이스 
                  클라이언트)로  전송하는 역할
3. 구독서버 : 데이터베이스 클라이언트로서 원본으로부터 데이터를 받아서 저장하는 곳으로 이용되는
                  서버이다.

복제의 방법
1. 스냅슛 게시 : 장점은 정확한 복사. 단점은 업무 부하 및 Network tranffic 증가,
                         정해진 주기로만 동기화
2. 트랜젝션 게시 : 장점은 비교적 정확한 복사와 융통성있는 동기화. Transaction 사용. 
                            이 문서에서 사용된 방법이며, 증분된 데이터베이스만을 전송하기 때문에
                            효율적이다.
3. 병합 게시 : 분산 Transaction을 사용하지 않기 때문에 Transaction의 일관성을 보장하지 않음.
                     서버 다른 데이터 내용을 합치는 방식이다.

복제와 관련된 에이전트
SQL Server 에이전트 : 가장 필수적인 에이전트
스냅숏 에이전트(Snapshot Agent) : 스냅숏 복제 및 트랜잭션 복제, 병합복제의 초기 데이터에 사용
로그판독기 에이전트(Log Reader Agent) : 트랜잭션 복제
                                                          (로그를 읽어서 변한 부분을 복제에 적용 시켜주는 역할)
배포 에이전트(Distribution Agent) : 스냅숏 복제 및 트랜잭션 복제
병합 에이전트(Merge Agent) : 마지막 스냅숏 복제가 일어난 후 변경된 다른 서버들의 변경사항을
                                          병합할때 사용

참고(원격 연결이 제한 되는 경우)
SQL Server Configuration Manager 실행 후
SQL Server 구성 관리자 > SQL Server 네트워크 구성 > MSSQLSERVER에 대한 프로토콜 >
TCP/IP => 사용

SQL Server 노출 영역 구성 실행 후
서비스 및 연결에 대한 노출 영역 구성 > MSSQLSERVER > Database Engine > 원격연결 >
로컬 및 원격 연결 => TCP/IP 및 명명된 파이프 모두 사용

내 네트워크 환경-속성 > 로컬 연결 영역-속성 > Microsoft 네트워크용 클라이언트[체크], 인터넷
프로토콜 (TCP/IP) 속성 > 고급 > [탭]WINS > LMHOSTS 조회 가능[체크], NetBIOS[기본값]

방화벽 설정 확인

(복제에 구성되는 서버는 게시서버, 배포서버, 구독서버이며, 실무에서는 각각 서버를 구성하지만 본
문서에서는 1대에 모두 구성하며, 트랜잭션 복제를 사용하여 예를 들었습니다.)


1. 테스트 준비

게시서버에 사용될 DB를 만들고 테이블을 생성합니다. 생성된 테이블에 몇 개의 레코드를 삽입합니다.


2. 배포서버 구성


배포서버로 사용할 서버의 인스턴스의 [복제]의 메뉴 중에 [배포 구성]을 실행합니다.
(설정을 잘못하여, 배포서버를 지우고 싶을때는 “게시 및 배포해제” 를 선택하면 된다.)


[배포 구성 마법사]를 실행하고, ‘다음’을 클릭한 후에 배포서버를 지정합니다.


스냅숏 폴더를 구성합니다. (게시서버, 배포서버, 구독서버를 모두 다른 컴퓨터에서 구동되는 경우에는 해당
스냅숏 폴더를 공유시켜야 합니다.)


배포 데이터베이스를 설정합니다. (이름을 제외한 부분은 디폴트로 설정합니다.)
배포 데이터베이스 이름은 여러 개의 배포설정이 가능하므로 식별가능한 이름으로 설정하여 넣습니다.
실제 데이터베이스의 이름과 관계가 없이 단지, 배포시에만 구분하는 인자입니다.


게시서버를 지정해줍니다.


배포 구성을 체크합니다.
(나중에 배포서버를 구성하는 경우 ‘배포 구성 단계를 포함하는 스크립트 파일 생성’을 체크합니다.)


구성항목을 확인하고 이상이 없다면 ‘마침’을 클릭합니다.


‘닫기’를 클릭하면 배포서버의 구성이 완료됩니다.


3. 게시서버 구성


게시서버로 사용할 서버의 인스턴스의 [복제]의 메뉴 중에 [새로 만들기] > [게시]을 실행합니다.

(게시서버와 배포서버가 별도로 구성되는 경우 배포자를 설정합니다.)

‘게시DB’를 선택합니다.



‘트랜잭션 게시’를 선택합니다.


게시에 포함될 아티클(주로 테이블)을 선택합니다.
(컬럼 중에서 Primary Key로 설정된 컬럼은 아티클에서 제외시킬 수 없습니다.)


일부 행만을 게시에 포함하고 싶다면 ‘추가’를 클릭하여 조건을 추가하여 줍니다.


스냅숏 에이전트를 시작하는 옵션을 설정합니다.


에이전트 보안이 설정된 화면 입니다. “보안설정”을 눌러서 아래와 같이 설정합니다.


스냅숏 에이전트를 실행할 계정을 지정합니다.


‘게시 만들기’를 체크합니다.


‘게시 이름’을 입력한 후에 ‘마침’을 클릭합니다.


‘닫기’를 클릭하면 게시서버의 구성이 완료됩니다.


4. 설정확인

배포서버의 스냅숏 폴더를 확인해 보면, 스냅숏 파일이 생성된 것을 확인할 수 있습니다.


5. 구독서버 설정

구독서버로 사용할 서버의 인스턴스의 [복제]의 메뉴 중에 [새로 만들기] > [구독]을 실행합니다.


게시자를 선택합니다.


배포 에이전트 위치를 선택합니다.
(끌어오기 구독은 부하가 많이 발생되는 배포서버의 부하를, 구독서버가 어느 정도 부담하기 위한 방식입니다.)


구독할 데이터베이스를 지정하거나 생성합니다.
별도로 데이터베이스를 생성하지 않았다면 여기서 새로운 데이터베이스를 생성하여 트랜잭션 복제가 가능합니다.


데이터베이스를 생성합니다.


구독 데이터베이스를 생성


‘….’을 클릭하여, 배포 에이전트 보안에서 배포 에이전트가 실행될 계정을 설정합니다.


배포 에이전트 보안을 설정하여 줍니다. 위와같이 설정하여 줍니다.


동기화 일정을 선택합니다.


구독 초기화를 지정합니다.


‘구독 만들기’를 체크합니다.


‘마침’을 클릭합니다.


‘닫기’를 클릭하면 구독서버의 구성이 완료됩니다.


6. 데이터 확인

게시서버의 테이터를 확인합니다.


구독서버의 데이터와 동일한지 확인합니다.


게시서버에 데이터를 추가합니다.


게시서버에서 확인해보면 거의 즉시 변경됨을 확인할 수 있습니다.


게시서버의 [복제] 메뉴 중에 [복제 모니터 시작]을 실행합니다. 스냅슛 에이전트가 완료된 것을 확인합니다.


[추적 프로그램 토큰]탭에서 [추적 프로그램 삽입]을 실행하여 복제되는 과정이 정상적으로 작동되는
것을 확인합니다. (추적 프로그램 토큰은 아주 작은 트랜잭션을 발생시키며, 시스템에 별도의 부하는 주지
않으면서복제에 문제가 있는 부분을 파악하는데 유용합니다.)

  윈도우 2003 서버에서 미디어 서비스 설치 및 설정
  Iptables를 이용한 SSH brute force 공격방어





회사소개 개인정보취급방침 이용약관 이메일주소 무단수집거부 CONTACT US IDC 약도
회사소개 개인정보취급방침 이용약관 이메일주소 무단수집거부 CONTACT US IDC 약도 회사소개 개인정보취급방침 이용약관 이메일주소 무단수집거부 CONTACT US IDC 약도