Replication (복제)

W·2024년 1월 17일
0

MSSQL

목록 보기
22/33

Ref.
SQL고가용성 Replication

복제(Replications)

원본 데이터베이스의 데이터를 다른 데이터베이스로 복사한 후, 이를 동기화시켜 사용할 수 있게(대부분 읽기전용으로 사용)하는 것

복제를 위한 서버의 역할

게시자

다른서버에 동기화될 데이터가 포함된 원본 데이터베이스를 유지 관리하는 서버

배포자

게시자가 제공하는 게시를 가져와 구독자에게 배포하는 역할을 맡은 서버

※ 대부분 서버 하나가 게시자와 배포자 역할을 동시에 담당하는데, 이를 '로컬 배포자'라고 합니다.

구독자

게시되는 데이터를 받거나 가져가는 서버

복제 유형

  • 스냅숏 복제(Snapshot Replication)
    복제를 구성하면 게시 전체를 구독자에게 정기적으로 보내서 동기화한다.

  • 트랜잭션 복제(Transactionsal Replication)
    스냅숏 복제를 한 후, 데이터 변경과 스키마 변경 내용을 1) 로그 판독기 에이전트가 수집해 배포 데이터베이스에 기록하면, 2) 배포 에이전트가 그 내용을 읽어 구독자에 반영하여, 일관된 데이터 상태를 유지하는 유형
    -> 거의 실시간 동기화를 수행!

  • 병합 복제(Merge Replication)
    트리거를 이용하여 게시자와 구독자의 변경 내용을 변경 추적 테이블에 기록하는 유형

  • 피어 투 피어(P2P) 복제(Peer To Peer Replication)
    여러 SQL Server 인스턴스에 걸쳐 데이터베이스 복제본을 유지 관리해서, 확장성과 고가용성의 이점을 제공하는 복제 유형


게시 만들기

1) 개체 탐색기에서 [복제] - [로컬게시] - [새 게시]를 클릭하여 마법사를 실행합니다.

2) [다음]을 클릭합니다.

3) 배포자와 게시자를 같은 서버로 설정하고 [다음]을 클릭합니다.

4) 스냅숏이 저장될 장소를 지정하고 [다음]을 클릭합니다.

5) 게시할 데이터베이스를 선택하고 [다음]을 클릭합니다.

6) 트랜잭션 게시를 선택 후 [다음]을 클릭합니다.

7) 게시할 아티클을 선택하고 [다음]을 클릭합니다. (전체를 하려면 테이블을 체크합니다.)

8) 보여주고 싶은 행만 있으면 필터에서 [추가]를 누릅니다. 우리는 모두 게시할 것이기 때문에 [다음]을 클릭합니다.

9) [즉시 스냅숏을 만들고 구독 초기화에 사용할 수 있도록 유지합니다.]에 체크하고 [다음]을 클릭합니다.

10) [보안 설정]을 눌러 SQL Server 에이전트 계정으로 연결하도록 설정합니다. (에이전트 계정은 윈도우 서버에서 관리자 권한을 가지고 있어야 합니다.)

11) [게시 만들기] 체크 후 [다음]을 클릭합니다.

12) 게시 이름을 입력 후에 [마침]을 클릭합니다.


구독 만들기

1) 개체 탐색기에서 [복제] - [로컬게시] - [등록게시] - [새 구독]를 클릭하여 마법사를 실행합니다.

2) [다음]을 클릭합니다.

3) 게시를 선택합니다.

4) 구독 방법을 설정합니다.
밀어넣기 구독 : 배포자가 구독자 요청과 상관없이 변경 내용을 구독자로 전달
끌어오기 구독 : 구독자가 게시자의 변경 내용을 직접 요청

5) 구독자를 추가하기 위해 [구독자 추가] 후 구독서버를 연결합니다.

6) [...]을 클릭하여 에이전트 계정으로 연결하도록 설정합니다.

7) [다음]을 클릭합니다.

8) [다음]을 클릭합니다.

9) [다음]을 클릭합니다.

10) [다음]을 클릭합니다.

11) 완료되면 복제를 위해 만들어진 에이전트를 확인할 수 있습니다.


복제 제거

동기화 중지 : [등록한 구독] 우클릭 - [동기화 상태 보기] 클릭 - [중지]

로그 판독기 에이전트 중지 : [등록한 게시] 우클릭 - [로그 판독기 에이전트 상태 보기] - [중지]

[복제] 우클릭 - [게시 및 배포 해제] -> 마법사로 제거

profile
타협하는 순간 발전이 없어

0개의 댓글