본문 바로가기

Database General

데이터베이스 고가용성(High Availability)

글을 작성하기 전에

작성자는 PostgreSQL/EDB PAS를 주로 이용하고 있어 PostgreSQL/EPAS 관련 정보가 다른 DBMS 보다 많이 포함될 수 있습니다. PostgreSQL 고가용성 부분은 https://postgresql.kr/blog/postgresql_ha.html 페이지에서 추가적으로 확인이 가능하며 데이터베이스의 고가용성에 대해 정리해보겠습니다. 

 

데이터베이스 고가용성(High Availability)

 

데이터베이스 고가용성이란 99.999%와 같이 수치 상으로 표현되기도 하지만, DB서버의 장애 상황에서 다운타임을 최소화 하기 위한 방안들을 가르키는 경우가 많다. 특히 데이터베이스의 경우 기업에서 필요한 데이터를 담고 있어 고가용성이 필수이기 때문에 다양한 방식, 다양한 솔루션이 적용되어 있음. 추가적으로 이 포스팅에서 말하는 데이터베이스 고가용성은 데이터베이스 이중화라고 표현되기도 함

 

고가용성 방식은 데이터베이스 기능으로 구현되느냐, 기타 시스템 레벨을 통해 활용되냐에 따라 분류 할 수 있음

 

데이터베이스 기능으로 활용하는 고가용성

PostgreSQL : Streaming Replication, repmgr, pg_auto_failover

MySQL : Streaming Replication, MMM , MHA, Galera Cluster

 

위의 DBMS에서는 오픈소스생태계에 걸맞게 DB 외에 오픈소스를 통해 고가용성을 제공하는 프로젝트들이 대량으로 존재하며 사용자가 필요시 사용하고 적용할 수 있다. 두 DBMS 다 단순 Replication만 적용시 Auto Failover가 불가하며 그를 위한 그 다음에 기술된 프로그램의 적용 및 DB 커넥션을 맺을때 설정하는 설정들의 변경이 필요하다.

 

MSSQL : Always on

ORACLE : RAC , HA

 

위의 기술한 내용들은 상용DBMS 에서 활용되는 고가용성으로, RAC 기준 적용시 필요한 다양한 고려사항이 있지만 적용시 무중단의 서비스 제공이 가능한 장점이 있다.

 

 

시스템 레벨을 통해 활용하는 범용 고가용성

데이터베이스 기능으로 활용하는 고가용성 방법을 통해서만은 시스템의 연속성을 유지하기 매우 어렵다. 스토리지, OS, 네트워크 등에 대한 검토와 함께 고가용성을 유지하기 위한 고가용 방법을 정리한다. 대부분 추가적인 솔루션을 통해 다양한 방법으로 고가용을 지원하고 있다.

Shared Disk 방식

예) Steeleye 사의 LifeKeeper, 맨텍사의 MCCS, RHCS

2대의 서버가 1개의 디스크를 공유하고 그를 VIP를 통해 관리하므로 Active-Standby로 부르는경우가 많다. 

대부분 솔루션을 통해 이루어지므로 간편하지만 Shared volume이 필요하는 제약이 있다.

 

 

Disk 복제 방식

예) DRBD + Corosync + pacemaker, Steeleye 사의 DataKeeper

Wal 파일을 통한 replication이 아닌 네트워크를 통한 디스크 복제 방식이다.

오픈소스를 통한 구성이 가능하지만 (DRBD) 네트워크 성능에 영향을 받는 단점이 있다.

 

 

두 방식 모두 Active 서버가 중지가 되면 Standby 서버로 Failover 되며 Replication의 Master-Slave 보다 Active-Standby 로 불리운다.

 

 

 

(그림 출처 및 참고 자료)

 

https://www.percona.com/blog/2017/06/20/the-mysql-high-availability-landscape-in-2017-the-elders/ 

 

The MySQL High Availability Landscape in 2017 (The Elders) - Percona Database Performance Blog

In this blog we'll look at different MySQL high availability options.

www.percona.com

https://spec-zone.ru/mysql/5.6/ha-overview_ha-drbd.html

postgresql.org

enterprisedb.com

https://bit.ly/3wsxU43

 

모든 포스팅은 공식사이트 및 위 Google Docs에 있는 서버 관리자 지침서(https://bit.ly/3wsxU43) 를 참고하여 작성되었습니다.

'Database General' 카테고리의 다른 글

PostgreSQL vs MySQL - 2. DDL Operation (+DCL)  (0) 2022.12.20
PostgreSQL vs MySQL - 1. 개요  (0) 2022.12.19