정의
setDefaultRWConcern관리 명령은 복제본 세트 또는 샤딩된 클러스터 에 대한 전역 기본값 읽기 또는
setDefaultRWConcernsetDefaultRWConcernadmin쓰기 고려 (write concern) 구성을 설정합니다. 은(는) 데이터베이스 에 대해 실행 해야 합니다.복제본 세트의 경우
mongod프라이머리setDefaultRWConcern에서명령을 실행합니다.샤딩된 클러스터의 경우
setDefaultRWConcern에서mongos를 실행합니다.
호환성
이 명령은 다음 환경에서 호스팅되는 배포에서 사용할 수 있습니다.
MongoDB Enterprise: MongoDB의 구독 기반 자체 관리 버전
MongoDB Community: MongoDB의 소스 사용 가능 무료 자체 관리 버전
구문
명령은 다음과 같은 구문을 가집니다:
db.adminCommand( { setDefaultRWConcern : 1, defaultReadConcern: { <read concern> }, defaultWriteConcern: { <write concern> }, writeConcern: { <write concern> }, comment: <any> } )
명령 필드
이 명령은 다음 필드를 사용합니다.
필드 | 유형 | 설명 |
|---|---|---|
|
| |
| 전역 읽기 고려 구성이 포함된 문서입니다. 유효한 읽기 고려 객체를 지정하세요.
현재 전역 읽기 고려 (read concern) 수정되지 않은 상태로 두려면 이 문서 생략하세요. 생략된 경우 | |
| 전역 기본 쓰기 고려 구성이 포함된 문서입니다.
현재 전역 쓰기 고려 (write concern) 수정되지 않은 상태로 두려면 이 문서 생략하세요. 생략된 경우 | |
객체 | 선택 사항. 명령 생략하면 | |
| any | 선택 사항. 이 명령에 첨부할 사용자 제공 코멘트입니다. 설정되면 이 설명은 다음 위치에서 이 명령의 레코드와 함께 표시됩니다.
댓글은 유효한 모든 BSON types (문자열, 정수, 객체, 배열 등)이 될 수 있습니다. |
setDefaultRWConcern은(는) 현재 구성된 전역 기본값 읽기 및 쓰기 고려 (write concern) 포함하는 객체 반환합니다. 반환된 필드에 대한 자세한 내용은 를 getDefaultRWConcern 참조하세요.
행동
참고
featureCompatibilityVersion 4.4 이상이 필요합니다.
MongoDB 부터 5.0 명령을 통해 CWWC(Cluster Wide Write Concern)가 설정하다 되면 setDefaultRWConcern 쓰기 고려 (write concern) 설정을 해제할 수 없습니다.
MongoDB는 읽기 또는 쓰기 고려를 명시적으로 지정하지 않은 연산에만 전역 기본 읽기 또는 쓰기 고려를 적용합니다.
MongoDB가 전역 기본 읽기 또는 쓰기 고려를 연산에 적용하면 실행 클라이언트가 해당 읽기 또는 쓰기 고려를 명시적으로 지정한 것처럼 해당 연산이 작동합니다.
복제본 세트
복제본 세트 프라이머리 에 대해 setDefaultRWConcern 를 실행합니다. 프라이머리 새로운 전역 기본값 설정을 복제본 세트 의 나머지 멤버에 복제합니다. 업데이트된 전역 기본값 설정을 아직 복제하지 않은 세컨더리는 기본값의 '오래된' 로컬 복사본을 계속 사용합니다.
변경 setDefaultRWConcern 사항이 대부분의 복제본 세트 멤버에 전파된 후에만 명령이 반환되도록 하려면 writeConcern이 w : "majority" 인 명령을 실행합니다.
샤딩된 클러스터
클러스터 의mongos에 대해setDefaultRWConcern를 실행합니다. mongos는 업데이트된 설정을 config 서버 복제본 세트 (CSRS)에 유지합니다. 각mongos는 CSRS에 대해getDefaultRWConcern를 주기적으로 발행하여 전역 설정의 로컬 사본을 새로 고칩니다. mongos는 새로 고침 사이의 기간 동안 전역 기본값의 '오래된' 로컬 복사본을 사용합니다.
경고
복제본 세트를 샤딩된 클러스터로 변환하는 경우 변환이 완료될 때까지 setDefaultRWConcern 명령을 실행할 수 없습니다.
변경 setDefaultRWConcern 사항이 대다수의 CSRS 멤버에게 전파된 후에만 명령이 반환되도록 하려면 w : "majority" writeConcern이 인 명령을 실행합니다.
애플리케이션이 읽기 또는 쓰기 고려 설정을 명시적으로 지정하지 않은 채 mongos을(를) 대상으로 연산을 실행하면 mongos이(가) 이에 해당하는 전역 기본 설정을 적용합니다.
전역 기본값 설정은 개별 샤드에 전파되지 않습니다. 샤드 에 대해 을(를) 실행 수 없습니다.setDefaultRWConcern
중요
setDefaultRWConcern 에는 featureCompatibilityVersion 4.4+ 이(가) 필요합니다. 배포의 featureCompatibilityVersion을 에서 4.4 로 다운그레이드하면 클러스터 4.2 전체 읽기 및 쓰기 고려 (write concern) 기본값이 모두 손실되지만 인스턴스는 mongos 최대 30 초 동안 기본값을 계속 적용할 수 있습니다.
샤딩 관리 명령으로 재정의되는 쓰기 고려 설정
config 서버에서 쓰기 연산을 실행하는 샤딩 관리 명령(예: enableSharding 명령 또는 addShard 명령)은 전역 기본 쓰기 고려 설정에서 특정한 동작을 실행합니다.
이 명령은 구성된 전역 기본 쓰기 고려에 관계없이
"majority"을(를) 사용합니다.이 명령은 최소 wtimeout을
60000(으)로 사용합니다. 이 명령은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) }
전역 기본 읽기/쓰기 고려 설정하기
아래 연산에서는 전역 기본 읽기/쓰기 고려를 다음 값으로 설정합니다.
w: 2쓰기 고려level: "majority"읽기 고려
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.