데이터ㆍ분석

"오라클부터 포스트그레SQL까지" DBMS 7종 추천 백업 방법과 이유

W. Curtis Preston | Network World 2022.03.29
데이터베이스 백업 방법은 다양하고, 데이터베이스와 데이터베이스 작동 방식에 따라 최선이 무엇인지도 달라진다. 이런 고민에 도움이 되도록 7가지 데이터베이스를 위한 추천 백업 방법과 이유를 정리했다.
 
ⓒ Getty Images Bank
 

오라클 

오라클 백업 방법은 많지만 대체로 리커버리 매니저(Recovery Manager, 또는 RMAN)를 사용한다. RMAN은 실제 이 툴이 호출하는 명령의 이름이기도 하다. RMAN은 이전 증분 백업을 전체 백업에 병합하는 기능을 지원하므로 여러 전체 백업을 만들지 않고도 다양한 복구 지점을 둘 수 있다.

RMAN은 효율적인 덤프 앤 스윕(dump and sweep) 백업 옵션이지만 전체 백업과 일련의 증분을 모두 저장하기 위해 꽤 많은 디스크 공간이 필요하다. 디스크 공간이 부족하면 백업 전에 SQL 명령 alter database begin backup을 사용하고 백업 후 alter database end backup을 사용하면 된다. 참고로 윈도우에서 오라클을 사용하면 볼륨 섀도 복사본 서비스(VSS)와 통합되므로 스크립트 없이 핫 백업을 할 수 있다. RMAN 이미지 옵션과 덤프 앤 스윕 방식을 조합하면 복구 속도를 극대화할 수 있다.
 

SQL 서버 

backup database 명령을 이용하면 디스크(덤프 앤 스윕), 애저(클라우드 백업)로 데이터베이스 또는 트랜잭션 로그의 전체 또는 증분 백업을 자동화하거나 서드파티 백업 툴로 바로 스트리밍할 수 있다. 오라클과 마찬가지로 SQL 서버 역시 윈도우에서 VSS를 사용해 핫 백업이 가능하다. VSS 방법으로 VM 백업을 쉽게 통합할 수 있으며, 디스크 스테이징 영역이 필요 없는 장점이 있다. 대부분 DBA가 덤프 앤 스윕 방식을 선호한다. 
 

DB2 

backup database 명령을 사용해 DB2 데이터베이스와 트랜잭션 로그의 전체 또는 증분 백업을 디스크에 수행하거나(덤프 앤 스윕), 서드파티 백업 툴로 바로 스트리밍할 수 있다. 이 명령은 스토리지 장비와 통합되는 스냅샷 플래그도 지원하며 애플리케이션 일관적인 데이터베이스 스냅샷을 생성하는 데 사용할 수 있다. 다른 스냅샷과 마찬가지로 스냅샷이 생성되면 다른 곳에 복제해 두어야 한다. 사전 작업이 거의 없이 뛰어난 복구 속도를 제공한다. 
 

마이SQL 

마이SQL에서 가장 먼저 할 일은 마이ISAM(MyISAM) 테이블 사용을 멈추고 중요한 모든 데이터를 이노DB(InnoDB)와 같은 더 현대적인 유형의 테이블로 가져오는 것이다. 마이SQL 엔터프라이즈 에디션 사용자는 오라클과 마찬가지로 데이터 파일을 백업하기 전에 엔터프라이즈 백업 기능을 사용해 데이터베이스를 핫 백업 모드로 설정할 수 있다. mysqldump 명령은 범용적이며 모든 사용자가 쓸 수 있지만, 대용량 데이터베이스에서 속도가 매우 느린 단점이 있다. 그러나 엔터프라이즈 백업 기능을 이용할 수 없는 경우에는 최선이다.
 

포스트그레SQL 

포스트그레SQL에서 일반적인 방법은 디스크에 전체 SQL 덤프를 생성하는 pg_dump 명령이지만 이 경우 백업을 실행한 시점으로의 복구만 가능하다. pg_dump 빈도보다 더 짧은 복구 지점 목표(RPO)를 원한다면 연속 미리 쓰기 로그(WAL)를 활성화한 후 파일시스템 백업 전후에 pg_start_backup과 pg_stop_backup을 사용해 데이터베이스를 핫 백업 모드로 넣었다 빼는 작업을 해야 한다. 복구 중에 파일시스템을 복원해 시작하고, WAL 파일을 사용해 백업 이후에 발생한 트랜잭션을 재생한다. 이 방법으로 효율적이면서도 고가의 데이터베이스 못지않은 짧은 RPO 복구를 구현할 수 있다.
 

