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

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

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

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

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

참고

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

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

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

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

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

팁

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

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

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

아카이브 파일에 대한 자세한 내용은 옵션을 --archive 참조하세요.

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

유틸리티는 실행 에 연결하여 데이터를 mongod 백업합니다. 전체 서버, 데이터베이스 또는 컬렉션 백업 하거나 mongodump 쿼리 사용 하여 컬렉션 의 일부를 백업할 수 있습니다 . 는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/). 여러 번 실행 전에 출력 폴더를 백업하거나 이름을 변경하세요.

액세스 mongodump 제어가 활성화된 MongoDB deployment 대해 를 실행 하려면 백업할 각 데이터베이스 에 대해 backup 조치 수행할 find 수 있는 권한이 있어야 합니다. 내장 역할 모든 데이터베이스의 백업 수행하는 데 필요한 권한을 제공합니다.

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 모든 oplog 항목을 복사합니다. 이를 와 함께 사용하여mongodump mongorestore --oplogReplay 가 완료된 정확한 순간을 반영하는 백업 복원 mongodump .

mongorestore 유틸리티는 실행 에 직접 mongodump mongod 연결하여 에서 생성된 바이너리 백업 복원합니다. 기본값 으로 는 디렉토리 에서 데이터베이스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 system.profile 컬렉션 에 convertToCapped 대해 및 조치를 수행하려면 추가 권한이 필요합니다.

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

--oplogReplay

와 anyResource 함께 실행 하려면 --oplogReplay 에 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 는 복제본 세트와 함께 사용하도록 설계되었습니다. 샤딩된 클러스터의 경우 샤딩된 환경의 일부인 복제본 세트를 포함하여 데이터베이스 덤프로 자체 관리 샤딩된 클러스터 백업을 참조하세요.

--drop를 사용하여 복원하기 전에 각 컬렉션 삭제합니다.