Docs Menu
Docs Home
/
MongoDB Atlas
/

S3에서 아카이브 가져오기

이 페이지의 내용

  • 전제 조건
  • 절차

참고

이 기능 은 M0 무료 클러스터, M2M5 클러스터에서는 사용할 수 없습니다. 사용할 수 없는 기능에 학습 보려면 Atlas M0 (무료 클러스터), M2 및 M5 제한을 참조하세요.

및 를mongoimport 사용하여 S3버킷에 mongorestore 보관된 데이터를 복원할 수 있습니다. 이 페이지에서는 Amazon Web Services CLI 및 MongoDB database 도구를 사용하여 보관된 데이터를 가져오고 인덱스를 다시 작성하는 샘플 절차를 설명합니다.

시작하기 전에 반드시 해야 할 것은 다음과 같습니다.

1
aws s3 cp s3://<bucketName>/<prefix> <downloadFolder> --recursive
gunzip -r <downloadFolder>

where:

<bucketName>
AWS S3 버킷의 이름.
<prefix>

버킷에 보관된 데이터의 경로. 경로의 형식은 다음과 같습니다.

/exported_snapshots/<orgId>/<projectId>/<clusterName>/<initiationDateOfSnapshot>/<timestamp>/
<downloadFolder>
보관된 데이터를 복사하려는 로컬 폴더의 경로.

예를 들어 다음과 유사한 명령을 실행합니다.

예시

aws s3 cp
s3://export-test-bucket/exported_snapshots/1ab2cdef3a5e5a6c3bd12de4/12ab3456c7d89d786feba4e7/myCluster/2021-04-24T0013/1619224539
mybucket --recursive
gunzip -r mybucket
2
#!/bin/bash
regex='/(.+)/(.+)/.+'
dir=${1%/}
connstr=$2
# iterate through the subdirectories of the downloaded and
# extracted snapshot export and restore the docs with mongoimport
find $dir -type f -not -path '*/\.*' -not -path '*metadata\.json' | while read line ; do
[[ $line =~ $regex ]]
db_name=${BASH_REMATCH[1]}
col_name=${BASH_REMATCH[2]}
mongoimport --uri "$connstr" --mode=upsert -d $db_name -c $col_name --file $line --type json
done
# create the required directory structure and copy/rename files
# as needed for mongorestore to rebuild indexes on the collections
# from exported snapshot metadata files and feed them to mongorestore
find $dir -type f -name '*metadata\.json' | while read line ; do
[[ $line =~ $regex ]]
db_name=${BASH_REMATCH[1]}
col_name=${BASH_REMATCH[2]}
mkdir -p ${dir}/metadata/${db_name}/
cp $line ${dir}/metadata/${db_name}/${col_name}.metadata.json
done
mongorestore "$connstr" ${dir}/metadata/
# remove the metadata directory because we do not need it anymore and this returns
# the snapshot directory in an identical state as it was prior to the import
rm -rf ${dir}/metadata/

여기:

  • --mode=upsert mongoimport 가 아카이브에서 중복 문서를 처리할 수 있도록 합니다.

  • --uri Atlas 클러스터에 대한 연결 문자열을 지정합니다.

3
sh massimport.sh <downloadFolder> "mongodb+srv://<connectionString>"

where:

<downloadFolder>
보관된 데이터를 복사한 로컬 폴더의 경로입니다.
<connectionString>
Atlas 클러스터의 연결 문자열.

예를 들어 다음과 유사한 명령을 실행합니다.

예시

sh massimport.sh mybucket "mongodb+srv://<myConnString>"

돌아가기

Cloud Manager 스냅샷에서 복원

이 페이지의 내용