소스 클러스터 에서 대상 클러스터 로 동기화된 컬렉션의 MD5 해시를 비교하여 동기화 를 확인할 수 있습니다. 해시 비교는 대상 클러스터 가 소스로부터 모든 변경 사항을 수신했는지 확인하지만 dbHash 명령은 클러스터 를 잠가 완료될 때까지 추가 쓰기를 방지합니다. 이 프로세스 는 문서 수를 사용한 확인보다 훨씬 느릴 수도 있습니다.
이 작업에 관한 정보
샤딩된 클러스터에서는 해시 비교가 불가능합니다.
샤드 cluster 또는 이전 버전의 MongoDB를 동기화해야 하거나 애플리케이션 워크로드에 locks이 허용되지 않는 경우 다른 확인 방법을 사용하세요.
dbHash 명령은 현재 데이터베이스의 컬렉션만 해시하며, collections 필드는 단순 컬렉션 이름을 허용합니다. accounts.us_accounts와 같이 컬렉션 이름에 데이터베이스 이름을 포함하면 dbHash은 일치하는 컬렉션을 찾지 못하고 두 클러스터 모두에서 빈 입력의 해시를 반환합니다. 둘 이상의 데이터베이스에서 컬렉션을 해시하려면 각 데이터베이스로 차례로 전환하고 데이터베이스당 한 번씩 명령을 실행한 다음 각 데이터베이스에 대한 md5 값을 별도로 비교하십시오.
단계
소스 해시 조회
동기화된 컬렉션이 포함된 데이터베이스로 전환한 다음 소스 클러스터에서 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
해시에 주목합니다.