SQL Server/개념&작업 정리

[개념정리]SQL Server 고가용성 기술 정리

공부하자!! 2021. 2. 16. 23:10
해당 글은 과거 고가용성 기술 검토를 위해 작성하였던 문서입니다.

목적

 

고가용성 기술 특징 비교

항목

Mirroring

LogShipping

MSCS

Always on

자동 장애조치

O

X

O

O

실시간 복제

O

X

N/A

O

고가용성 수준

DB

DB

인스턴스

DB

주-보조 서버 1:M 구성

X

O

N/A

O

보조 서버 Read

(주서버 부하 경감)

X

O

N/A

O

모니터 방식

별도 서버 구성

별도 서버 구성

쿼럼 추가

쿼럼 추가

Client Re-direction 

SQL Native Client 등 지원

별도 사용자 정의 필요

VIP

리스너

 

Std. 제공 고가용성 기술의 주요 취약사항

  • Logshipping

    • 자동장애조치가 불가

    • 수동장애조치시 매우 까다로움 

      • 미복원된 TR백업본 수동 복원

      • 신규 주서버와 보조서버에 대한 스케줄러/복제 경로 설정 등의 추가 작업

    • SQL Server 장애조치시 클라이언트의 리다이렉션에 대한 제공 기능 없음

  • Mirroring

    • 자동장애조치를 위해 별도 모니터 서버 구성 필수

    • 보조 서버에 대한 접근 불가 및 1대1 구성

    • 주서버의 부하 경감 불가

    • 2019 이후 버전부터 제거될 이중화 기술 

 

Ent. 제공 고가용성 기술 소개

  • MSCS

    • 설명

      • 고가용성 제공 대상 : MS 솔루션 제품 (SQL Server/Exchange 등), DISK, File Server 등

        • 여기서 소개하는 MSCS는 SQL Server에 대한 MSCS 구성에 한하여 설명

        • 아래 그림의 역할 (Cluster Instance#1/#2) 단위 내 클러스터 리소스 간 종속성 수준 SQL Server Agent가 가장 높음 

      • 모니터링 기능

        • 쿼럼

          • 데이터의 정합성 유지 목적

            • 클러스터 구성 정보 및 로그를 모든 노드들과 공유

            • '노드 및 디스크 과반수 모델' 의 Voter (클러스터 서비스 Down/Up ) 

          • 보통 약 1G의 외장디스크를 할당하며, 쿼럼이 Fault가 발생해도 재구성이 용이

            • 타 노드의 문제가 없을 경우 쿼럼이 없이도 서비스 가능

        • RHS.exe

          • 클러스터에 등록된 리소스 (하단 그림의 Filesystem,SAN DISK,Service 등)의 Health Check 수행

            • 각 리소스에 대한 look-alive(5초) 체크 후 Response 없을시 is-alive (60초) 수행

            • is-alive에 대한 response 없을시 리소스 별 설정 정책에 따라 Fail-over/리소스 Restart 등 수행

    • Mirroring/Logshipping 비교

      • 장점

        • 장애조치 후 별도 작업 불필요

          • SystemDB/UserDB에 대한 고가용성

          • 클라이언트 리커넥션 별도 설정 불필요 (VIP를 통한 SQL Server 서비스를 제공)

        • 자동 장애조치 기본 제공 (별도의 모니터 서버 구축 불필요)

          • 쿼럼&RHS.exe

        • DB 고가용성에서 발생 가능한 서버내 타 DB 참조 이슈 미존재

          • 인스턴스 레벨의 고가용성

        • SQL Server 서비스에 관련된 컴포넌트 장애 감지 및 장애조치

          • DB 고가용성에서 HW 컴포넌트에 대한 감지 불가

          • 역할단위에 포함되어 함께 이동

      • 단점

        • 의도치 않은 Failover 발생 가능

          • 특정 클러스터 리소스의 순간적 Bottleneck 발생으로 인한 장애조치 발생 가능

            • 예) 업무서비스 연관성은 있지만 SQL Server 동작과는 무관한 파일시스템의 IO부하로 인한 RHS 감지시 지속적으로 발생 가능

        • DB 개별 단위 장애에 대한 장애조치 불가 

          • 특정 DB의 PENDING 등에 대한 조치 미진행

        • 높은 구축 비용

          • SAN Storage가 필수적

            • SAN 장애시 대처방안이 없음

        • 유휴 Node 발생

          • 해당 부분은 A/A 구성 진행시 서로 다른 인스턴스를 각 노드에서 서비스할 수 있기 때문에 개인적으로는 단점이 아님

MSCS 구성 예시

  • ALWAYS ON

    • 설명

      • 고가용성 제공 대상 : DB 단위

      • MSCS 기반으로 동작

        • 위 기술된 MSCS는 SQL Server 서비스 제공을 목표로 하는 역할 단위 

        • 현재 기술하는 ALWAYS ON은 MSCS의 역할단위가 AG (Availability Group)

      • 모니터링 기능

        • 상기 MSCS와 동일

  • Mirroring/Logshipping 비교

    • 장점

      • 리스너를 통한 클라이언트 Re-direction 기능 제공

        • 각 AG단위별 VIP를 보유

        • AG 리스너에 AG단위별 Re-direction 정책을 설정

          • Read-Only 접근 우선순위 지정 

            • 보조서버들이 모두 Down 되었을시 주서버로 re-direction 가능

      • 주서버의 부하 경감

        • AG 리스너의 보조서버로 Read-Only Access 전달

        • 동기화 수행 주체를 보조서버로 설정 가능

        • 빠른 동기화 Sync 로직

          • Mirroring - 보조서버에 DATA가 반영되는것까지 진행된 후 Commit

          • ALWAYS On - 보조서버가 Log까지 기록한 상황에서 Commit Ack 전송

      • 자동 장애조치 기본 제공 (별도의 모니터 서버 구축 불필요)

        • 쿼럼&RHS.exe

      • AG 제공을 통한 타 DB 참조 이슈 경감

        • 단일 AG 그룹내 Sync 3/Async 5개 DB 구성 가능

        • 단일 인스턴스내 다수 AG 그룹 구성가능 

    • 단점

      • 주/보조 AG 변경에 따른 수동 변경사항 존재

        • 스케줄러/누락된 계정 맵핑 등

Always on 구성 예시