MsSQL 에서는 로그 전달이라고 하는 이중화 방식도 지원하고 있습니다.
현재 서비스 하는 서버(주 서버)와 같은 서버(보조 서버)를 구성한 후 주 서버의 데이터베이스를 보조 서버에 복사해 놓습니다.
그러고 주 서버의 데이터베이스에 트랜잭션이 발생하면 보조 서버에도 전달되게끔 설정하는 방식입니다.
로그 전달 순서는 다음과 같습니다.
1. 사용자가 주 서버에서 트랜잭션을 발생시키면 원본 DB의 젖아된 내용이 변경
2. 변경된 후 트랜잭션 로그의 백업 파일(*.TRN)이 주 서버의 지정된 폴더에 일정한 주기마다 백업
3. 백업된 로그 파일이 보조 서버의 지정된 폴더에 전달
4. 보조 서버의 지정된 폴더에 복사된 로그 파일(*.TRN)을 일정한 주기마다 보조 DB에 복원
* 주 서버(SQLTEST01)
* 보조 서버(SQLTEST02)
초기 환경 설정
1. 주 서버와 보조 서버의 SQL Server 에이전트를 실행합니다.
2. 서버에 TCP/IP 를 사용으로 변경합니다. 이 때는 SQL Server 가 재구동이 필요합니다.
3. 주 서버와 보조 서버에서 사용할 폴더를 생성합니다. 해당 폴더는 공유로 지정되어야 합니다.
폴더 우클릭 - 속성 - 공유 - 공유 - Everyone 추가 - 읽기/쓰기 권한 부여합니다.
주 서버 설정
4. 주 서버에 테스트에 사용될 데이터베이스와 테이블을 생성한 뒤 데이터를 적재합니다.
5. 주 서버 우클릭 - 태스크 - 트랜잭션 로그 전달을 선택합니다.
6. 이 데이터베이스를 로그 전달 구성의 주 데이터베이스로 사용에 체크한 뒤 백업 설정으로 들어갑니다.
7. 백업 폴더의 네트워크 경로를 지정합니다. 작성법은 \\컴퓨터이름\경로 입니다.
경로와 폴더 경로를 입력한 뒤 일정을 선택합니다.
8. 1분 단위 간격으로 변경합니다. 이는 짧으면 짧을 수록 부하는 증가하나 유실되는 트랜잭션은 적기 때문에 신뢰성이 높아집니다.
9. 추가를 선택합니다.
10. 보조 서버(SQLTEST02)를 선택합니다. 이 후 보조 데이터베이스 명을 입력합니다.
11. 파일 복사를 선택 후, 보조 서버를 위해 생성한 폴더를 입력합니다.
일정을 선택 후 마찬가지로 1분단위로 변경합니다.
12. 트랜잭션 로그 복원을 선택후 일정을 클릭, 1분 단위로 변경합니다.
13. 확인을 눌러 로그 전달 구성을 완료합니다.
14. 구성이 완료되면 닫기로 종료합니다.
15. 주 서버와 보조 서버에 복원에 필요한 파일이 생성됩니다.
이렇게 까지 진행하면 주 서버와 보조 서버는 이중화 관계가 구축됩니다.
단, 주 서버가 정상인 경우 보조 서버는 사용할 수 없습니다.
따라서, 주 서버가 비정상 적인 상황을 만들어 낸 후 보조 서버를 복구하여 테스트를 진행합니다.
16. 주 서버에 트랜잭션 발생 후 몇 분정도 있다가 오프라인 상태로 변경합니다.
INSERT INTO platTeam VALUES('김') INSERT INTO platTeam VALUES('이') GO -- 3분 대기 USE tempdb GO ALTER DATABASE ShipSampleDB SET OFFLINE GO |
17. 보조 서버에서 복구하여 데이터베이스를 사용합니다.
USE tempdb GO RESTORE DATABASE ShipSampleDB WITH RECOVERY GO |
'SQL Server > SQL Server 이중화_백업' 카테고리의 다른 글
[MsSQL] 데이터베이스 전체 복구, 차등 복구, 로그 복구 알아보기 (0) | 2019.03.20 |
---|---|
[MsSQL] 데이터베이스 모델과 백업, 스냅샷 방법 및 종류 알아보기 (0) | 2019.03.19 |
[MsSQL] 이중화 Microsoft Cluster Service(MSCS) 방식 설정하기 (2) | 2019.02.02 |
[MsSQL] 이중화 복제 Replication 방식 설정하기 (2) | 2019.01.22 |
[MsSQL] 이중화 Replication, Log shipping, Mirroring, Cluster, Always On 알아보기 (6) | 2019.01.20 |