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

setDefaultRWConcern

이 페이지의 내용

  • 정의
  • 호환성
  • 구문
  • 명령 필드
  • 행동
  • 예시
setDefaultRWConcern

setDefaultRWConcern 관리 명령은 복제본 세트 또는 샤딩된 클러스터의 글로벌 기본 읽기 또는 쓰기 고려 구성을 설정합니다. setDefaultRWConcernadmin 데이터베이스에 대해 실행되어야 합니다.

  • 복제본 세트의 경우 프라이머리 mongod에서 setDefaultRWConcern 명령을 실행하세요.

  • 샤딩된 클러스터의 경우, mongos에서 setDefaultRWConcern을 실행합니다.

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

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

참고

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

명령은 다음과 같은 구문을 가집니다:

db.adminCommand(
{
setDefaultRWConcern : 1,
defaultReadConcern: { <read concern> },
defaultWriteConcern: { <write concern> },
writeConcern: { <write concern> },
comment: <any>
}
)

이 명령은 다음 필드를 사용합니다.

필드
유형
설명
int

1로 설정합니다.

object

전역 읽기 고려 구성이 포함된 문서입니다. 유효한 읽기 고려 객체를 지정하세요.

  • setDefaultRWConcern은 다음 레벨의 하위 세트를 지원합니다.

  • 현재 구성된 기본 읽기 고려의 설정을 해제하려면 빈 문서 {}을(를) 지정하세요.

  • setDefaultRWConcernlevels 읽기 고려 설정만 지원합니다. 기본 읽기 고려에서는 다른 읽기 고려 설정을 지정할 수 없습니다.

현재의 전역 읽기 고려를 수정되지 않은 상태로 두려면 이 문서를 생략하세요. 생략 시 setDefaultRWConcerndefaultWriteConcern을 지정해야 합니다.

object

전역 기본 쓰기 고려 구성이 포함된 문서입니다.

  • 쓰기 고려 w 설정의 경우, setDefaultRWConcern은(는) w : 0을(를) 제외한 모든 쓰기 고려 값을 지원합니다.

  • 쓰기 고려 wtimeout 설정의 경우, 이 설정을 생략하면 setDefaultRWConcern0으로 기본 설정됩니다. 요청된 쓰기 고려가 충족될 때까지 연산이 차단됩니다. 전역 기본 wtimeout을 지정할 경우에는 쓰기 연산을 허용하여 요청된 쓰기 고려를 해결할 수 있을 만큼 값이 커야 합니다.

  • 현재 구성된 쓰기 고려의 설정을 해제하려면 빈 문서 {}을(를) 지정하세요.

현재의 전역 쓰기 고려를 수정되지 않은 상태로 두려면 이 문서를 생략하세요. 문서를 생략할 경우에는 setDefaultRWConcern(이)가 defaultReadConcern을 지정해야 합니다.

객체

선택 사항입니다. setDefaultRWConcern 명령 자체에서 사용할 쓰기 고려를 지정하는 문서입니다.

이를 생략하면 setDefaultRWConcern은 이전에 설정된 글로벌 기본값 쓰기 고려(구성된 경우)를 사용합니다.

comment
any

선택 사항. 이 명령에 첨부할 사용자 제공 코멘트입니다. 설정되면 이 설명은 다음 위치에서 이 명령의 레코드와 함께 표시됩니다.

댓글은 유효한 모든 BSON types (문자열, 정수, 객체, 배열 등)이 될 수 있습니다.

setDefaultRWConcern은 현재 구성된 전역 기본 읽기/쓰기 고려가 포함된 객체를 반환합니다. 반환된 필드에 대한 전체 설명서는 getDefaultRWConcern을 참조하세요.

참고

featureCompatibilityVersion 4.4 이상이 필요합니다.

복제본 세트 또는 샤딩된 클러스터의 각 mongodfeatureCompatibilityVersion4.4 이상으로 설정되어 있어야 setDefaultRWConcern(을)를 사용할 수 있습니다.

MongoDB 5.0부터는 setDefaultRWConcern 명령을 통해 CWWC(Cluster Wide Write Concern, 클러스터 전체 쓰기 고려)를 설정하고 나면 쓰기 고려 설정을 해제할 수 없습니다.

MongoDB는 읽기 또는 쓰기 고려를 명시적으로 지정하지 않은 연산에만 전역 기본 읽기 또는 쓰기 고려를 적용합니다.

MongoDB가 전역 기본 읽기 또는 쓰기 고려를 연산에 적용하면 실행 클라이언트가 해당 읽기 또는 쓰기 고려를 명시적으로 지정한 것처럼 해당 연산이 작동합니다.

복제본 세트 프라이머리를 대상으로 setDefaultRWConcern을 실행하세요. 프라이머리는 새 전역 기본 설정을 복제본 세트의 나머지 멤버에 복제합니다. 업데이트된 전역 기본 설정을 아직 복제하지 않은 세컨더리에서는 기본값의 '오래된' 로컬 사본을 계속 사용합니다.

w : "majority"writeConcern으로 setDefaultRWConcern 명령을 실행하여 변경 사항이 대부분의 복제본 세트 구성원에 전파된 후에만 명령이 반환되도록 합니다.

클러스터의 mongos에 대해 setDefaultRWConcern(을)를 실행합니다. mongos(은)는 업데이트된 설정을 config 서버 복제본 세트(CSRS)에 계속 유지합니다. 각 mongos (은)는 CSRS를 대상으로 getDefaultRWConcern(을)를 주기적으로 실행해서 전역 설정의 로컬 사본을 새로 고칩니다. mongos(은)는 새로고침 사이의 기간 동안 전역 기본값의 '오래된' 로컬 사본을 사용합니다.

