Docs Menu
Docs Home
/ /

데이터베이스 덤프로 자체 관리형 클러스터 복원

mongorestoremongodump 바이너리 내보내기를 읽고 데이터를 MongoDB 배포서버에 복원하는 도구입니다. mongorestore 를 사용하여 mongodump 백업에서 샤딩된 클러스터를 복원합니다.

소스 클러스터의 mongodump 백업본이 있는지 확인하세요. 만들려면 데이터베이스 덤프를 사용하여 자체 관리형 샤드 클러스터 백업을 참조하세요. 파일 시스템 스냅샷이 있는 경우 스냅샷에서 자체 관리형 샤드 클러스터 복원을 참조하세요.

1

청크 마이그레이션으로 인해 복원이 중단되는 것을 방지하려면 mongos 에 연결하고 밸런서를 중지합니다.

sh.stopBalancer()

밸런서가 중지되었는지 확인하려면 다음을 실행합니다.

use config
while( sh.isBalancerRunning().mode != "off" ) {
print( "Waiting for Balancer to stop..." );
sleep( 1000 );
}
2

소스 클러스터의 각 샤딩된 컬렉션에 대해 데이터를 복원하기 전에 대상 클러스터에 컬렉션을 만들고 동일한 샤드 키를 사용하여 샤딩합니다.

각 컬렉션의 샤드 키를 찾으려면 라이브 소스 클러스터에 쿼리합니다.

use config
db.collections.find()

또는 bsondump 를 사용하여 덤프 디렉토리에서 config/collections.bson 파일을 검사할 수 있습니다.

bsondump /path/to/dump/config/collections.bson
{
"_id": "<database>.<collection>",
...
"key": { "<shardKeyField>": "<key>" },
...
}

참고

유효한 샤드 키 값은 1 또는 "hashed"입니다.

각 샤딩된 컬렉션에 대해 동일한 샤드 키를 사용하여 대상 클러스터에서 컬렉션을 샤딩합니다.

sh.shardCollection(
"<database-name>.<collection-name>",
{ <shardKeyField>: <key> }
)
3

mongorestore 를 사용하여 mongos 에 연결하고 클러스터를 복원합니다. config 데이터베이스를 제외하여 대상 클러스터의 기존 구성을 유지합니다.

mongorestore \
--host <host> \
--port 27017 \
--username <username> \
--password "<password>" \
--authenticationDatabase admin \
--nsExclude='config.*' \
/path/to/backup

중요

--drop 옵션은 복원하기 전에 컬렉션을 제거합니다. 컬렉션을 사전 샤딩한 후 --drop 을 사용하는 경우 mongorestore 는 샤딩 구성을 제거합니다.

4

복원이 완료되면 밸런서를 다시 시작합니다.

sh.startBalancer()

밸런서가 실행 중인지 확인하려면 다음과 같이 합니다.

sh.isBalancerRunning().mode
full
5

mongos 에 연결하고 sh.status() 를 실행하여 전체 클러스터 상태를 확인합니다.

sh.status()

모든 샤드에 액세스할 수 있고 통신할 수 있는지 확인하려면 임시 컬렉션에 테스트 문서를 삽입합니다.

db.testRestore.insertOne({ test: 1 })

그 다음 각 샤드 프라이머리에 연결하여 db.collection.find() 를 실행하여 문서가 있는지 확인합니다.

db.testRestore.find()

돌아가기

파일 시스템 스냅샷에서 샤딩된 클러스터 복원

이 페이지의 내용