MS SQL은 데이타 베이스간의 실시간 데이타 복제를 위해서 "Replication"이라는 기능을 제공한다.
딱 보면, Oracle의 Golden Gate, IBM의 Info sphere, Quest의 Shareflex,MySQL의 geo replication 과 비슷한 CDC 기능이다.
Replication 방식은 크게 두가지로 나뉘어 지는데, Snapshot replication과 TransactionalReplication이다.
- Snapshot Replication
이 복제 방식은 간단하게 생각하면 Source 데이타 베이스의 내용을 Export해서 Target에 Import하는 개념으로 생각하면 된다. 데이타 베이스에 대한 복제를 시작하기 전에 초기 데이타를 적재 하거나, 또는 업무가 없을때 데이타를 적재하거나 긴 주기로 변경이 되는 곳에 사용할 수 있다.
Snapshot Agent에 의해서 주기적 또는 스케쥴에 따라서 데이타를 Export하면여 파일로 저장되고 이 파일은 Distributor 서버로 FTP,윈도우 파일공유,HTTP등을이용하여 전송된다. Distributor는 1개 이상의 수신 데이타베이스에 데이타를 전송하여 데이타를 반영한다.
- Transactional Replication
이게 전통적인 CDC 방식이다. Transaction Log를 Log Reader 가 캡춰해서 Distributor를 통해서 타겟으로 보내는것인데. 재미있는 것중에 하나가 Capture의 최소 단위가 하나의 트렌젝션 이하라는 것이다. 최소 단위가 트렌젝션 하나하나를 잡는게 아니라 트렌젝션이 긴 경우 하나의 트렌젝션을 잘라서도 Capture가 가능하다.
오라클 연동
그외에 흥미로운것중 하나가, 송수신 DB 모두 오라클을 지원한다. 단 TransactionalReplication의 경우 오라클의 redo 로그를 잡는 것이 아니라 테이블에 트리거를 걸어서 데이타 변경 사항을 Interface table에 넣은후, 이 interface 테이블을 읽어서 반영하는 방식이고, 오라클과의 연결은 ADO.NET,OLEDB,ODBC를 이용한다.
'엔터프라이즈 솔루션 > MS-SQL' 카테고리의 다른 글
MS SQL 2008 Tutorial (1) | 2010.04.27 |
---|