소스 클러스터 에서 대상 클러스터 로 동기화된 컬렉션의 MD 해시를 비교하여 동기화 확인할 수 있습니다. 해시 비교는 대상 클러스터 소스로부터 모든 변경 사항을 수신했는지5 dbHash 확인하지만 명령은 클러스터 잠가 완료될 때까지 추가 쓰기를 방지합니다. 이 프로세스 문서 수를 사용한 확인보다 훨씬 느릴 수도 있습니다.
이 작업에 관한 정보
샤딩된 클러스터에서는 해시 비교가 불가능합니다.
샤드 cluster 또는 이전 버전의 MongoDB를 동기화해야 하거나 애플리케이션 워크로드에 locks이 허용되지 않는 경우 다른 확인 방법을 사용하세요.
The dbHash command hashes collections in the current database only, and the collections field accepts bare collection names. If you include the database name in a collection name, such as accounts.us_accounts, dbHash finds no matching collection and returns the hash of an empty input on both clusters. To hash collections in more than one database, switch to each database in turn, run the command once per database, and compare the md5 values for each database separately.
단계
소스 해시 조회
동기화된 컬렉션이 포함된 데이터베이스 로 전환한 다음, 소스 클러스터 에서 dbHash 명령을 실행 . collections 필드 에 동기화 에 포함된 각 컬렉션 데이터베이스 접두사 없이 이름별로 나열합니다. 그런 다음 md5 출력 필드 반환합니다.
use accounts db.runCommand({ dbHash: 1, collections: [ "us_accounts", "eu_accounts", ... ]}).md5
9a1e4b7c2f8d3056ae91cbd4f72608b3
이 명령을 실행하는 동안 대상 해시를 검색합니다.
대상 해시 조회
동기화된 컬렉션이 포함된 데이터베이스 로 전환한 다음, 대상 클러스터 에서 dbHash 명령을 실행 . collections 필드 에 동기화 에 포함된 각 컬렉션 데이터베이스 접두사 없이 이름별로 나열합니다. 그런 다음 md5 출력 필드 반환합니다.
use accounts db.runCommand({ dbHash: 1, collections: [ "us_accounts", "eu_accounts", ... ]}).md5
9a1e4b7c2f8d3056ae91cbd4f72608b3
해시에 주목합니다.