안녕하세요. SQLER의 코난 김대우입니다. 
이번 강좌에서는, 13-5. 백업과 복원 - 로그 전달, Always On 고가용성과 재해 복구 구현을 진행 하겠습니다.


SQLER에서 진행되는, 챗GPT와 함께 배우는 SQL Server 강좌 목록

 

이번에 진행할 강좌는 백업과 복원 - 로그 전달, Always On 고가용성과 재해 복구 구현입니다. 이 강좌에서는 기본적인 고가용성에 대한 이해와 여러 고가용성 기능을 살펴봅니다. 

 

 

 

TL;DR

데이터베이스의 고가용성과 재해 복구에 관한 내용을 진행하고, 클라우드 환경에서 HA/DR(고가용성/재해 복구) 구성도 소개합니다. 데이터베이스 미러링, 로그 전달, Always On 고가용성의 기능과 차이점을 설명합니다.

 


클라우드 시대 고가용성(HA - High Availability)과 재해 복구(DR - Disaster Recovery)

클라우드 시대에 웬 On-Premise 고가용성과 재해 복구?


이 글을 보고 계시다면 이미 클라우드 서비스 제공자(CSP - Cloud Service Provider)를 통해 여러 형태의 데이터베이스를 사용하고 계실 거에요. DaaS(Database-as-a-Service) 서비스로 대표적인 마이크로소프트의 Azure SQL Database나 AWS의 RDS for SQL Server와 같은 서비스부터 VM(Virtual Machine-가상머신)을 이용해 데이터베이스 서버를 클라우드에 전개하고 서비스하고 계실 거에요.


이 강좌의 목표는 HA/DR 에 대한 기본적인 이해입니다. 기본적인 이해가 있다면 사설 클라우드(Private Cloud)나 여러 CSP의 HA/DR을 더 쉽게 설정하고 사용할 수 있습니다. 이 강좌에서는 HA/DR 기본 설정과 기능별 차이에 대해 진행합니다.


다시 강조하지만, HA/DR을 구성해야 할 중요 데이터베이스 서비스라면 꼭 클라우드를 활용하시길 바랍니다.


☑️ 챗GPT 활용: 고가용성(HA - High Availability)과 재해 복구(DR - Disaster Recovery)에 대해서 알려줘

 

 

데이터베이스 고가용성

SQL Server는 여러 HA/DR 기능을 제공합니다. SQL Server의 대표적인 HA/DR 기능은 아래 세 가지가 존재합니다. 미러링은 SQL Server 2022 차기 버전부터 지원하지 않으니, Always On과 로그 전달 서비스를 주로 설명합니다.

 

데이터베이스 미러링(Mirroring) - SQL Server 2022 이후 지원하지 않음

145-1-미러링.gif

이미지 - SQL Server 미러링


하나의 SQL Server 데이터베이스에 대해, 다른 SQL Server 인스턴스에서 복사본을 유지 관리하는 기능입니다. 주 서버(Principal Server)가 실제 데이터베이스 서비스를 제공하며, 다른 서버는 미러 서버(Mirror Server)로 대기(Standby) 상태를 유지합니다. 미러링은 주 서버에서 발생하는 데이터베이스 변경(삽입/수정/삭제) 트랜잭션을 미러 데이터베이스로 보내 REDO 하는 형태로 데이터베이스를 동기화합니다.


주 서버에 장애가 발생할 경우 자동/수동 조치를 통해 역할을 전환시킬 수 있습니다. 반드시 모니터링 서버가 있어야 자동 장애 조치가 수행됩니다.


차기 SQL Server부터는 지원되지 않으니, 아래에서 설명하는 로그 전달이나 Always On을 사용하시길 바랍니다.

 

로그 전달(Log Shipping)

미러링과 유사합니다. 주 서버(Primary Server)에서 트랜잭션 로그를 백업해 보조 서버(Secondary Server)로 복사하고, 보조 서버에서 트랜잭션 로그를 복원해 최신 상태를 유지합니다. 보조 서버의 데이터베이스를 제한된 읽기 전용(Read-only) 방식으로 접근해 데이터 조회 용도로 사용할 수 있습니다.

 

145-2-로그전달.gif

이미지 - 로그 전달

 

미러링과 로그 전달 차이

SQL Server의 미러링과 유사해 보이지만 몇몇 차이점이 있습니다. 

 

  • 로그 전달은 수동으로 장애 조치를 수행합니다. 
  • 미러링은 하나의 미러 데이터베이스만 존재하나, 로그 전달은 여러 보조 데이터베이스를 설정할 수 있습니다.
  • 로그 전달은 커밋된 트랜잭션만 보조 데이터베이스로 전달되며, 미러링은 커밋되지 않은 트랜잭션도 전달됩니다.
  • 로그 전달은 약간의 전송 대기 시간이 있으며, 미러링은 전송 대기 시간이 없습니다.

미러링은 차기 SQL Server부터는 지원하지 않습니다. 로그 전달이나 Always On을 사용하세요.

 

Always On

145-3-alwayson.gif

이미지 - Always On 구성

 

Always On은 가용성 그룹(AG - Availability Group)을 구성하고 관리하는 고가용성(HA - High Availability) 기능과 재해 복구(DR - Disaster Recovery) 기능을 제공하며, 로그 전달과 비교해 여러 장점들을 제공합니다.

 

  • WSFC(Windows Server Failover Clustering)와 통합되어 가용성 그룹으로 데이터베이스 사용
  • 가용성 그룹은 1개의 주 데이터베이스와 1~8개의 보조 복제본 데이터베이스를 지원
  • 보조 데이터베이스에 대해 읽기 전용으로 접근 가능
  • 다양한 장애 조치 설정 지원(자동/수동/강제)
  • Availability Group Listener로 클라이언트는 장애조치 복제본에 자동 연결(장애 발생 시 수동으로 연결 문자열을 변경할 필요 없음)
  • Always On 가용성 그룹은 SQL Server 최상위 버전인 엔터프라이즈 버전에서만 지원됩니다.

