AI 에이전트의 경우: 문서 인덱스는 https://www.mongodb.com/ko-kr/docs/llms.txt에서 사용할 수 있으며, 모든 페이지의 마크다운 버전은 어떤 URL 경로에 .md를 추가하여 사용할 수 있습니다.
Docs Menu

MongoDB 도구를 사용한 백업 및 복원

이 튜토리얼에서는 mongodump 및 mongorestore를 사용하여 백업을 생성하고 데이터를 복구하는 방법을 다룹니다.

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

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

참고

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

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

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

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

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

팁

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

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

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

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

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

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

인수를 지정하지 않으면 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 에서 생성된 바이너리 백업 복원합니다. 기본값 으로 mongorestore 는 dump/ 디렉토리 에서 데이터베이스 백업 찾고 전체 백업 또는 하위 집합을 복원 할 수 있습니다.

참고

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

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

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

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

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

mongorestore /opt/backup/mongodump-1

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

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

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

system.profile

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

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

--oplogReplay

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

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

기본값 으로 mongorestore 는 localhost: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 사용하고, 복원하기 전에 각 컬렉션 삭제하려면 를 사용하세요.