Offcanvas

How To / 데이터센터 / 스토리지 / 애플리케이션

'유형따라 다르다'··· 데이터베이스 백업 ABC

2022.03.02 W. Curtis Preston   |  Network World
데이터베이스를 백업하려면 먼저 어떤 종류의 데이터베이스가 활용되는지 알아야 한다. 13종이 넘는 데이터베이스 중에서 백업 질문이 많이 생기는 관계형, 키-값, 문서, 와이드 컬럼 등 4종을 살펴보고, 각 유형에 따른 모범 수칙을 살펴본다.

이들 데이터베이스 모델을 이해하면 백업 팀과 데이터베이스 관리자 사이에 원활한 소통이 가능해져 서로 도움이 된다.

데이터베이스 4종
관계형(Relational)
관계형 데이터베이스는 스키마(레이아웃)가 정해져 있고 속성(값)이 하나 이상인 행에 레코드가 있는 일련의 테이블이다. 이들 테이블 사이에는 관계가 존재하기 때문에 관계형 데이터베이스라고 불리며, 백업 시에 모든 것을 백업하고 복원해야 한다. 관계형 데이터베이스의 예로는 오라클(Oracle), SQL 서버(SQL Server), 마이SQL(MySQL), 포스트그레SQL(PostgreSQL) 등이 있다.

키-값(Key-value)
키-값 데이터베이스는 키를 알면 값을 검색할 수 있는 노SQL(NoSQL) 데이터베이스의 일종으로 키와 값으로 구성된 스키마가 하나 있다. 키-값 데이터베이스의 예로는 레디스(Redis), 다이나모DB(DynamoDB) 등이 있다.

문서(Document)
문서 데이터베이스는 문서 저장에 특화된 노SQL 데이터베이스이다. 어떠한 획일적인 표준도 따를 필요가 없는 레코드에 매우 상이한 종류의 데이터를 저장할 수 있다. 그러한 데이터베이스에 문서를 저장할 때 JSON이 자주 사용된다. 문서 모델만 지원하는 데이터베이스로는 몽고DB가 단연 인기있다.

와이드 컬럼(Wide column)
와이드 컬럼 데이터베이스 역시 스키마가 없는 노SQL 데이터베이스로서 프리스키마(preschema) 없이 다수의 데이터 컬럼을 저장할 수 있다. 컬럼 이름과 키는 데이터베이스 전체에 걸쳐 정의할 수 있다. 와이드 컬럼 데이터베이스 중에서는 카산드라(Cassandra)가 가장 유명하다.

대부분의 관리자가 익숙한 관계형 데이터베이스 백업은, 매일 데이터베이스 덤프에 이은 매시간 또는 지속적인 트랜잭션 로그 백업으로 구성되어 있다. 따라서, 데이터베이스를 어느 시점으로든 복원할 수 있다. 최신 백업본을 사용한 후 트랜잭션 로그를 재생하면 마지막 백업 이후 발생한 트랜잭션이 다시 생기기 때문이다. 이러한 백업본을 모두 디스크에 보관하고 문제의 데이터베이스에 접근 가능하게 하면 복원 속도가 훨씬 빨라진다.

키-값 데이터베이스는 관계형 데이터베이스와 달리 테이블 사이에 관계가 존재하지 않기 때문에 백업이 상대적으로 훨씬 간단하다. 데이터베이스 전체를 백업할 필요 없이 전체 덤프나 점증 덤프를 사용해 아무 때나 테이블 수준에서 백업할 수 있다.

반면, 문서 데이터베이스나 와이드 컬럼 데이터베이스는 백업이 꽤 복잡하다. 보통 각 노드에 데이터베이스의 각 부분이 존재하는 멀티 노드 구성으로 실행되는데 전체 데이터베이스를 한 번에 백업하는 기능은 없기 때문이다. 이들 데이터베이스가 사용하는 일관성 모델(consistency model)은 백업 담당자에게 꽤나로 당황스러운 존재다. 어떤 것들이 있는지 살펴본다.

3가지 일관성 모델
데이터베이스 데이터를 삽입하거나 업데이트했을 때 이를 데이터베이스 사용자 전원에게 일관성 있게(아니면 일관성 없게) 보이게 하는 방법은 2가지가 있는데 서로 상이하다. 이 일관성 모델에 따라 해당 데이터베이스를 어떻게 백업하고 복원할 지에 대한 생각이 달라질 수 있다. 

예를 들어, 새로운 레코드가 삽입 즉시 사용자 전원에게 보이는지 여부에 따라 해당 데이터베이스의 즉각적 일관성(Immediate consistency), 최종적 일관성(Eventual consistency), 아니면 2가지를 섞은 하이브리드의 지원 여부가 결정된다.

즉각적 일관성
즉각적 일관성은 강력한 일관성이라고도 하며 데이터를 보는 장소와 방식을 불문하고 사용자 전원에게 동시에 동일한 데이터가 보인다. 대부분의 관계형 데이터베이스가 이 모델을 따른다. 즉각적으로 일관적인 데이터베이스는 백업하기가 상대적으로 쉽다. 지원되는 아무 방식을 통해서 아무 지점에서나 백업할 수 있기 때문이다. 또한, 데이터베이스 뷰가 항상 일관적이다.