기본 설명만으로도 끝판왕 느낌입니다. 24시간, 365일 무정지 시스템으로 운영되어야 하는 HA/DR 데이터베이스를 직접 구성할 경우 최선의 선택입니다. 다양한 구성 시나리오와 패턴이 제공되므로 회사나 조직에서 원하는 구성에 맞춰 FCI(Failover Cluster Instance)나 AG를 구성할 수 있습니다.


☑️ 챗GPT 활용: WSFC(Windows Server Failover Clustering)에 대해서 알려줘

 

 

비즈니스 연속성과 고가용성 / 재해 복구

데이터베이스는 대표적인 24시간 중단 없이 운영되어야 하는 시스템입니다. SQL Server는 이러한 비즈니스 연속성 제공을 위해 다양한 고가용성 및 장애 조치 기능과 시나리오를 제공합니다. 로그 전달 및 Always On 기능 등을 활용해 비즈니스 연속성과 고가용성 / 장애 조치를 자동화해 구현할 수 있습니다.


최선의 HA/DR 구성 방안은, 클라우드 마이그레이션을 통해 점차 서비스를 On-Premise에서 클라우드로 이전하는 방안이며, 특히, 클라우드 서비스 제공자(CSP)가 제공하는 DaaS를 활용해 운영에 대한 비용을 낮추고, 개발에만 초점을 맞춰 운영하는 방안을 추천해 드립니다.
 

 

SQL 강좌 책 구매

강좌가 도움이 되셨다면, 책으로 구매 가능합니다. 책 판매 수익금은 전액 코딩 교육 사회공헌 활동에 기부되며, 아래 링크에서 구매하시면 더 많은 금액이 기부됩니다. 

 

책구매 링크: 챗GPT와 함께하는 마이크로소프트 SQL Server 2022 

책구매링크.png

No. Subject Author Date Views
Notice SQL강좌: 챗GPT와 함께 배우는 SQL Server 무료 강좌 목차와 소개 (2023년 9월 업데이트) 코난(김대우) 2023.08.18 38119
Notice Python 무료 강좌 - 기초, 중급, 머신러닝(2023년 6월 업데이트) 코난(김대우) 2021.01.01 20673
2314 SQL강좌: 14-7. 트랜잭션과 잠금처리 - 교착상태(데드락-DeadLock) 관리 [1] 코난(김대우) 2023.08.18 281
2313 SQL강좌: 14-6. 트랜잭션과 잠금처리 - 잠금 관리 file 코난(김대우) 2023.08.18 145
2312 SQL강좌: 14-5. 트랜잭션과 잠금처리 - 잠금과 트랜잭션 격리 수준 코난(김대우) 2023.08.18 87
2311 SQL강좌: 14-4. 트랜잭션과 잠금처리 - 잠금(Lock)과 블로킹 코난(김대우) 2023.08.18 92
2310 SQL강좌: 14-3. 트랜잭션과 잠금처리 - 트랜잭션과 체크포인트 [1] file 코난(김대우) 2023.08.18 162
2309 SQL강좌: 14-2. 트랜잭션과 잠금처리 - 트랜잭션 종류 코난(김대우) 2023.08.18 112
2308 SQL강좌: 14-1. 트랜잭션과 잠금처리 - 트랜잭션 이해 코난(김대우) 2023.08.18 135
» SQL강좌: 13-5. 백업과 복원 - 로그 전달, Always On 고가용성과 재해 복구 구현 [1] file 코난(김대우) 2023.08.18 123
2306 SQL강좌: 13-4. 백업과 복원 - 유지 관리 계획 수립 file 코난(김대우) 2023.08.18 117
2305 SQL강좌: 13-3. 백업과 복원 - 백업과 복원 전략 실행 file 코난(김대우) 2023.08.18 77
2304 SQL강좌: 13-2. 백업과 복원 - 백업과 복원 전략 file 코난(김대우) 2023.08.18 114
2303 SQL강좌: 13-1. 백업과 복원 - 백업과 복원 이해 file 코난(김대우) 2023.08.18 156
2302 SQL강좌: 12-9. 인덱스 생성과 관리 - DTA(데이터베이스 엔진 튜닝 관리자) file 코난(김대우) 2023.08.18 106
2301 SQL강좌: 12-8. 인덱스 생성과 관리 - 인덱스 재구성/재구축 [1] 코난(김대우) 2023.08.18 134
2300 SQL강좌: 12-7. 인덱스 생성과 관리 - 인덱스 옵션 코난(김대우) 2023.08.18 104
2299 SQL강좌: 12-6. 인덱스 생성과 관리 - 클러스터형 vs 비클러스터형 인덱스 file 코난(김대우) 2023.08.18 111
2298 SQL강좌: 12-5. 인덱스 생성과 관리 - 비클러스터형 인덱스 file 코난(김대우) 2023.08.18 116
2297 SQL강좌: 12-4. 인덱스 생성과 관리 - 클러스터형 인덱스 file 코난(김대우) 2023.08.18 117
2296 SQL강좌: 12-3. 인덱스 생성과 관리 - 인덱스 생성 file 코난(김대우) 2023.08.18 111
2295 SQL강좌: 12-2. 인덱스 생성과 관리 - 인덱스 종류 코난(김대우) 2023.08.18 109





XE Login