달력

4

« 2024/4 »

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
2009. 1. 15. 10:21

MSSQL Replication (복제) 개요만... Work/SQL Server2009. 1. 15. 10:21

[개념]
한 Server에 있는 Data를 다른 Server로 배포하는데 사용.
Backup / Recovery 나 Data Export / Import의 한번의 복사로 불충분한 경우, 즉 아래 처럼 좀 더 다른 이유가 있는 경우 사용.
중앙 DB의 변경 내용을 원격 DB와 일치시키기 위해.
업무 부하를 분산할 여러 개의 DB Instance를 만들기 위해.
중앙 Server 의 특정 Data set을 여러 개의 다른 Server로 배포하고자 할 때.
Data를 customize하고 다수의 가입자에게 배포하기 위해.

[대상]
복제는 게시자, 배포자, 구독자라는 개념이 필요함. (pass)
복제의 내용은 table, table의 특정 열 / 특정 행, 특정 열과 특정 행으로 이루어진 table의 부분 집합, view, index, user define function, stored procedure 을 포함할 수 있다.
복제할 수 없는 내용으로는 model, tempdb, msdb, master 와 같은 DB의 객체는 복제할 수 없다.

[유형]
Snapshot : 장점은 정확한 복사. 단점은 업무 부하 및 Network tranffic 증가, 정해진 주기로만 동기화.
Transaction : 장점은 비교적 정확한 복사와 융통성있는 동기화. 분산 Transaction 사용.
Merge : 분산 Transaction을 사용하지 않기 때문에 Transaction의 일관성을 보장하지 않는다.

[Model]
Peer to peer : Peer to peer topology에 참여하는 DB간의 복제.
Central publisher : 동일한 Server에 게시자와 배포자 DB를 유지하고 다른 Server에 구성되는 하나 이상의 구독자를 가진다.
이 Model이 일반적으로 사용된다. 게시자 Server에 추가적인 부하가 발생하여 Server 성능에 영향을 미친다. 
Server의 부하를 줄이기 위해 배포자를 별도의 Server에 설치할 수 있지만 게시자 Server의 부하를 완전히 해소하지 못한다.
배포자와 게시자는 통신이 필요하고 Data를 서로 주고 받아야 하기 때문이다.

p.s. 이번에 새로 추가되는 Service에 복제를 사용하는 것을 고민했는데... 여기에서 실제 적용은 좀 더 지켜본 후 결정해야 겠다는 생각이 ... 게시자가와 배포자로 사용될 Server가 아무래도 Service용이기 때문에 성능에 악영향을 주는 요소를 추가하는 것이 마음에 걸린다.
:
Posted by Elick