대메뉴 바로가기 본문 바로가기

데이터 기술 자료

데이터 기술 자료 상세보기
제목 SQL Server 2012 . AlwaysOn 을 통해 본 SQL Server 업그레이드 필요성 (Mirroring과 비교)
등록일 조회수 6920
첨부파일  

SQL Server 2012 . AlwaysOn 을 통해 본 SQL Server 업그레이드 필요성 (Mirroring과 비교)

㈜엑셈 컨설팅본부 /SQL Server팀 양 동환



AlwaysOn 의 등장

2012 년 상반기 MicroSoft 에서 Big Data, Cloud Computing 시장을 겨냥해 SQL Server 2012 를 출시하면서 New Feature 로 ‘ AlwaysOn ’ 이라는 획기적인 HA 기술이 추가되었다 . 이전 버전들에서 HA 방식으로 지원되던 Failover Clustering 이나 Mirroring 등의 단점들을 보완하기 에 충분해 보인다 . 본 내용은 AlwaysOn 을 통해 SQL Server 하위버전을 쓰는 고객들에게 왜 SQLServer 2012 로 엔진을 업그레이드 해야 되는지 그 필요성을 설명하고 있다 . 그럼 먼저 AlwaysOn 에 대해 간략히 설명하겠다 .



AlwaysOn Availability Group( 가용성 그룹 ) 이란 ?

‘ AlwaysOn 가용성 그룹 ’ 기능은 데이터베이스 Mirroring 에 대한 엔터프라이즈 수준의 대안을 제공하는 고 가용성 (HA) 및 재해 복구 (DR) 솔루션이다 . 가용성 그룹은 여러 사용자 데이터베이 스를 그룹 단위로 묶어서 장애 조치 (failover) 할 수 있는 환경을 지원한다 . 가용성 그룹은 읽기 / 쓰기가 가능한 주 데이터베이스 복제 노드와 보조 데이터베이스 복제 노드 ( 최대 4 개까지 ) 를 지 원한다 . 필요한 경우 보조 데이터베이스 복제 노드에 대해 읽기 전용 액세스를 설정하거나 일부 백업 작업에 사용되도록 설정할 수 있다 . 가용성 그룹은 가용성 복제본의 수준에서 장애 조치 된 다 . 따라서 데이터 파일 손실 , 데이터베이스 삭제 , 트랜잭션 로그 손상 등으로 인해 주의 대상 데 이터 베이스가 발생할 경우의 문제로는 장애 조치 가 수행되지 않으므로 유의해야 한다 .
참조 : MSDN

그렇다면 알아보기 쉽게 이전버전의 HA 기능들과 비교해서 표를 통해 설명하겠다 .




설명과 표를 통한 비교자료를 가지고도 AlwaysOn 의 장점을 이해하기 어렵고 필요성이 느껴지 지 않는다고 생각된다면 다음 내용을 살펴보도록 하자 . 다음은 2 가지의 장애 시나리오와 1 가지 의 시나리오를 가지고 AlwaysOn 환경과 Mirroring 환경에서 어떤 차이가 나타나는지 비교해서 보여주도록 하겠다 .


가용성 그 룹 단위 Mirroring VS 단일 DB 단위 Mirroring


각 환경에 구성된 DB 는 일자 별 Log 정보를 담고 있는 DB 들이다 . (130121~130123) 이 DB 들 중에 1 개의 DB(mg_130122) 에서 장애가 발생하였을 경우 3 개의 DB 모두의 정보를 필요 로 하는 쿼리가 제대로 동작하는지 확인해 보았다



Mirroring 은 단일 DB 간 Mirroring 시스템이기 때문에 3 개의 DB 중에 하나가 failover 되면 쿼 리가 실패를 하게 된다 . 그에 반해 AlwaysOn 은 관련 있는 DB 들을 그룹으로 지정해서 그룹 단 위로 Mirror 가 되기 때문에 위와 같은 경우 3 개 중 하나의 DB 라도 장애가 발생하면 그룹 채로 failover 되어서 쿼리가 실패할 경우가 발생하지 않는다 .


최대 4 노드 복제 ( 동적 쿼럼 방식 ) VS 1:1 복제 ( 과반수 방식 )


