Docs Menu
Docs Home
/
MongoDB 매뉴얼
/ / /

checkMetadataConsistency

이 페이지의 내용

  • 정의
  • 호환성
  • 구문
  • 명령 필드
  • 출력
  • 행동
  • 배치 결과
  • 인덱스 확인
  • 예제
checkMetadataConsistency

cluster, 데이터베이스 또는 collection의 샤딩 메타데이터에 대한 일련의 일관성 검사를 수행합니다. 이 명령은 발견된 불일치 결과 전체 또는 배치가 포함된 커서를 반환합니다.

mongosh 에서 이 명령은 db.checkMetadataConsistency(), db.collection.checkMetadataConsistency() 또는 sh.checkMetadataConsistency() 헬퍼 메서드를 통해서도 실행할 수 있습니다.

헬퍼 메서드는 mongosh 사용자에게 편리하지만 데이터베이스 명령과 동일한 수준의 정보를 반환하지 못할 수 있습니다. 편의가 필요하지 않거나 추가 리턴 필드가 필요한 경우 데이터베이스 명령을 사용합니다.

업그레이드 및 다운그레이드와 같은 주요 유지 관리 작업 후에 이 명령을 실행하여 카탈로그의 상태를 확인하세요.

기본적으로 이 명령은 샤드 전체에서 일관성을 위해 인덱스를 확인하지 않습니다. 인덱스를 확인하려면 checkIndexes 옵션을 설정합니다.

버전 7.0에 추가.

이 명령은 다음 환경에서 호스팅되는 배포에서 사용할 수 있습니다.

  • MongoDB Atlas: 클라우드에서의 MongoDB 배포를 위한 완전 관리형 서비스

참고

이 명령은 모든 MongoDB Atlas 클러스터에서 지원됩니다. 모든 명령에 대한 자세한 내용은 지원되지 않는 명령을 참조하세요.

  • 전체 cluster의 샤딩 메타데이터 불일치를 확인하려면 admin 데이터베이스에서 명령을 실행합니다.

    db.getSiblingDB("admin").runCommand( {
    checkMetadataConsistency: 1
    } )
  • 데이터베이스에서 샤딩 메타데이터 불일치를 확인하려면 데이터베이스 컨텍스트에서 명령을 실행합니다.

    use cars
    db.runCommand( {
    checkMetadataConsistency: 1
    } )
  • collection에 샤딩 메타데이터 불일치가 있는지 확인하려면 coll 옵션과 함께 명령을 실행합니다.

    use library
    db.runCommand( {
    checkMetadataConsistency: 1,
    coll: "authors",
    } )
필드
유형
설명
checkIndexes
부울

명령이 샤딩 메타데이터의 인덱스도 확인하는지 여부를 설정합니다.

자세한 내용은 인덱스 확인을 참조하세요.

coll
문자열
샤딩 메타데이터 불일치를 확인하도록 collection을 설정합니다.
cursor
문서
리턴 커서를 구성합니다.
cursor.batchSize
integer
각 배치에 포함할 불일치 결과의 최대 개수입니다.

checkMetadataConsistency 명령은 샤딩 메타데이터에서 발견된 각 불일치에 대한 문서가 포함된 커서를 반환합니다.

반환 문서에는 다음과 같은 필드가 있습니다.

필드
유형
설명
cursor
문서
불일치 검사 결과가 있는 커서입니다.
cursor.id
integer

64비트 정수는 커서 ID를 나타냅니다. cursor.id 값을 getMore 명령과 함께 사용하면 다음 불일치 배치를 조회할 수 있습니다.

커서가 ID 0 을(를) 반환하면 더 이상 정보 배치가 없다는 의미입니다.

cursor.ns
문자열
데이터베이스와 collection에 불일치가 있는지 확인했습니다.
cursor.firstBatch
배열
메타데이터 일관성 검사 결과입니다.
ok
부울
명령이 성공했는지 여부를 나타냅니다.

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
}

돌아가기

BalancerStop