최종적 일관성
최종적 일관성이라는 표현은 문제의 개체를 변경하지 않으면 해당 개체의 읽기 작업은 모두 최종적으로 동일한 값을 반환한다는 개념에서 유래한다. 최종적 일관성의 대표적인 예는 DNS이다. DNS 변경사항이 전세계 모든 DNS 서버로 전파되려면 몇 분에서 몇 시간이 소요되지만 최종적으로 전달되고 모든 DNS 서버가 동일한 값을 반환하게 된다. 이러한 이유로 최종적으로 일관적인 데이터베이스는 즉각적으로 일관적인 데이터베이스에 비해 백업하기 복잡하다.

하이브리드 일관성
노SQL 데이터베이스에서 자주 사용되는 하이브리드 일관성은 최종적으로 일관적인 쓰기 작업을 지원하지만 읽기 작업에 필요한 일관성 수준을 API 호출 별로 지정하게 해준다. 백업 시에 전체적으로 일관적인 데이터를 원하는지 이 기능을 활용해 지정할 수 있다.

일관성 모델에 따라 데이터 보호 방법이 좌우된다. 일관적인 데이터를 백업 중이라는 확신이 있거나 일관적인 데이터를 복원할 능력이 있다는 확신이 있어야 하기 때문이다. 예를 들어, 몽고DB나 카산드라 같은 멀티노드 데이터베이스에서 쓸모 없어진 데이터베이스 노드를 백업하면 백업본도 쓸모 없게 된다. 

또한, 두 노드에 각각 포함된 데이터의 시점이 서로 다르면, 둘 다 동시에 백업해도 모든 데이터의 일관성 있는 백업본을 얻을 수 없다. 두 노드를 서로 다른 두 시점으로 복원하면 두 노드 사이에 소위 ‘참조 무결성 문제’(referential integrity issue)가 생긴다. 데이터베이스별로 지원하는 일관성 모델을 정리하면 다음과 같다.



필수 실행 3단계
데이터베이스 백업에 성공하려면 먼저 해당 백업의 실행 방식이 본인이 통제하는 하드웨어나 VM인지, 서비스 형태로 제공된 타인의 하드웨어인지, 아니면 본인이 레코드 삽입, 업데이트 또는 삭제만 하는 서버리스인지를 알아야 한다.

다음으로는 해당 데이터베이스의 종류를 알아야 백업 방식도 정해진다. 오라클 또는 SQL 서버와 같이 인기 있는 관계형 데이터베이스라면 사용자는 즐겨 쓰는 백업 제품의 백업 에이전트를 사용할 수 있다. 즉, 백업용 스토리지 또는 클라우드 시스템으로 데이터를 직접 전송할 수 있다. 

그 외 3가지 데이터베이스 모델 중 하나인 경우에는 ‘덤프-앤-스윕(dump-and-sweep)’ 방식을 사용해야 한다. 해당 제품의 백업 툴로 디스크 상에 백업본을 만든 후 백업 시스템으로 정리하는 방식이다. 백업 에이전트 방식에 비해 복잡할지 모르지만 유연성은 훨씬 크다.

세 번째로, 최종적 일관성 모델을 사용하는 멀티노드 데이터베이스인 경우에 가장 어렵다. 데이터베이스에 백업이 필요 없다는 사람의 말은 무시하는 것이 좋다. 백업본이 없는 데이터베이스는 노드 오류 등은 견딜지 모르지만 사람이 저지르는 오류와 사이버 공격에는 여전히 취약하다. 

문제의 제품을 조사해서 전체 데이터베이스를 백업하거나 해당 데이터베이스의 각 테이블을 백업하는 방법을 알아내야 한다. 그와 같은 노드 수준의 탄력성이 있다면 테이블 수준에서의 복원이 가능하다.

사용자 환경 내의 데이터베이스가 데이터센터 내에 있든, 클라우드 내 VM에서 실행 중이든, 단순히 서비스 형태로 제공된 것이든 간에 관련 정보를 최대한 많이 알아내야 한다. 그 다음에는 사용되는 데이터베이스와 일관성 모델 종류를 알아내고 그 지식을 활용하여 데이터베이스 관리자에게 말을 걸면서 친해진다.  그 다음으로는 해당 데이터베이스에 필요한 종류의 복원을 우선적으로 하는 옵션을 찾는다. ciokr@idg.co.kr
CIO Korea 뉴스레터 및 IT 트랜드 보고서 무료 구독하기
추천 테크라이브러리

회사명:한국IDG 제호: CIO Korea 주소 : 서울시 중구 세종대로 23, 4층 우)04512
등록번호 : 서울 아01641 등록발행일자 : 2011년 05월 27일

발행인 : 박형미 편집인 : 천신응 청소년보호책임자 : 한정규
사업자 등록번호 : 214-87-22467 Tel : 02-558-6950

Copyright © 2024 International Data Group. All rights reserved.