[MsSQL] 이중화 복제 Replication 방식 설정하기
MSSQL 은 다양한 이중화 방식을 지원하고 있습니다.
이번에는 여러 방식 중 복제(Replication)방식에 대해 알아보겠습니다.
복제에는 3가지 종류가 있습니다.
* 트랜잭션 복제: 트랜잭션이 발생됨과 동시에 복제되는 방식
* 스냅 숏 복제: 특정 시간 주기로 복제되는 방식
* 병합 복제: 여러 구독자가 구성되는 경우 구성되는 복제방식
복제를 구성하는 인스턴스의 역할입니다.
* 게시자(SQLTEST01): 원본 데이터베이스 인스턴스
* 배포자(SQLTEST02): 게시자로부터 전달된 데이터에 대한 저장소 역할을 하는 데이터베이스. 각 구독자에 배포하는 역할을 담당
* 구독자(SQLTEST03): 복제된 데이터를 수신하는 대상 데이터베이스 인스턴스
여기서는 스냅 숏 복제에 대해서만 포스팅을 진행하도록 하겠습니다.
SQL Server 2017 인스턴스 구성
1. 한 서버에 세 개의 인스턴스를 구성합니다. 각 서버명칭은 위에서 설명드린 바와 같이 진행됩니다.
또한 배포자 서버(SQLTEST02)에는 SQL Server 에이전트가 실행되어 있어야 합니다.
게시 서버 데이터베이스 생성
2. 게시자(SQLTEST01) 서버에 테스트에 사용 될 데이터베이스를 생성한 후 테이블 생성 및 데이터를 적재합니다.
배포 서버 구성
3. 배포자(SQLTEST02) 서버에서 복제 - 배포 구성을 선택합니다.
4. 배포 구성 마법사가 실행되면 다음을 선택합니다.
5. 위의 옵션을 선택합니다. 이는 해당 서버를 배포자로 설정하겠다는 의미입니다.
6. 스냅숏 폴더 경로를 설정합니다. 스냅숏 폴더는 공유되어야 합니다. (아래 단계에서 진행합니다.)
7. 스냅 숏 폴더에서 마우스 우클릭 속성으로 들어갑니다.
8. 공유로 들어갑니다.
9. 추가를 누른 후 공유할 사람에 Everyone 을 추가 읽기/쓰기 권한을 부여합니다.
10. 다시 마법사로 돌아와서 배포 데이터베이스 이름을 설정합니다. 게시자의 데이터베이스 명칭과 맞춰주면 가독면에서 좋습니다.
11. 추가 - SQL Server 게시자 추가를 선택합니다.
12. 게시자 서버(SQLTEST01)에 연결합니다.
13. 게시자(SQLTEST01) 서버에 선택 후 배포자(SQLTEST02) 서버는 선택 해제 합니다.
14. 암호를 설정합니다. 이 암호는 꼭 기억해주세요.
15. 배포 구성을 선택 후 다음으로 넘어갑니다.
16. 배포 마법사를 마칩니다.
17. SQL Server 에이전트 작업에 배포가 추가된 것을 확인할 수 있습니다.
게시 서버 구성 (스냅 숏 방식)
18. 게시자 서버(SQLTEST01)에서 복제 - 새로 만들기 - 게시 를 선택합니다.
19. 다음으로 넘어갑니다.
20. 다음 서버를 배포자로 사용을 선택한 후 추가 버튼을 누른 뒤 배포자 서버(SQLTEST02)를 등록합니다.
21. 위에서 설정했던 암호를 다시 입력합니다.
22. 복제에 사용할 데이터베이스를 선택합니다.
23. 스냅숏 게시를 선택합니다. 다른 복제 방식도 설명에 나와있으므로 읽어보세요.
24. 테이블 리스트에서 복제에 원하는 테이블을 선택합니다.
25. 테이블에서 복제할 대상을 필터하지 않는다면 다음으로 넘어갑니다.
26. 모두 선택 후, 변경을 누른 후 테스트를 위해 일정을 매분 1분으로 바꿔줍니다.
27. 보안 설정을 클릭합니다.
28. SQL Server 에이전트 서비스 계정으로 실행을 선택합니다.
29. 스냅숏 에이전트에 SQL Server 에이전트 계정이 선택되었습니다.
30. 게시 만들기를 선택 후 다음으로 넘어갑니다.
31. 게시 이름을 입력한 후 마침을 클릭합니다.
32. 마법사가 성공적으로 완료되었으면 닫기로 종료합니다.
33. 게시 서버에 게시가 등록된 것을 확인할 수 있습니다.
구독 서버 구성
34. 구독 서버(SQLTEST03)에서 복제 - 새로 만들기 - 구독을 선택합니다.
35. 마법사에서 다음으로 넘어갑니다.
36. SQL Server 게시자 찾기 누른 후 게시자 서버(SQLTEST01)에 연결합니다.
37. 원하는 게시를 선택합니다.
38. 배포자에서 모든 에이전트 실행을 선택합니다.
39. 구독서버에서 새 데이터베이스를 선택합니다.
40. 구독 데이터베이스를 게시자 서버와 동일하게 설정합니다.
41. 우측의 ... 을 누른 후 SQL Server 에이전트 서비스 계정으로 실행을 선택합니다.
42. 프로세스 계정 가장으로 선택된 것을 볼 수 있습니다.
43. 계속 실행으로 선택합니다.
44. 즉시로 설정한 뒤 다음으로 넘어갑니다.
45. 구독 만들기를 선택 후 다음으로 넘어갑니다.
46. 마법사를 마칩니다.
47. 마법사가 성공적으로 되었으면 종료합니다.
48. 게시자 서버의 로컬 게시에 구독이 등록된 것을 확인할 수 있습니다.
이렇게 구성하면 게시 - 배포 - 구독 간의 관계가 완성되며, 게시 서버에서 트랜잭션을 발생시키면 구독 서버에 반영됩니다.
* 포스팅을 진행하면서 문제가 생겼던 부분에 대해서 다음 포스팅에서 진행하겠습니다.
1. sa 계정으로 해당 데이터베이스에 로그인이 불가 (https://mozi.tistory.com/271)
2. 게시 모니터링에서 SQLAgent 가 로그인이 불가 (https://mozi.tistory.com/272)