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 하위버전을쓰는고객들에게왜 SQLServer2012 로엔진을업그레이드해야되는지그필요성을설명하고있다. 그럼먼저 AlwaysOn 에대해간략히설명하겠다. AlwaysOn Availability Group( 가용성그룹 ) 이란? AlwaysOn 가용성그룹 기능은데이터베이스 Mirroring 에대한엔터프라이즈수준의대안을제공하는고가용성 (HA) 및재해복구 (DR) 솔루션이다. 가용성그룹은여러사용자데이터베이스를그룹단위로묶어서장애조치 (failover) 할수있는환경을지원한다. 가용성그룹은읽기 / 쓰기가가능한주데이터베이스복제노드와보조데이터베이스복제노드 ( 최대 4 개까지 ) 를지원한다. 필요한경우보조데이터베이스복제노드에대해읽기전용액세스를설정하거나일부백업작업에사용되도록설정할수있다. 가용성그룹은가용성복제본의수준에서장애조치된다. 따라서데이터파일손실, 데이터베이스삭제, 트랜잭션로그손상등으로인해주의대상데이터베이스가발생할경우의문제로는장애조치가수행되지않으므로유의해야한다. 참조 : MSDN 그렇다면알아보기쉽게이전버전의 HA 기능들과비교해서표를통해설명하겠다. 478 2013 기술백서 White Paper
SQL Server 2008 R2 기능특징단점 Failover Clustering Database Mirroring Replication Log Shipping Instance 수준고가용성 Hot Standby DB 수준고가용성은별도로고려해야함 장애발생시 1 분내외주 / 보조서버전환가능 많은사례확보 DB 수준고가용성제공 Hot Standby 30 초내외자동장애복구 주 / 보조 (Mirror) 서버간의 2 Phase Commit 으로완벽한데이터동기화제공 DB(Article 단위 ) 복제 Worm Standby 1:N DB 구성하여 Scale-out 가능 보조서버에서조회작업가능 보조서버에서데이터수정가능 DB 수준 DR 구성 Worm Standby 1:N 의 DB 구성하여 Scale-out 가능 보조서버에서조회작업가능 Passive 로구성된서버자원의낭비 DB 파일에대한이중화구성필요 DR 에대한고민필요 SAN(or DAS) 구성필요 다수의클러스터구성시각클러스터노드통합관제어려움 1:1 제한으로복수보조데이터베이스구성불가능 고가용성을위한 Connection String 에 Failover Partner 추가 보조 (Mirror) 서버데이터활용을위해서 DB Snapshot 별도설정 DB 그룹으로설정하여주 / 보조서비스전환의어려움 주서버장애시수동으로서비스를전환하기때문에즉각적인서비스전환불가능 각서버노드에대한상태모니터링어려움 복제단위가 DB 가아닌개체 (Object) 단위이기때문에여러개체복제시까다로움 주서버장애시수동으로서비스를전환하기때문에즉각적인서비스전환불가능 주서버와보조서버간동기화시간차발생 각서버노드에대한상태모니터링어려움 로그복구시모든세션연결끊김현상발생 표 1. SQL Server 2008 R2 의 HA 솔루션들 Part 3 SQL Server 479
SQL Server 2012 기능비교대상특장점 보조서버 DB 에대한읽기작업가능 Failover Clustering DB 파일에대한이중화구성제공 HA 와 DR 을동시에만족하는솔루션 SAN(or DAS) 와같은별도장비없이구성가능 AlwaysOn Availability Group Database Mirroring Replication Log Shipping AlwaysOn 대시보드를통해전체노드에대한통합관제제공 최대 4 대의보조서버를구성가능 Listener 를이용하여단일한 Connection String 제공 보조서버는주서버와실시간으로데이터를동기화하며성능을성능을고려해비동기모드도지원 AlwaysOn Group 에다양한 DB 를그룹으로묶어서서비스전환가능 AlwaysOn 대시보드를통해전체노드에대한통합관제제공 주서버장애발생시즉각적인서비스전환제공 주 / 보조 DB 서버에대한 Connection 투명성제공 AlwaysOn 대시보드를통해전체노드에대한통합관제제공 주서버장애발생시즉각적인서비스전환 주 / 보조 DB 서버에대한 Connection 투명성제공 주 / 보조서버간의실시간데이터동기화로서비스부하분산 AlwaysOn 대시보드를통해전체노드에대한통합관제제공표 2. SQL Server 2012 의 HA 솔루션 (AlwaysOn) 설명과표를통한비교자료를가지고도 AlwaysOn 의장점을이해하기어렵고필요성이느껴지지않는다고생각된다면다음내용을살펴보도록하자. 다음은 2 가지의장애시나리오와 1 가지의시나리오를가지고 AlwaysOn 환경과 Mirroring 환경에서어떤차이가나타나는지비교해서보여주도록하겠다. 480 2013 기술백서 White Paper
가용성그룹단위 Mirroring VS 단일 DB 단위 Mirroring 환경 AlwaysOn Mirroring OS Version Windows Server 2012 EE Windows Server 2012 EE SQL Server Version SQL Server 2012 EE SQL Server 2008 R2 EE 서버개수 3 대 (AD, NODE1, NODE2) 3 대 (NODE1, NODE2, Witness) 3 개 ( 각각 ) 3 개 ( 가용성그룹 1 개 ) MG( 가용성그룹 ) MG_130121 MG_130122 MG_130123 Mirroring DB 이름및개수 표 3 시나리오 1 번환경 각환경에구성된 DB 는일자별 Log 정보를담고있는 DB 들이다. (130121~130123) 이 DB 들중에 1 개의 DB(mg_130122) 에서장애가발생하였을경우 3 개의 DB 모두의정보를필요 로하는쿼리가제대로동작하는지확인해보았다 Part 3 SQL Server 481
AlwaysOn 환경쿼리결과 Mirroring 환경쿼리결과 Mirroring 은단일 DB 간 Mirroring 시스템이기때문에 3 개의 DB 중에하나가 failover 되면쿼리가실패를하게된다. 그에반해 AlwaysOn 은관련있는 DB 들을그룹으로지정해서그룹단위로 Mirror 가되기때문에위와같은경우 3 개중하나의 DB 라도장애가발생하면그룹채로 failover 되어서쿼리가실패할경우가발생하지않는다. 482 2013 기술백서 White Paper
최대 4 노드복제 ( 동적쿼럼방식 ) VS 1:1 복제 ( 과반수방식 ) 환경 AlwaysOn Mirroring OS Version Windows Server 2012 EE Windows Server 2012 EE SQLServer SQL Server 2012 EE SQL Server 2008 R2 EE Version 서버개수 4대 (AD,NODE1,NODE2, NODE3) 3대 (NODE1,NODE2, Witness) Mirroring DB 3개 ( 가용성그룹 1개 ) 3개 ( 각각 ) 개수 표4 시나리오 2번환경 각환경에구성된 DB 역시 1 번시나리오와같은 DB 들이다. 여기서서버들을하나씩장애를발 생시켜보았을때어떻게되는지살펴보겠다. NODE1 정지 NODE2 정지 Part 3 SQL Server 483
NODE3 으로장애조치 이시나리오를통해보여주고자하는내용은 Mirroring 은 1:1 로만복제가가능하고 AlwaysOn 은최대 4 노드까지복제가가능하다는점이다. 각환경에서서버에장애가발생할경우 AlwaysOn 은최대 4 대의서버까지는장애가발생해도사용이가능하다는점이고 Mirroring 은 2 대가발생하면더이상사용이불가하다. 그 2 대가 DB 가저장된서버이든모니터링을위한 Witness 서버이든상관없이최대 3 대중 2 대만 Fail 이일어나도과반수정책에의해작동하지않게된다. 만약그 2 대가같은곳에있는서버들인데그곳에정전이라도발생한다면어떻게되겠는가? 생각만해도끔찍한상황이발생할것이다. 물론 AlwaysOn 또한자동장애조치가가능한것은최대 2 대까지이고그외에는수동으로장애조치를해야한다. 그렇지만최악의경우가발생했을때수동으로라도장애조치를할수있는것과아무손도쓸수없는것과는천지차이이다. 484 2013 기술백서 White Paper
복제노드읽기작업및백업가능 VS. 복제노드스냅샷한정읽기가능 환경 AlwaysOn Mirroring OS Version Windows Server 2012 EE Windows Server 2012 EE SQLServer Version SQL Server 2012 EE SQL Server 2008 R2 EE 서버개수 3대 (AD, NODE1, NODE2, 3대 (NODE1, NODE2, NODE3) Witness) Mirroring DB 개 3개 ( 가용성그룹 1개 ) 3개 ( 각각 ) 수 표5 시나리오 3번환경 마지막시나리오는보조복제노드의활용이다. 단순 Mirroring 환경에서보조복제노드는스냅샷을통한한정된읽기작업밖에가능한것이없다. 서버가 2 대이지만 1 대의역할밖에수행할수없는비효율이발생한다. 그렇지만 AlwaysOn 환경에서는주노드를제외한모든복제노드들에서읽기작업및백업작업이가능하다. 만약 AlwaysOn 환경에보조복제노드가 2 개가존재한다면하나의보조복제노드에서는백업작업을실시하고다른보조복제노드에서는보고서작업과같은분석업무를실시할수있다. 또한읽기전용라우팅 ( 참조 : http://msdn.microsoft.com/ko-kr/library/7bd89ddd-0403-4930-a5eb- 3c78718533d4) 을설정하여보조복제노드에서읽기작업을수행하게함으로써주노드의과부하를줄여주고잠금충돌도줄일수있는효과를가져올수있다. 즉서버의개수만큼충분히작업에활용할수있는것이다. Part 3 SQL Server 485
주노드 (DML) 보조 노드 1 (SELECT) 보조 노드 2 (BACKUP) ; 표 6 AlwaysOn 복제노드활용방법예 486 2013 기술백서 White Paper
이제는 SQL Server 2012 로업그레이드가필요한때 앞에서시나리오를통해간단히살펴본것처럼단순 Mirroring 과비교했을때도 AlwaysOn 은많은장점이있다. 그외의 HA 기능들과비교했을때도 AlwaysOn 은충분히우월하다고본다. 물론비용적인측면에서보면이전버전을쓰는게더나을수도있다. 그렇지만시대가 Big Data 니 Cloud Computing 이니하며시간이지날수록데이터의중요성은더욱더커지게되고지금당장은아니더라도결국 ( 비용 < 데이터 ) 가되는시점이발생할것이다. 그렇다면고민없이 SQL server 2012 로업그레이드해서데이터를지키는것이정답이라고생각한다. 그만큼 AlwaysOn 은제값을하는기능이라고본다. 그동안 HA 와 DR 을위해 3rd Party Tool 을이용해비용이이중으로들었던고객들에게 AlwaysOn 은비용이나기능적인측면에서희소식이아닐까생각해보면서이글을마친다. Part 3 SQL Server 487