더북(TheBook)

8.3 관계형 데이터베이스에서 고가용성

 

 

이번에는 처리량이 아닌 장애 극복에 관해 알아봅시다. 하드웨어 고장 또는 다른 이유로 서버 기기가 정상 작동을 하지 않을 때도 사용자 입장에서는 서비스가 지속되는 상태를 유지하는 것을 고가용성이라고 합니다. 고가용성을 위해 다양한 기법이 활용되는데, 그중 하나가 장애 극복(fail over)입니다.

이를 위해서 할 수 있는 것은 레코드의 상시 백업입니다. 데이터베이스 기기가 두 대 있다 가정하고 각각 DB 1, DB 2로 칭하겠습니다. 고가용성을 위해 DB 1에 있는 레코드를 DB 2에 항상 백업, 즉 미러링 복제를 수행합니다. DB 1에서 레코드 변화가 생기면, 즉시 DB 2도 똑같이 그 변화를 따라 합니다. 이렇게 해서 DB 1과 DB 2 내용이 같도록 유지합니다. 같은 데이터가 DB 1과 DB 2에 모두 있게 하는 것을 이중화 혹은 다중화(redundancy)라고 합니다.

평소에는 DB 1을 액세스하다가 DB 1이 죽으면 DB 2가 DB 1 대신 액세스를 받아 처리합니다. 이때 DB 1을 액티브(active) 또는 마스터(master)라고 하며, DB 2를 패시브(passive) 또는 슬레이브(slave)라고 합니다.

이렇게 구성된 데이터베이스는 한쪽이 죽더라도 나머지가 대체 역할을 하기 때문에 항상 이용 가능한 상태가 됩니다. 즉, 고가용성을 만족시킵니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.