자체 관리형 배포서버를 위한 백업 방법
MongoDB를 프로덕션 환경에 배포할 때는 데이터 손실 이벤트 발생에 대비해 백업 캡처 및 복원과 같은 전략이 있어야 합니다.
이 페이지에서는 자체 관리 배포서버의 백업 방법을 설명합니다.
MongoDB Atlas 에서 호스팅되는 배포를 위한 백업 방법에 학습 보려면 데이터 백업, 복원 및 보관 를 참조하세요.
MongoDB Cloud Manager 또는 Ops Manager를 사용하여 백업
MongoDB Cloud Manager는 MongoDB를 위한 호스팅된 백업, 모니터링 및 자동화 서비스입니다. MongoDB Cloud Manager는 그래픽 사용자 인터페이스에서 MongoDB 복제본 세트 및 샤딩된 클러스터의 백업 및 복원을 지원합니다.
MongoDB Cloud Manager
MongoDB 클라우드 관리자는 MongoDB 배포의 백업 및 복원을 지원합니다.
MongoDB Cloud Manager는 MongoDB 배포에서 oplog 데이터를 읽어 MongoDB 복제본 세트와 샤딩된 클러스터를 지속적으로 백업합니다. MongoDB Cloud Manager는 설정된 간격으로 데이터의 스냅샷을 생성하며 MongoDB 복제본 세트와 샤딩된 클러스터의 특정 시점 복구도 제공할 수 있습니다.
팁
샤딩된 클러스터 스냅샷은 다른 MongoDB 백업 방법으로는 달성하기 어렵습니다.
MongoDB Cloud Manager 백업을 시작하려면 MongoDB Cloud Manager에 등록하십시오. MongoDB 클라우드 관리자에 대한 문서는 MongoDB 클라우드 관리자 참조하세요.
Ops Manager
Ops Manager를 통해 MongoDB 구독자는 자체 인프라에 MongoDB Cloud Manager를 구동하는 것과 동일한 핵심 소프트웨어를 설치 및 실행할 수 있습니다. Ops Manager는 MongoDB Cloud Manager와 유사한 기능을 가진 온프레미스 솔루션으로 Enterprise Advanced 구독을 통해 사용할 수 있습니다.
Ops Manager에 대한 자세한 내용은 MongoDB Enterprise Advanced 페이지 및 Ops Manager 매뉴얼을 참조하세요.
기초 데이터 파일을 복사하여 백업
참고
AES256-GCM을 사용하는 암호화 스토리지 엔진에 대한 고려 사항
2} 암호화 모드를 사용하는 암호화된 스토리지 엔진의 AES256-GCM
AES256-GCM
경우 는 모든 프로세스가 키와 함께 고유한 카운터 블록 값을 사용하도록 요구합니다.
2} 암호로 구성된 암호화된 스토리지 엔진의 경우: AES256-GCM
- 핫 백업에서 복원
- 4.2부터 "hot" 백업을 통해 가져온 파일에서 복원하는 경우(즉,
mongod
가 실행 중일 때), MongoDB는 시작 시 "더티" 키를 감지하고 데이터베이스 키를 자동으로 롤오버하여 IV(초기화 벡터) 재사용을 방지할 수 있습니다.
- 콜드 백업에서 복원
그러나 "cold" 백업을 통해 가져온 파일에서 복원하는 경우(즉,
mongod
가 실행 중이 아닌 경우), MongoDB는 시작 시 "더티" 키를 감지할 수 없으며, IV를 재사용하면 기밀성 및 무결성 보증이 무효화됩니다.4.2부터 콜드 파일 시스템 스냅샷에서 복원한 후 키 재사용을 방지하기 위해 MongoDB는 새로운 명령줄 옵션
--eseDatabaseKeyRollover
를 추가합니다.--eseDatabaseKeyRollover
옵션으로 시작하면mongod
인스턴스는AES256-GCM
암호로 구성된 데이터베이스 키를 롤오버하고 종료합니다.
일반적으로 MongoDB Enterprise에 파일 시스템 기반 백업을 사용하는 경우 가능하면 핫 백업 기능을 사용하세요.
파일 시스템 스냅샷으로 백업
MongoDB의 기본 데이터 파일 복사본을 만들어 MongoDB deployment의 백업을 만들 수 있습니다.
MongoDB가 데이터 파일을 저장하는 볼륨이 특정 시점 스냅샷을 지원하는 경우 이 스냅샷을 사용하여 정확한 시점에 MongoDB 시스템 백업을 생성할 수 있습니다. 파일 시스템 스냅샷은 운영 체제 볼륨 관리자 기능이며 MongoDB에만 국한되지 않습니다. 파일 시스템 스냅샷을 사용하면 운영 체제는 데이터 백업의 기준으로 사용할 볼륨의 스냅샷을 만듭니다. 스냅샷의 메커니즘은 기본 스토리지 시스템에 따라 달라집니다. 예를 들어 Linux에서는 논리 볼륨 관리자(LVM)로 스냅샷을 만들 수 있습니다. 마찬가지로 Amazon의 EC2용 EBS 저장 시스템도 스냅샷을 지원합니다.
실행 중인 프로세스의 mongod
올바른 스냅샷을 얻으려면 저널링을 활성화해야 하며 저널은 다른 MongoDB 데이터 파일과 동일한 논리 볼륨에 있어야 합니다. 저널링을 활성화하지 않으면 스냅샷의 일관성이나 유효성이 보장되지 않습니다.
샤딩된 클러스터의 일관된 스냅샷을 얻으려면 밸런서를 비활성화하고 거의 같은 시간에 Config 서버뿐만 아니라 모든 샤드에서 스냅샷을 캡처해야 합니다. 샤딩된 클러스터를 백업하려면 데이터베이스 덤프를 사용한 자체 관리형 샤딩된 클러스터 백업을 참조하세요.
자세한 내용은 파일 시스템 스냅샷을 사용한 자체 관리형 배포 백업 및 복원과 파일 시스템 스냅샷을 사용한 자체 관리형 샤딩된 클러스터 백업을 참조하여 LVM을 사용하여 스냅샷을 만드는 방법에 대한 전체 지침을 확인하세요.
또는 로 백업 cp
rsync
저장 시스템이 스냅샷을 지원하지 않는 경우 cp
rsync
, 또는 이와 유사한 도구를 사용하여 파일을 직접 복사할 수 있습니다. 여러 파일을 복사하는 것은 원자적인 작업이 아니므로 파일을 복사하기 전에 mongod
에 대한 모든 쓰기를 중지해야 합니다. 그렇지 않으면 유효하지 않은 상태로 파일을 복사하게 됩니다.
기본 데이터를 복사하여 생성된 백업은 복제본 세트에 대한 특정 시점 복구를 지원하지 않으며, 대규모 샤딩된 클러스터를 관리하기 어렵습니다. 또한 이러한 백업에는 인덱스가 포함되고 기본 스토리지 패딩 및 프래그먼트화가 중복되기 때문에 더 커집니다. 반면에 mongodump
는 더 작은 백업을 생성합니다.
백업 방법 mongodump
mongodump
는 MongoDB 데이터베이스에서 데이터를 읽고 mongorestore
도구가 MongoDB 데이터베이스를 채우는 데 사용할 수 있는 고충실도 BSON 파일을 생성합니다. mongodump
및 mongorestore
는 소규모 MongoDB 배포서버를 백업 및 복원하기 위한 간단하고 효율적인 도구이지만 대규모 시스템의 백업을 캡처하는 데는 적합하지 않습니다.
mongodump
및 mongorestore
은(는) 실행 중인 mongod
프로세스에 작동하며 기본 데이터 파일을 직접 조작할 수 있습니다. 기본적으로 mongodump
은(는) 로컬 데이터베이스의 콘텐츠를 캡처하지 않습니다.
mongodump
는 데이터베이스의 문서만 캡처합니다. 결과 백업은 공간 효율적이지만 mongorestore
또는 mongod
는 데이터를 복원한 후 인덱스를 다시 작성해야 합니다.
MongoDB 인스턴스에 연결하면 mongodump
가 mongod
성능에 부정적인 영향을 미칠 수 있습니다. 데이터가 시스템 메모리보다 크면 쿼리로 인해 작업 세트의 메모리가 부족해져 페이지 오류가 발생할 수 있습니다.
애플리케이션은 mongodump
가 출력을 캡처하는 동안 데이터를 계속 수정할 수 있습니다. 복제본 세트의 경우 mongodump
는 mongodump
작업 중에 발생하는 출력 oplog 항목에 포함할 --oplog
옵션을 제공합니다. 이를 통해 해당 mongorestore
작업이 캡처된 oplog를 재생할 수 있습니다. --oplog
로 생성된 백업을 복원하려면 mongorestore
를 --oplogReplay
와 함께 사용하세요.
그러나 복제본 세트의 경우 MongoDB Cloud Manager 또는 Ops Manager를 고려하세요.
샤딩된 클러스터를 백업하려면 데이터베이스 덤프를 사용하여 자체 관리형 샤딩 클러스터백업을 참조하세요.
참고
mongodump
및 mongorestore
를 샤딩된 클러스터의 백업 전략으로 사용하려면 데이터베이스 덤프를 사용하여 자체 관리 샤딩된 클러스터 백업을 참조하세요.
또한 샤딩된 클러스터는 샤드 간 트랜잭션의 원자성 보장을 유지하는 다음과 같은 조정된 백업 및 복원 프로세스 중 하나를 사용할 수 있습니다.
자세한 내용은 MongoDB 도구를 사용하여 자체 관리 배포 백업 및 복원과 데이터베이스 덤프를 사용하여 자체 관리 샤딩된 클러스터 백업을 참조하세요.