Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
Click here >
Docs Menu
Docs Home
/ /

MongoDB 도구를 사용하여 자체 관리형 배포서버 백업 및 복원

이 튜토리얼에서는 mongodumpmongorestore를 사용하여 백업을 만들고 데이터를 복원하는 방법을 다룹니다.

자체 호스팅 배포의 백업을 관리형 MongoDB Atlas 배포로 복원하려면 mongorestore를 사용하여 시드를 참조하세요.

mongorestoremongodump 유틸리티는 BSON 데이터 덤프와 함께 작동하며 소규모 배포의 백업을 만드는 데 유용합니다. 복원력이 뛰어나고 중단 없는 백업을 원한다면,파일 시스템 스냅샷 또는 블록 수준 디스크 스냅샷과 MongoDB Atlas의 클라우드 백업 을 사용하세요.

참고

MongoDB Atlas로 샤딩된 클러스터 백업

mongodumpmongorestore를 샤딩된 클러스터의 백업 전략으로 사용하려면 데이터베이스 덤프를 사용하여 자체 관리 샤딩된 클러스터 백업을 참조하세요.

또한 샤딩된 클러스터는 샤드 간 트랜잭션의 원자성 보장을 유지하는 다음과 같은 조정된 백업 및 복원 프로세스 중 하나를 사용할 수 있습니다.

mongodumpmongorestore 는 실행 mongod 인스턴스 와 상호 작용 때문에 데이터베이스 성능에 영향 수 있습니다. 이 도구는 트래픽을 생성하고 데이터베이스 가 메모리를 통해 모든 데이터를 읽도록 합니다. MongoDB 자주 액세스하지 않는 데이터를 읽으면 자주 액세스하는 데이터를 제거하여 데이터베이스의 일반 워크로드 성능을 저하시킵니다.

MongoDB 도구를 사용하여 데이터를 백업할 때는 다음 지침을 따르세요.

자세한 내용은 자체 관리형 배포서버를 위한 백업 방법을 참조하세요. For MongoDB Database Tools 참조는 다음을 참조하세요.

mongorestoremongodump 는 데이터를 여러 BSON 파일에 대한 단일 파일 대안인 보관 파일로 출력할 수 있습니다. 보관 파일은 비연속적인 파일 쓰기 (write)를 지원 특수 목적 형식입니다. MongoDB 에서 백업과 MongoDB 로 복원을 동시에 활성화 . 보관 파일은 백업 및 복원 중에 디스크 I/O를 최적화하기도 합니다.

보관 파일을 표준 출력(stdout)에 쓰기 (write) 수도 있습니다. 표준 출력에 기록하면 네트워크를 통한 데이터 마이그레이션 , 디스크 I/O 감소, MongoDB 도구와 스토리지 엔진 모두의 동시성 향상이 가능합니다.

보관 파일에 대한 자세한 내용은 --archive 옵션을 참조하세요.

백업은 데이터베이스의 현재 상태에 대한 스냅샷을 제공합니다. 백업에서 복원하는 경우 복원된 데이터베이스에는 백업 이후에 변경된 내용이 포함되지 않으므로 데이터가 손실될 수 있습니다.

mongodump 유틸리티는 실행 mongod에 연결하여 데이터를 백업합니다. 전체 서버, 데이터베이스 또는 컬렉션 백업 하거나 쿼리 사용 하여 컬렉션 의 일부를 백업할 수 있습니다 . mongodumplocal 데이터베이스 의 콘텐츠를 출력에서 제외합니다.

인수를 지정하지 않으면 mongodump 이(가) 포트 27017 에서 로컬 시스템의 MongoDB 인스턴스 에 연결되고 현재 디렉토리 에 dump/ (이)라는 데이터베이스 백업 생성됩니다.

mongodump

호스팅하다 및 포트를 지정하려면 다음 중 하나를 사용합니다:

  • SRV 또는 표준 연결 문자열 사용하여 --uri 문자열을 지정합니다.

    mongodump --uri="mongodb+srv://username:password@cluster0.example.mongodb.net" <additional_options>
  • --host에 호스트 이름과 포트를 지정합니다.

    mongodump --host="mongodb0.example.com:27017" <additional_options>
  • --host--port 를 별도로 지정합니다.

    mongodump --host="mongodb0.example.com" --port=27017 <additional_options>

다른 출력 디렉토리 지정하려면 --out (또는 -o)를 사용합니다.

mongodump --out=/opt/backup/mongodump-1

덤프를 특정 데이터베이스 또는 컬렉션으로 제한하려면 --db--collection를 사용합니다.

mongodump --collection=myCollection --db=test

이렇게 하면 현재 디렉토리 의 dump/ 하위 디렉토리에 있는 test 데이터베이스 에서 myCollection 덤프가 생성됩니다.

mongodump 출력 폴더의 기존 파일을 덮어씁니다(기본값: dump/). 여러 번 실행 전에 출력 폴더를 백업하거나 이름을 변경하세요.

액세스 제어가 활성화된 MongoDB 배포서버에 대해 mongodump를 실행하려면 백업할 각 데이터베이스에 대해 find 작업을 수행할 수 있는 권한이 있어야 합니다. 기본 제공 backup 역할은 모든 데이터베이스의 백업을 수행하는 데 필요한 권한을 제공합니다.