각 환경에 구성된 DB 역시 1 번 시나리오와 같은 DB 들이다 . 여기서 서버들을 하나씩 장애를 발 생시켜 보았을 때 어떻게 되는지 살펴보겠다 .




이 시나리오를 통해 보여주고자 하는 내용은 Mirroring 은 1:1 로만 복제가 가능하고 AlwaysOn 은 최대 4 노드까지 복제가 가능하다는 점이다 . 각 환경에서 서버에 장애가 발생할 경우 AlwaysOn 은 최대 4 대의 서버까지는 장애가 발생해도 사용이 가능하다는 점이고 Mirroring 은 2 대가 발생하면 더 이상 사용이 불가하다 . 그 2 대가 DB 가 저장된 서버이든 모니터링을 위한 Witness 서버이든 상관없이 최대 3 대중 2 대만 Fail 이 일어나도 과반수 정책에 의해 작동하지 않게 된다 . 만약 그 2 대가 같은 곳에 있는 서버들인데 그 곳에 정전이라도 발생한다면 어떻게 되겠는가 ? 생각만 해도 끔찍한 상황이 발생할 것이다 . 물론 AlwaysOn 또한 자동 장애 조치가 가 능한 것은 최대 2 대까지 이고 그 외에는 수동으로 장애 조치를 해야 한다 . 그렇지만 최악의 경우가 발생했을 때 수동으로라도 장애 조치를 할 수 있는 것과 아무 손도 쓸 수 없는 것과는 천 지차이이다 .


복제 노드 읽기 작업 및 백업 가능 VS . 복제 노드 스냅샷 한정 읽기 가능


마지막 시나리오는 보조 복제 노드의 활용이다 . 단순 Mirroring 환경에서 보조 복제 노드는 스냅 샷을 통한 한정된 읽기 작업밖에 가능한 것이 없다 . 서버가 2 대이지만 1 대의 역 할밖에 수행할 수 없는 비효율이 발생한다 . 그렇지만 AlwaysOn 환경에서는 주 노드를 제외한 모든 복제 노드 들에서 읽기 작업 및 백업 작업이 가능하다 . 만약 AlwaysOn 환경에 보조 복제 노드가 2 개가 존 재한다면 하나의 보조 복제 노드에서는 백업 작업을 실시하고 다른 보조 복제 노드에서는 보고 서 작업과 같은 분석 업무를 실시할 수 있다 . 또한 읽기 전용 라우팅 ( 참조 : http://msdn.microsoft.com/ko - kr/library/7bd89d dd - 0403 - 4930 - a5eb - 3c78718533d4 ) 을 설정하여 보조 복제 노드에서 읽기작업을 수행하게 함으로써 주 노드의 과부하를 줄여주고 잠금 충돌도 줄일 수 있는 효과를 가져올 수 있다 . 즉 서버의 개수만큼 충분 히 작업에 활용 할 수 있는 것이다 .



이제는 SQL Server 2012 로 업그레이드 가 필요한 때

앞에서 시나리오를 통해 간단히 살펴 본 것처럼 단순 Mirroring 과 비교했을 때도 AlwaysOn 은 많은 장점이 있다 . 그 외의 HA 기능들과 비교했을 때도 AlwaysOn 은 충분히 우월하다고 본다 . 물론 비용적인 측면에서 보면 이전버전을 쓰는 게 더 나을 수도 있다 . 그렇지만 시대가 Big Data 니 Cloud Computing 이니 하며 시간이 지날수록 데이터의 중요성은 더욱 더 커지게 되고 지금 당장은 아니더라도 결국 ( 비용 < 데이 터 ) 가 되는 시점이 발생할 것이다 . 그렇다면 고민 없 이 SQL server 2012 로 업그레이드 해서 데이터를 지키는 것이 정답이라고 생각한다 . 그만큼 AlwaysOn 은 제 값을 하는 기능이라고 본다 . 그 동안 HA 와 DR 을 위해 3rd Party Tool 을 이용 해 비용이 이중으로 들었던 고객들에게 AlwaysOn 은 비용이나 기능적인 측면에서 희소식이 아 닐까 생각해보면서 이 글을 마친다 .



출처 : (주)엑셈

제공 : DB포탈사이트 DBguide.net