Docs Menu
Docs Home
/
MongoDB Database Tools
/

mongodump 예시

이 페이지의 내용

  • 컬렉션에 mongodump 사용
  • 데이터베이스와 함께 mongodump 사용하고 지정된 컬렉션 제외
  • 액세스 제어에 mongodump 사용
  • 아카이브 파일로 출력
  • 출력 압축
  • 데이터베이스 복사 및 복제
  • AWS IAM 자격 증명을 사용하여 MongoDB Atlas 클러스터에 연결하기
  • 특정 데이터베이스로 인증하기
  • 일관적인 백업 파일 생성 및 복원
  • 자세히 알아보기

이 페이지에는 mongodump 의 예가 나와 있습니다.

mongo shell이 아닌, 시스템 명령줄에서 mongodump를 실행합니다.

다음 작업은 test라는 데이터베이스에 records라는 컬렉션만 포함하는 덤프 파일을 생성합니다. 예시에서 데이터베이스는 포트 27017의 로컬 인터페이스에서 실행되고 있습니다.

mongodump --db=test --collection=records

다음 작업은 test 데이터베이스의 모든 컬렉션을 userssalaries를 제외하고 덤프합니다.

mongodump --db=test --excludeCollection=users --excludeCollection=salaries

다음 예시에서 mongodump는 다음과 같이 호스트 mongodb1.example.net의 포트 37017에서 실행되고 사용자 이름 user를 사용하여 인증하는 데이터베이스로부터 /opt/backup/mongodump-2011-10-24에 있는 데이터베이스 덤프를 생성합니다.

mongodump --host=mongodb1.example.net --port=37017 --username=user --authenticationDatabase=admin --out=/opt/backup/mongodump-2011-10-24

--password 을 포함하지 않으면 mongodump 에서 사용자에게 비밀번호를 입력하라는 메시지를 표시합니다.

덤프를 아카이브 파일로 출력하려면 --archive 옵션과 아카이브 파일 이름을 사용하여 mongodump를 실행합니다. 예를 들어 다음 작업은 test 데이터베이스의 덤프를 포함하는 test.20150715.archive 파일을 생성합니다.

mongodump --archive=test.20150715.archive --db=test

출력 덤프 디렉토리의 파일을 압축하려면 새 --gzip 옵션으로 mongodump를 실행합니다. 예를 들어 다음 작업은 압축된 파일들을 기본 dump 디렉토리로 출력합니다.

mongodump --gzip --db=test

아카이브 파일 출력을 mongodump로 압축하려면 --archive 옵션과 함께 --gzip 옵션을 사용하여 압축 파일의 이름을 지정합니다.

mongodump --archive=test.20150715.gz --gzip --db=test

버전 4.2부터 MongoDB는 더 이상 사용되지 않는 copydb 명령과 clone 명령을 제거합니다.

대신 사용자는 mongodumpmongorestore(mongorestore 옵션 --nsFrom--nsTo 사용)를 사용할 수 있습니다.

예를 들어 기본 포트 27017에서 실행 중인 로컬 인스턴스의 test 데이터베이스를 동일한 인스턴스의 examples 데이터베이스로 복사하려면 다음과 같이 할 수 있습니다.

  1. mongodump를 사용하여 test 데이터베이스를 아카이브 mongodump-test-db에 덤프합니다.

    mongodump --archive="mongodump-test-db" --db=test
  2. --nsFrom--nsTo와 함께 mongorestore를 사용하여 아카이브에서 복원 (데이터베이스 이름 변경 포함) 합니다.

    mongorestore --archive="mongodump-test-db" --nsFrom="test.*" --nsTo="examples.*"

URI 또는 호스트, 사용자 이름, 비밀번호 및 인증 데이터베이스를 지정하는 등 필요에 따라 추가 옵션을 포함합니다.

버전 100.1.0의 새로운 기능.

Amazon Web Services IAM 자격 증명 을 통해 인증을 지원하도록 MongoDB Atlas connection string 구성된 클러스터에 연결하려면 mongodump 다음과 같이 에 를 제공합니다.

mongodump 'mongodb+srv://<aws access key id>:<aws secret access key>@cluster0.example.com/testdb?authSource=$external&authMechanism=MONGODB-AWS' <other options>

이러한 방식으로 AWS IAM 자격 증명을 사용하여 Atlas에 연결하면 이 예와 같이 MONGODB-AWS authentication mechanism$external authSource가 사용됩니다.

AWS 세션 토큰을 사용하는 경우에도 다음과 같이 AWS_SESSION_TOKEN authMechanismProperties 값과 함께 제공합니다.

mongodump 'mongodb+srv://<aws access key id>:<aws secret access key>@cluster0.example.com/testdb?authSource=$external&authMechanism=MONGODB-AWS&authMechanismProperties=AWS_SESSION_TOKEN:<aws session token>' <other options>