몽고DB 

몽고DB 아틀라스(몽고DB의 PaaS 버전)를 사용한다면 가장 좋은 백업 방법은 특정 시점 복구를 적용한 연속 클라우드 백업이다. 어느 정도 과거까지 복구할 수 있도록 할지 지정하면 아틀라스가 이 지정된 윈도우 내의 지점으로 클러스터를 복원하는 데 필요한 백업을 자동으로 수행한다. 자체 몽고DB를 호스팅하는 경우 몽고DB 클라우드 매니저(SaaS) 또는 옵스 매니저(온프레미스 소프트웨어)를 사용할 수 있다. 클라우드 매니저는 다양한 가격대에서 다양한 SLA를 지원하며 아틀라스를 사용하지 않으면 가장 합리적인 선택이다.

몽고DB 4.2 이상을 사용한다면 mongod 실행 중에 기반 파일시스템을 백업할 수 있다. 그러면 몽고DB가 복원 이후 '잘못된' 키를 발견해 정리한다. 덤프 앤 스윕 방식으로 사용할 수 있는 mongodump 옵션도 있지만 mongodump는 샤드 간 트랜잭션 원자성을 보장하지 못하므로 이 방법은 소규모 환경에서만 사용하는 것이 좋다.
 

카산드라

카산드라의 백업 방법은 사용하는 버전이 오픈소스 버전인지 엔터프라이즈 버전인지 또는 아스트라(PaaS)인지에 따라 달라진다. 카산드라가 가진 탄력성을 백업과 혼동해서는 안 된다. 탄력성이 아무리 뛰어나도 누군가 실수로 테이블을 삭제하거나 잘라내는 경우까지 대비한 보호책을 제공하지 않는다.

카산드라의 일반적인 백업 툴은 nodetool snapshot이다. 하드 링크를 사용해 모든 또는 특정 키스페이스나 테이블의 모든 데이터의 완전한 별개 복사본을 생성하는, 스냅샷과 유사한 시스템이다. 전체 또는 증분 백업을 생성할 수 있다. 스냅 앤 스윕(snap-and-sweep) 구성에서 이렇게 생성된 복사본을 사용해 데이터를 다른 곳으로 옮길 수 있다.

버전과 관계없이 클라우드 업체에서 카산드라를 사용하고 있다면, 전체 클러스터의 클라우드 스냅샷을 한 번에 생성할 수 있다. 이 방법은 nodetool snapshot 명령보다 훨씬 더 훌륭한 복원 옵션을 제공한다. 예를 들어 데이터스택스(Datastax)는 전체 클러스터를 백업, 복원하는 기업 사용자용 상품 'DSE 백업 앤 리스토어 서비스(DSE Backup and Restore Service)'를 제공한다. 여기에 가입하면 4시간에 한 번씩 자동으로 백업된다. 
 

다이나모DB 백업 

다이나모DB는 AWS 서비스로만 제공되며 백업 옵션도 비교적 단순하다. AWS는 다이나모DB 테이블 전체 또는 일부의 특정 시점 복구를 지원하는 자동화된 백업을 제공한다. 특정 시점 복구를 활성화하기만 하면 나머지는 AWS가 모두 알아서 해준다. AWS는 사용자가 제어할 수 있는 온디맨드 백업도 제공하지만, 특정 시점 복원은 지원하지 않는다. 

다양한 DB의 백업 방법을 살펴봤는데, 가장 중요한 것은 복구를 테스트하는 것이다. 사실 백업할 수 있는지는 아무도 관심이 없다. 사람들의 관심은 복원할 수 있는지 뿐이다.
editor@itworld.co.kr
 Tags DBMS 백업

회사명 : 한국IDG | 제호: ITWorld | 주소 : 서울시 중구 세종대로 23, 4층 우)04512
| 등록번호 : 서울 아00743 등록발행일자 : 2009년 01월 19일

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

Copyright © 2024 International Data Group. All rights reserved.