checkMetadataConsistency
정의
checkMetadataConsistency
클러스터, 데이터베이스 또는 컬렉션 의 샤딩 메타데이터 에 대한 일련의 일관성 검사를 수행합니다. 이 명령은 발견된 배치 결과의 전부 또는 일부가 포함된 커서 를 반환합니다.
팁
에서 이 명령은 ,
db.collection.checkMetadataConsistency()
또는mongosh
db.checkMetadataConsistency()
sh.checkMetadataConsistency()
헬퍼 메서드를 통해서도 실행 수 있습니다.헬퍼 메서드는
mongosh
사용자에게 편리하지만 데이터베이스 명령과 동일한 수준의 정보를 반환하지 못할 수 있습니다. 편의가 필요하지 않거나 추가 리턴 필드가 필요한 경우 데이터베이스 명령을 사용합니다.업그레이드 및 다운그레이드와 같은 주요 유지 관리 작업 후에 이 명령을 실행하여 카탈로그의 상태를 확인하세요.
기본적으로 이 명령은 샤드 전체에서 일관성을 위해 인덱스를 확인하지 않습니다. 인덱스를 확인하려면
checkIndexes
옵션을 설정합니다.버전 7.0에 추가.
호환성
이 명령은 다음 환경에서 호스팅되는 배포에서 사용할 수 있습니다.
MongoDB Atlas: 클라우드에서의 MongoDB 배포를 위한 완전 관리형 서비스
참고
이 명령은 모든 MongoDB Atlas 클러스터에서 지원됩니다. 모든 명령에 대한 Atlas 지원에 관해 자세히 알아보려면 지원되지 않는 명령을 참조하십시오.
MongoDB Enterprise: MongoDB의 구독 기반 자체 관리 버전
MongoDB Community: MongoDB의 소스 사용 가능 무료 자체 관리 버전
구문
전체 cluster의 샤딩 메타데이터 불일치를 확인하려면
admin
데이터베이스에서 명령을 실행합니다.db.adminCommand( { checkMetadataConsistency: 1 } ) 데이터베이스에서 샤딩 메타데이터 불일치를 확인하려면 데이터베이스 컨텍스트에서 명령을 실행합니다.
use cars db.runCommand( { checkMetadataConsistency: 1 } ) 컬렉션 에서 샤딩 메타데이터 불일치가 있는지 확인하려면 컬렉션 이름을 사용하여 명령을 실행 합니다.
use library db.runCommand( { checkMetadataConsistency: "authors", } )
명령 필드
필드 | 유형 | 설명 |
---|---|---|
| 정수 또는 문자열 | 확인할 컬렉션 을 지정합니다.
|
| 부울 | 명령이 샤딩 메타데이터의 인덱스도 확인하는지 여부를 설정합니다. 자세한 내용은 인덱스 확인을 참조하세요. |
| 문서 | 리턴 커서를 구성합니다. |
| integer | 각 배치에 포함할 불일치 결과의 최대 개수입니다. |
출력
checkMetadataConsistency
명령은 샤딩 메타데이터 에서 발견된 각 불일치에 대한 문서 가 포함된 커서 를 반환합니다. 학습 내용은 불일치 유형을 참조하세요.
반환 문서에는 다음과 같은 필드가 있습니다.
필드 | 유형 | 설명 |
---|---|---|
| 문서 | 불일치 검사 결과가 있는 커서입니다. |
| integer | 64비트 정수는 커서 ID를 나타냅니다. 커서가 ID |
| 문자열 | 데이터베이스와 collection에 불일치가 있는지 확인했습니다. |
| 배열 | 메타데이터 일관성 검사 결과입니다. |
| 부울 | 명령이 성공했는지 여부를 나타냅니다. |
행동
배치 결과
checkMetadataConsistency
명령은 결과를 배치로 반환합니다. 배치 크기를 사용자 지정하려면 batchSize
옵션을 사용합니다.
var cur = db.runCommand( { checkMetadataConsistency: 1, cursor: { batchSize: 10 } } )
cursor.id
필드가 0보다 크면 getMore
명령과 함께 사용하여 다음 결과 배치를 검색할 수 있습니다.
인덱스 확인
checkMetadataConsistency
명령은 기본적으로 인덱스를 확인하지 않습니다. 메타데이터 일관성 및 인덱스를 확인하려면 checkIndexes
옵션을 사용합니다.
db.runCommand( { checkMetadataConsistency: 1, checkIndexes: true } )
예시
runCommand()
를 사용하여 checkMetadataConsistency
명령을 실행합니다:
db.runCommand( { checkMetadataConsistency: 1 } )
출력 예시:
{ cursor: { id: Long("0"), ns: "test.$cmd.aggregate", firstBatch: [ { type: "MisplacedCollection", description: "Unsharded collection found on shard different from database primary shard", details: { namespace: "test.authors", shard: "shard02", localUUID: new UUID("1ad56770-61e2-48e9-83c6-8ecefe73cfc4") } } ], }, ok: 1 }