w : "majority"writeConcern으로 setDefaultRWConcern 명령을 실행하여 변경 사항이 대부분의 CSRS 구성원에 전파된 후에만 명령이 반환되도록 합니다.

애플리케이션이 읽기 또는 쓰기 고려 설정을 명시적으로 지정하지 않은 채 mongos을(를) 대상으로 연산을 실행하면 mongos이(가) 이에 해당하는 전역 기본 설정을 적용합니다.

전역 기본 설정은 개별 샤드에 전파되지 않습니다. 샤드에 대해서는 setDefaultRWConcern을 실행할 수 없습니다.

중요

setDefaultRWConcern에는 featureCompatibilityVersion 4.4+이 필요합니다. 배포서버의 featureCompatibilityVersion4.4에서 4.2로 다운그레이드하면 클러스터 전체의 읽기/쓰기 고려 기본값이 손실됩니다. 단, mongos 인스턴스는 최대 30초 동안 기본값을 계속 적용할 수 있습니다.

config 서버에서 쓰기 연산을 실행하는 샤딩 관리 명령(예: enableSharding 명령 또는 addShard 명령)은 전역 기본 쓰기 고려 설정에서 특정한 동작을 실행합니다.

  • 이 명령은 구성된 전역 기본 쓰기 고려에 관계없이 "majority"을(를) 사용합니다.

  • 이 명령은 최소 wtimeout60000(으)로 사용합니다. 이 명령은 60000보다 큰 경우에만 전역 기본 쓰기 고려 wtimeout을(를) 사용합니다.

자체 관리 배포서버에 인증을 적용하는 복제본 세트 또는 샤딩된 클러스터의 경우, setDefaultRWConcern 인증된 사용자에게 setDefaultRWConcern 권한 조치 이 있어야 합니다.

clusterManager 기본 제공 역할은 setDefaultRWConcern을 실행하는 데 필요한 권한을 제공합니다.

아래 연산에서는 전역 쓰기 고려를 다음 값으로 설정합니다.

db.adminCommand({
"setDefaultRWConcern" : 1,
"defaultWriteConcern" : {
"w" : 2
}
})

이 작업은 다음과 유사한 문서를 반환합니다.

{
"defaultWriteConcern" : {
"w" : 2
},
"updateOpTime" : Timestamp(1586290895, 1),
"updateWallClockTime" : ISODate("2020-04-07T20:21:41.849Z"),
"localUpdateWallClockTime" : ISODate("2020-04-07T20:21:41.862Z"),
"ok" : 1,
"$clusterTime" : { ... }
"operationTime" : Timestamp(1586290925, 1)
}

다음 연산에서는 전역 읽기 고려를 "majority"(으)로 설정합니다.

db.adminCommand({
"setDefaultRWConcern" : 1,
"defaultReadConcern" : { "level" : "majority" }
})

이 작업은 다음과 유사한 문서를 반환합니다.

{
"defaultReadConcern" : {
"level" : "majority"
},
"updateOpTime" : Timestamp(1586290895, 1),
"updateWallClockTime" : ISODate("2020-04-07T20:21:41.849Z"),
"localUpdateWallClockTime" : ISODate("2020-04-07T20:21:41.862Z"),
"ok" : 1,
"$clusterTime" : { ... }
"operationTime" : Timestamp(1586290925, 1)
}

아래 연산에서는 전역 기본 읽기/쓰기 고려를 다음 값으로 설정합니다.

db.adminCommand({
"setDefaultRWConcern" : 1,
"defaultWriteConcern" : {
"w" : 2
},
"defaultReadConcern" : { "level" : "majority" }
})

이 작업은 다음과 유사한 문서를 반환합니다.

"defaultWriteConcern" : {
"w" : 2
},
"defaultReadConcern" : {
"level" : "majority"
}

다음을 수행할 수 있습니다.

  • 전역 기본 읽기 고려를 설정 해제하세요.

  • 전역 기본 쓰기 고려는 아직 설정하지 않은 경우에만 설정 해제하세요.

그 예로 전역 기본 읽기 고려가 level: "majority"(으)로 설정되어 있다고 가정해 봅시다. 전역 기본 읽기 고려를 설정 해제하려면 빈 문서 {}을(를) 사용하세요.

db.adminCommand( {
"setDefaultRWConcern" : 1,
"defaultReadConcern" : {}
} )

이 연산은 연산이 성공했다는 것을 나타내는 문서를 다음과 같이 반환합니다.

{
defaultReadConcern: { level: 'local' },
defaultWriteConcern: { w: 2, wtimeout: 0 },
updateOpTime: Timestamp({ t: 1656696934, i: 1 }),
updateWallClockTime: ISODate("2022-07-01T17:35:40.578Z"),
defaultWriteConcernSource: 'global',
defaultReadConcernSource: 'implicit',
localUpdateWallClockTime: ISODate("2022-07-01T17:35:40.578Z"),
ok: 1,
'$clusterTime': {
...
},
operationTime: Timestamp({ t: 1656632593, i: 1 })
}

전역 기본 쓰기 고려는 아직 설정하지 않은 경우에만 설정 해제할 수 있습니다.

전역 기본 쓰기 고려를 설정 해제하려면 빈 문서 {}을(를) 사용하세요.

db.adminCommand( {
"setDefaultRWConcern" : 1,
"defaultWriteConcern" : {}
} )

전역 기본 쓰기 고려가 다음과 같은 상태인 경우:

  • 설정 해제됨, 연산이 성공합니다.

  • 이미 설정되어 있음, 연산이 다음과 같은 오류를 반환합니다.

MongoServerError: The global default write concern cannot be unset
once it is set.

돌아가기

setParameter