Docs Menu
Docs Home
/ /

데이터베이스 덤프에서 자체 관리형 샤드 클러스터 복원

는 바이너리 내보내기를 읽고 데이터를mongorestore MongoDB deployment 로 복원하는 도구입니다. 를 사용하여 백업 mongodump 에서 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()

돌아가기

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

이 페이지의 내용