backup 역할은 데이터베이스 프로파일링을 실행할 때 존재하는 system.profile 컬렉션을 백업할 수 있는 추가 권한을 제공합니다.

--host--port 를 사용하여 원격 인스턴스에 연결합니다.

mongodump \
--host=mongodb1.example.net \
--port=3017 \
--username=user \
--password="pass" \
--out=/opt/backup/mongodump-1

인증할 mongodump 명령에 사용자 이름 과 비밀번호를 지정합니다.

--oplog 옵션은 백업 중에 oplog 항목을 수집하므로 데이터베이스를 백업 완료된 시점의 상태로 복원할 수 있습니다.

--oplog를 사용하면 mongodump 가 소스 데이터베이스 의 모든 데이터와 백업 의 시작부터 끝까지 모든 oplog 항목을 복사합니다. 이를 mongorestore --oplogReplay 와 함께 사용하여 mongodump 가 완료된 정확한 순간을 반영하는 백업 복원 .

mongorestore 유틸리티는 실행 mongod 에 직접 연결하여 mongodump 에서 생성된 바이너리 백업 복원합니다. 기본값 으로 mongorestoredump/ 디렉토리 에서 데이터베이스 백업 찾고 전체 백업 또는 하위 집합을 복원 할 수 있습니다.

참고

모든 MongoDB 컬렉션에는 기본적으로 UUID가 포함되어 있습니다. MongoDB가 컬렉션을 복원할 때 복원된 컬렉션은 본래의 UUID를 유지합니다. UUID가 없는 컬렉션을 복원하는 경우, MongoDB는 복원된 컬렉션에 대한 UUID를 생성합니다.

컬렉션 UUID에 대한 자세한 내용은 컬렉션을 참조하세요.

mongorestore 를 활성 mongod에 연결하려면 다음을 수행합니다.

mongorestore --uri <connection string> <path to the backup>

예시 를 들어 디렉토리 에서 복원 하려면 다음을 수행합니다.

mongorestore /opt/backup/mongodump-1

이렇게 하면 백업 localhost:27017mongod 인스턴스 로 복원됩니다.

액세스 제어가 활성화된 restore 배포서버 로 데이터를 system.profile 복원 위해 역할 데이터에 컬렉션 데이터가 포함되어 있지 mongorestore 않고 --oplogReplay 옵션 없이 를 실행 경우 필요한 권한을 제공합니다.

백업 데이터에 system.profile 컬렉션 데이터가 포함되어 있거나 --oplogReplay:로 실행 경우 추가 권한이 필요합니다.

system.profile

백업 데이터에 system.profile 컬렉션 데이터가 포함되어 있고 대상 데이터베이스에 system.profile 컬렉션이 포함되어 있지 않은 경우, mongorestore 는 프로그램이 실제로 system.profile 문서를 복원하지 않더라도 컬렉션 생성을 시도합니다. 사용자는 데이터베이스 컬렉션에 createCollectionconvertToCapped 조치를 수행하려면 system.profile 대해 추가 권한이 필요합니다.

기본 제공 역할 dbAdmindbAdminAnyDatabase는 모두 추가 권한을 제공합니다.

--oplogReplay

--oplogReplay를 사용하여 실행하려면 anyResourceanyAction이 있는 사용자 정의 역할을 생성하십시오.

--oplogReplaymongorestore를 실행해야 하는 사용자에게만 부여하세요.

기본값 으로 mongorestorelocalhost:27017에 연결합니다. 다른 호스팅하다 또는 포트로 복원 하려면 --host--port를 사용합니다.

mongorestore --host=mongodb1.example.net --port=3017

인증하려면 --username--authenticationDatabase를 포함합니다. --password 을(를) 생략하여 mongorestore 비밀번호를 입력하라는 메시지를 표시합니다.

mongorestore \
--host=mongodb1.example.net \
--port=3017 \
--username=user \
--authenticationDatabase=admin \
/opt/backup/mongodump-1

mongodump 이(가) 실행 동안 발생하는 쓰기를 캡처하려면 --oplog을(를) 사용합니다. mongodump 는 실행 중 각 쓰기 (write) 에 대한 oplog 항목이 포함된 oplog.bson 파일 만듭니다. 복원할 때 --oplogReplay 로 해당 작업을 적용합니다.

예시는 mongodump 예시mongorestore 예시를 참조하세요.

mongorestore --oplogReplay oplog.bson 에서 모든 데이터를 복원하지만 임의의 점 으로의 복원은 지원 하지 않습니다. 이를 사용하여 복원된 데이터가 mongodump --oplog 실행 중에 발생한 모든 쓰기를 반영하는지 확인합니다.

참고

--oplog 는 복제본 세트와 함께 사용하도록 설계되었습니다. 샤딩된 클러스터의 경우 샤딩된 환경의 일부인 복제본 세트를 포함하여 데이터베이스 덤프로 자체 관리 샤딩된 클러스터 백업을 참조하세요.

삽입하는 동안 문서 무결성을 검증하려면 --objcheck--drop 사용하고, 복원하기 전에 각 컬렉션 삭제하려면 를 사용하세요.

돌아가기

파일 시스템 스냅샷을 사용한 백업 및 복원

이 페이지의 내용