참고

AWS 액세스 키 ID, 보안 액세스 키 또는 세션 토큰에 다음 문자가 포함되어 있는 경우

: / ? # [ ] @

이러한 문자는 퍼센트 인코딩을 사용해 변환해야 합니다.

또는 다음과 같이 --username, --password--awsSessionToken 옵션을 대신 사용하여 AWS 액세스 키 ID, 시크릿 액세스 키 및 세션 토큰(선택 사항)을 각각 연결 문자열 외부에 제공할 수 있습니다.

mongodump 'mongodb+srv://cluster0.example.com/testdb?authSource=$external&authMechanism=MONGODB-AWS' --username <aws access key id> --password <aws secret access key> --awsSessionToken <aws session token> <other options>

명령줄 매개변수로 제공되는 경우 이전 세 가지 옵션에는 퍼센트 인코딩이 필요하지 않습니다.

표준 AWS IAM 환경 변수를 사용하여 플랫폼에서 이러한 자격 증명을 설정할 수도 있습니다. mongodumpMONGODB-AWS authentication mechanism을 사용할 때 다음 환경 변수를 확인합니다.

  • AWS_ACCESS_KEY_ID

  • AWS_SECRET_ACCESS_KEY

  • AWS_SESSION_TOKEN

설정된 경우 이러한 자격 증명은 연결 문자열이나 명시적 옵션을 통해 지정할 필요가 없습니다.

참고

AWS 환경 변수를 사용하여 이러한 값을 지정하기로 선택한 경우 이러한 자격 증명에 해당하는 명시적 또는 연결 문자열 옵션과 조합하여 사용할 수 없습니다. 액세스 키 ID 비밀 액세스 키(사용 중인 경우 세션 토큰도 함께 필요)에 환경 변수를 사용하거나 또는 명시적 또는 연결 문자열 옵션을 사용하여 각각을 지정합니다.

다음 예제에서는 bash 셸에서 환경 변수를 설정합니다.

export AWS_ACCESS_KEY_ID='<aws access key id>'
export AWS_SECRET_ACCESS_KEY='<aws secret access key>'
export AWS_SESSION_TOKEN='<aws session token>'

환경 변수를 설정하는 구문은 다른 셸에서는 다를 수 있습니다. 자세한 내용은 사용 중인 셸의 문서를 참조하세요.

환경 변수가 설정되어 있는지 확인하려면 다음 명령을 사용합니다:

env | grep AWS

환경 변수를 설정한 후 다음 예제를 실행하여 MongoDB Atlas 클러스터에 연결합니다.

mongodump 'mongodb+srv://cluster0.example.com/testdb?authSource=$external&authMechanism=MONGODB-AWS' <other options>

덤프되는 데이터베이스가 아닌 다른 데이터베이스로 인증하려면 MongoDB URI에 authSource를 지정해야 합니다.

이 예시에서는

  • 사용자 이름 myuser 및 비밀번호 mypassword이 사용되었습니다. 이 사용자는 testdb에 대한 읽기 액세스 권한을 가지고 있습니다.

  • admin 데이터베이스는 사용자를 인증하는 데 사용됩니다.

  • testdb 데이터베이스가 덤프되고 있습니다.

mongodump 'mongodb+srv://myuser:mypassword@cluster0.example.com/?authSource=admin' --db testdb

oplog 항목을 사용하여 일관적인 mongodump 백업 파일을 생성하려면 mongodump --oplog 옵션을 사용하세요. 백업 파일에서 데이터를 복원하려면 mongorestore --oplogReplay 옵션을 사용하세요.

oplog에는 데이터베이스 쓰기 작업 기록이 포함되어 있습니다.

mongodump outputs:

  • 컬렉션 문서, 메타데이터 및 옵션.

  • 인덱스 정의.

  • --oplog가 지정된 경우 mongodump 실행 중에 발생하는 쓰기입니다.

mongodump --oplog mongodump 출력 디렉토리의 최상위 수준에 oplog.bson 이라는 파일을 만듭니다. 이 파일에는 mongodump 실행 중에 발생하는 쓰기 작업이 포함되어 있습니다. mongodump 완료 후에 발생하는 쓰기는 파일에 기록되지 않습니다.

mongodump 을(를) 사용하여 샤딩된 클러스터를 백업하려면 데이터베이스 덤프를 사용하여 자체 관리형 샤드 클러스터 백업을 참조하세요.

oplog.bson 파일에서 oplog 항목을 복원하려면 mongorestore --oplogReplay 사용하세요. mongodump --oplogmongorestore --oplogReplay를 함께 사용하여 데이터베이스를 최신 상태로 유지하고 mongodump 실행 중에 발생한 모든 쓰기 작업을 포함하도록 합니다.

돌아가기

행동