본문 바로가기
IT Knowledge/Server

SQL Alwayson 가용성 그룹 구성 (데이터베이스 이중화, 데이터베이스 복제/백업)

2020. 11. 30.

안녕하세요, 이번 글에선 SQL Alwayson 기능을 통해 HA(High Availability)를 구성해보겠습니다.

먼저 Alwayson에 대해 간략하게 알아보겠습니다.

 

SQL Alwayson 개념

Alwayson은 MS SQL Server 2012부터 도입된 Enterprise용 고가용성 솔루션입니다. 가용성 그룹 구성을 통해 주 서버에 있는 데이터베이스들을 보조 서버에서 복제본을 생성하고 변경 사항에 대해 실시간 동기화하며, 이 기능을 통해서 고가용성 (HA, High Availability) 및 재해복구(DR, Disaster Reocovery)에 대해 어느 정도 보장할 수 있습니다.

 

동작 하는 방식은 아래 그림과 같습니다.

1. 주 서버(SVR#1)의 데이터베이스를 가용성 그룹에 추가

2. 보조 서버(SVR#2)가 해당 데이터 베이스를 복제/동기화

3. SVR#1 장애 발생 시, SVR#2가 새로운 주 서버로 역할 변경

4. SVR#2에서 복제/동기화로 유지하고 있던 데이터베이스가 메인으로 변경

5. SVR#1 장애 복구 후 보조 서버로 역할 수행, 장애 기간 동안 쓰여진 데이터들을 복제/동기화 

** 주 서버, 보조 서버 역할은 필요에 따라 수동으로도 변경 가능합니다.

 

SQL Alwayson 구성 방법

위의 설명처럼 Alwayson이란 장애를 대비해 복제 서버를 구성하고, 장애 발생 시 복제 서버의 데이터를 사용할 수 있도록 구성하여 서비스 다운타임을 최소화 할 수 있는 기능입니다. 그럼 Alwayson 구성을 해보겠습니다.

* 준비물

- Windows Server 2대 (SQL Server Enterprise Edition 설치 포함, 동일 도메인)

- 계정 (두 서버에 모두 권한이 있는 공용 계정)

- 고정 IP

 

1. 장애조치 클러스터링(Failover Cluster Manger) 구성. Alwayon 구성 시, Cluster 구성은 필수입니다. 주 서버가 될 서버에서 구성을 진행합니다.

 

 

반응형

 

 

2. 클러스터 노드(Node) 추가. 클러스터의 구성원이 될 노드들을 추가합니다. [Browse]를 통해 서버를 검색해서 추가합니다.

 

 

 

 

3. 클러스터 이름 및 IP 입력. 클러스트 이름을 넣고 IP를 지정해줍니다. 이때, IP는 기존에 사용하지 않는 새로운 IP를 사용합니다.

 

4. 구성 완료. 구성 완료 후, 도메인 내에 클러스터가 정상적으로 생성됐는지 확인합니다.

노드 서버들과 클러스터

5. Alwayson 기능 활성화. 각 서버의 SQL 구성 관리자를 실행하여 SQL 서비스를 시작할 계정 정보를 입력합니다. 이때의 계정은 양쪽 서버에 동일한 권한이 있는 계정으로 설정합니다. 계정 입력 후, Alwayson 기능을 활성화하고 SQL 서비를 재시작 합니다.

 

6. SQL 서버 접속 및 Alwayson 구성 마법사 실행. SSMS(SQL Server Management Studio)를 실행하고 주 서버에 연결합니다. [Always On High Availability] 위치에서 Alwayson 생성을 시작합니다.

 

7. Alwayson Group 이름 및 클러스터 유형 선택. 가용성 그룹 이름을 입력하고, 유형으로는 'WSFC(Windows Server Failover Cluster'를 선택합니다.

 

8. 데이터 베이스 선택 및 데이터베이스 백업. 가용성 그룹에 포함할 데이터 베이스를 선택합니다. 가용성 그룹 포함 전, Full 백업이 필요하며 진행하지 않으면 포함할 수 없습니다. 백업을 먼저 진행하고 이어서 진행해보겠습니다.

 

9. 데이터베이스 백업. 가용성 그룹에 추가할 데이터 베이스를 우클릭 하여 [Tasks] - [Back up...] 순으로 진행합니다. 백업 경로는 필요에 따라 변경하고 지금은 기본으로 두겠습니다.

 

10. 가용성 그룹 추가. 아까의 순서대로 다시 진행하면 해당 데이터베이스의 상태가 변경되어있으며 다음 순서로 진행이 가능합니다.

 

11. 보조 서버 추가. 데이터베이스 복제/동기화 할 보조 서버를 추가합니다.

 

12. 설정 완료. 최종 구성을 확인하고 설정을 완료합니다.

 

13. 복제 확인. 구성 완료 후, [Always On High Availability] 하위로 가용성 그룹 및 각 노드, 데이터베이스가 추가됐는지 확인합니다. 마찬가지로 보조 서버에서 가용성 그룹 구성을 확인하고 데이터베이스 동기화 상태를 확인합니다.

 

주 서버
보조 서버


이렇게 가용성 그룹 구성이 완료됐습니다. 주 서버의 데이터베이스에 기록되는 모든 내용은 실시간으로 동기화 될 것이며 장애로 인해 주/보조 서버의 역할 변경이 일어나도 데이터 손실은 없습니다.

 

하지만, 해당 데이터베이스와 연결하는 시스템/웹/프로그램에서 새로운 주 서버와의 연결을 위해서는 커넥션 부분을 수정해야 정상 서비스가 됩니다. 이 부분은 수신 그룹(Listner)를 구성하고, 시스템/웹/프로그램에서 수신 그룹의 IP로 커넥션을 지정하여 개선할 수 있습니다. 

해당 부분은 어렵지 않기 때문에 이번 포스팅에선 여기까지만 진행하고 Alwayson 구성을 마치도록 하겠습니다.

 

 

반응형

댓글