Download presentation
Presentation is loading. Please wait.
Published byRosanna Hutchinson Modified 5년 전
1
하성희 강사(dbconsultant@empal.com)
복제에 대한 기본적인 이해 하성희
2
내용 복제란 ? 복제 관련 용어 복제 모델 복제 유형
3
복제란? 복제 – 복사본을 만드는 것 복제란 여러 곳에 동일한 데이터 복사본을 유지할 수 있도록 해 주는 기술의 집합
게시–구독 모델을 사용하여 데이터를 배포 SQL Server 복제 다른 데이터베이스로 데이터와 데이터베이스 개체를 복사 및 배포한 후 데이터베이스 간의 일관성 유지를 위해 동기화하는 과정 Standby를 위해 디자인된 것은 아니지만, standby와 유사한 개념이라고 할 수도 있다 복제는 SQL Server의 일부가 아니다
4
복제 용어 MS SQL Server의 복제는 복제 토폴로지의 구성 요소와 프로세스를 설명하는 데 있어서 출판업계의 용어를 인용
복제 모델 게시자 배포자 구독자 게시 아티클 구독
5
복제 용어 게시자 복제할 데이터 소스 서버 어떤 데이터를 복제할 것인지 지정 어떤 데이터가 변경되었는지를 검색
게시에 관한 정보를 유지, 관리 배포자 변경사항들을 구독자에게 전달하는 서버 아티클을 게시자로부터 구독자로 전달하는데 필요한 여러 가지 작업을 수행하는 서버 배포 데이터베이스를 관리 구독자 게시자가 복제한 데이터를 받는 서버 게시를 구독하며 필요한 게시만 구독 복제 옵션, 복제 유형에 따라 다름
6
복제 용어 아티클 게시 구독 복제 대상으로 지정된 테이블, 데이터 파티션, 데이터베이스 오브젝트 아티클들의 집합
복제할 데이터베이스 오브젝트 또는 데이터 복사본에 대한 요청 어떤 게시를 언제 어디서 받을 것인지 지정
7
복제 용어 구독 아티클 Table 데이터의 전체 혹은 부분 뷰 저장 프로시저 사용자 정의 함수 게시
하나 이상의 아티클들의 집합 구독의 기초 데이타베이스 당 하나 혹은 이상 게시 구독 아티클
8
복제 용어 배포 데이터베이스 복제를 수행하기 위한 데이터를 저장하는 배포자의 데이터베이스
트랜잭션, 스냅샷 작업, 동기화 상태 및 복제 기록 정보를 저장
9
복제 관련 용어 복제 에이전트 복제 명령 프롬프트 유틸리티를 사용하여 복제 에이전트 작업을 구성하고 시작 가능
Out of process 프로그램들 복제 명령 프롬프트 유틸리티를 사용하여 복제 에이전트 작업을 구성하고 시작 가능 복제 에이전트 파일 : \Microsoft SQL Server\80\Com 아래에 위치 복제 유틸리티와 파일 목록 명령 프롬프트 유틸리티 파일 이름 스냅샷 에이전트 Snapshot.exe 로그 판독기 에이전트 Logread.exe 배포 에이전트 Distrib.exe 대기열 판독기 에이전트 Qrdsvc.exe 병합 에이전트 Replmerg.exe
10
복제 관련 용어 끌어오기 구독 밀어넣기 구독 수직 파티션 (Vertical Partition)
구독자가 게시자에 연결해서 게시자로부터 데이터를 끌어감 밀어넣기 구독 게시자가 구독자에 연결하여 구독자에게 데이터를 전달함 수직 파티션 (Vertical Partition) 컬럼들의 부분집합 수평 파티션 (Horizontal Partition) 행들의 부분집합
11
복제 관련 용어 데이터 파티션 (Data partition) 필터링 복제될 데이터의 그룹 동적
구독자의 속성에 근거하여 데이터의 부분집합을 정의 정적 고정된 값에 근거하여 데이터의 부분집합을 정의
12
데이터베이스 복제 개시자 배포자 구독자 (한 대의 서버가 게시 서버와 배포 서버 역할을 함께 수행 가능) 소스 데이터베이스
관리 복제할 데이터 지정 변경 사항 수신 및 저장 변경 사항을 구독자들에게 전달 구독자 변경 사항 수신 데이터 복사본 유지 (한 대의 서버가 게시 서버와 배포 서버 역할을 함께 수행 가능)
13
복제 모델 (로컬 배포자) 중앙 게시자/배포자 중앙 구독자/다중 게시자 다중 게시자/다중 구독자 게시자/ 배포자 다수의 구독자
배포자/ 구독자 게시자/ 배포자/ 구독자 구독자 게시자/ 배포자 게시자/ 배포자/ 구독자 게시자/ 배포자
14
중앙 게시자 가장 일반적인 구성. 구축 용이 마스터 데이터, 목록 또는 보고서를 중앙 게시자에서 모든 구독자로 배포하는 경우, Select가 대부분인 시스템 P : 게시자 D : 배포자 S : 구독자 P/D S D P S
15
중앙 구독자 통합 구독자 서버. 구축이 어려움 로컬 웨어하우스의 다수의 서버에서 재고 목록 데이터를 본사의 중앙 구독자로 롤업하는 경우, 회사의 자치 사업 부서에서 정보를 롤업하거나, 여러 위치의 주문 정보를 통합하는 데 사용 가능 D S P S P/D
16
게시 구독자 계층구조 게시자가 속도가 느리거나 비용이 많이 드는 통신 연결
말단에 다수의 구독자가 있을 경우, 재게시자를 사용하면 대량의 배포 로드가 재게시자에서만 발생 P S/P S S S
17
복제 유형 스냅샷 복제 전체 데이터 집합을 전달 모든 복제 유형의 초기 작업 트랜잭션 복제 변경 사항만 전달 병합 복제
18
복제 에이전트 스냅샷 에이전트(Snapshot Agent) 로그 판독기 에이전트(Log Reader Agent)
snapshot.exe 모든 복제 유형과 관련 게시된 테이블과 저장 프로시저의 스키마 및 초기 데이터 파일을 준비하고 배포 데이터베이스에 동기화에 관한 정보 기록 일반적으로 배포자에서 수행 로그 판독기 에이전트(Log Reader Agent) logread.exe 트랜잭션 복제에서 사용 복제 대상이라고 표시된 트랜잭션을 게시자 상의 트랜잭션 로그에서 배포 데이터베이스로 이동 게시된 데이터베이스 별로 자체 로그 판독기 에이전트를 가짐
19
복제 에이전트 배포 에이전트(Distribution Agent) Distrib.exe
스냅샷 복제 및 트랜잭션 복제와 함께 사용 게시 데이터베이스의 스냅샷 작업 및 트랜잭션을 구독자로 이동 밀어넣기 구독 : 배포자에서 수행 끌어오기 구독 : 구독자에서 수행
20
복제 에이전트 병합 에이전트(Merge Agent) Replmerg.exe 병합 복제에서 사용
초기 스냅샷을 구독자에 적용하고 발생한 증분 데이터 변경 내용을 이동 및 조정 병합 구독별로 자체 병합 에이전트 존재 밀어넣기 구독 : 배포자에서 수행 끌어오기 구독 : 구독자에서 수행
21
복제 에이전트 대기열 판독기 에이전트(Queue Reader Agent)
지연 업데이트(queued update) 옵션이 있는 스냅샷 복제 또는 트랜잭션 복제와 함께 사용 대기열에서 메시지를 가져와 적절한 게시에 적용 하나의 대기열 판독기 에이전트 인스턴스만 존재 (특정 배포자에 대한 모든 게시자 및 게시를 서비스)
22
복제 에이전트 스냅샷 트랜잭션 병합 스냅샷 에이전트 스냅샷 에이전트 스냅샷 에이전트 배포 에이전트 배포 에이전트
로그 판독기 에이전트 병합 에이전트 대기열 판독기 에이전트
23
복제 선택 자율성/ 일관성 연결성/ 무결성 Two phase commit 즉시 업데이트 구독 트랜잭션 복제 업데이트 구독
스냅샷 트랜잭션 스냅샷/DTS 병합 지연 업데이트 Transformable
24
스냅샷 복제 특정 시점의 데이터 및 데이터베이스 개체 상태 그대로를 복사 및 배포 데이터에 대한 갱신을 추적하지 않음.
데이터 수정을 전파하는데 오래 걸릴수 있음. 특정 시점의 스냅샷 이미지
25
스냅샷 복제 전체 데이터 집합을 전달 대상 테이블을 삭제하고 재생성 리포팅 서버의 재구성에 유용 snapshot.exe
지정한 경우 리포팅 서버의 재구성에 유용 snapshot.exe distrib.exe
26
스냅샷 복제가 유용한 경우 데이터가 대부분 정적이고 자주 변경되지 않는 경우
일정 기간 동안 데이터 복사본이 최신이 아니어도 되는 경우 소량의 데이터를 복제하는 경우 사이트의 연결이 종종 끊기며 대기 시간(한 사이트에서 데이터가 업데이트된 후 다른 사이트에서 업데이트되기까지의 시간)이 길어도 상관 없는 경우
27
트랜잭션 복제 데이터 수정에 대해 즉각적인 복제를 가능하게 함 게시되는 데이터의 필터링 및 변환 가능 단계 초기 스냅샷 전파
게시자에서 데이터 변경 개개의 트랜잭션들이 수집됨 구독자들에 트랜잭션을 전파
28
트랜잭션 복제 견고한 연결을 필요로 함 트랜잭션 일관성 가장 좋은 성능 뱅킹과 같은 응용 프로그램을 위해 디자인
logread.exe distrib.exe
29
트랜잭션 복제 잘 연결된 사용자들을 위한 방식 데이터 흐름 구독자가 커밋하기 전까지는 데이터가 배포 데이터베이스에 유지
사용자가 게시자에서 데이터를 입력 트랜잭션이 로그에 기록 로그 판독기가 트랜잭션을 픽업 배포자에게 전달 배포 에이전트가 구독자에게 전달 구독자가 배포 데이터베이스에게 확답 구독자가 커밋하기 전까지는 데이터가 배포 데이터베이스에 유지
30
트랜잭션 복제 w/ 즉시 업데이트 구독 구독자에서 트랜잭션들이 처리 가능 구독자에서 트랜잭션 시작 구독자에서 트리거 수행
분산 트랜잭션이 게시자에게 적용 게시자가 커밋 구독자가 커밋 트랜잭션이 다른 모든 구독자들에게 복제됨 만약 구독자가 사용 가능하지 않으면, 구독자는 커밋 불가
31
즉시 업데이트 SQL Server 2000에서, 즉시 업데이트를 허용하는 게시에서 사용되는 테이블에는 timestamp 컬럼이 있어야 함 SQL Server가 자동으로 timestamp 컬럼을 추가해 줌 테이블 게시를 중지하면 timestamp 컬럼 제거 가능 Timestamp 컬럼은 정식 INSERT, UPDATE, DELETE 문에 포함시킬 필요가 없으므로 응용 프로그램 변경 불필요
32
병합 복제 변경된 데이터만 전송 트랜잭션 일관성 보장 못함 동일한 행에 있는 여러 컬럼들에 대한 변경사항을 병합 가능
높은 자율성 증분 재동기화 연결이 견고하지 않은 응용 프로그램과 모바일 응용 프로그램을 위해 디자인 replmerg.exe
33
병합 복제 사이트들이 자율적으로 동작할 수 있도록 해 줌 사이트 간 연결이 될 때 데이터 갱신이 병합됨
게시자, 구독자에서 동일 데이터에 대해 업데이트 시 충돌 발생 충돌 해결 : 기본 및 사용자 지정 가능
34
병합 복제 데이터는 이동하지 않음 트리거가 변경사항을 추적
MSmerge_contents 테이블과 Msmerge_genhistory 테이블에 저장 병합 복제 시작
35
병합 복제 과정 SQL 에이전트가 병합 복제를 관리 Replmerg.exe가 병합 복제를 수행 구독자에게 연결 게시자에게 연결
이동할 세대들을 확인 게시자에게 업로드 충돌 해결 구독자에게 다운로드
36
병합 복제가 유용한 경우 여러 구독자가 다양한 시간에 데이터를 업데이트하고 그 변경 내용을 게시자 및 다른 구독자에 전파해야 하는 경우 구독자는 데이터를 받고 오프라인으로 변경을 하며 게시자 및 다른 구독자로 변경 내용을 동기화해야 하는 경우 응용 프로그램 대기 시간(Latency : 게시자의 변경 내용이 구독자에게 반영되어 나타나기까지의 시간) 요구 사항이 높거나 낮을 경우 사이트 자율성이 중요한 경우
37
변환 가능한 구독 복제를 DTS와 결합 스냅샷 복제와 트랜잭션 복제에서만 가능 트랜잭션 커밋 트랜잭션 복제
변환된 데이터가 커밋
38
복제 대상 오브젝트 복제 가능 오브젝트 테이블 저장 프로시저 뷰 트리거
39
복제의 이점 여러 사이트가 동일한 데이터 복사본을 유지할 수 있도록 해 줌 여러 사이트가 동일한 데이터를 읽어야 하거나 리포팅 응용 프로그램을 위해 별도의 서버를 필요로 하는 경우에 유용 OLTP 응용 프로그램을 OLAP 데이터베이스, 데이터 마트, 데이터 웨어하우스와 같은 응용 프로그램과 분리 더 많은 자율성을 허용 집계를 위한 읽기 성능 향상 데이터를 네트워크에 분산시킬 수 있고 서로 다른 업무 단위 또는 사용자의 요구에 기초하여 데이터를 분할 가능 다중 사용자의 데이터 수정 및 쿼리로 인한 경합 감소 복제를 사용자 지정 대기 모드 서버 전략의 일부로 사용 가능
40
테스트, 테스트, 테스트 !!! 경험 이상의 것은 없습니다. 테스트 환경을 구축하고 다양한 실험들을 해 보시기 바랍니다.
온라인 설명서만큼 좋은 자습서는 없습니다. 온라인 설명서를 많이 활용하시기 바랍니다.
41
감사합니다 !
Similar presentations