rs.stepDown()
설명
rs.stepDown(stepDownSecs, secondaryCatchUpPeriodSecs)
복제본 세트의 프라이머리가 세컨더리가 되도록 지시합니다. 프라이머리가 강등된 후에는 자격을 갖춘 세컨더리가 프라이머리 투표를 치르게 됩니다.
이 메서드는 프라이머리를 즉시 강등시키지 않습니다. 프라이머리가 있는 최신 상태의
electable
세컨더리가 없는 경우 프라이머리는 세컨더리가 이를 따라잡을 때까지 최대secondaryCatchUpPeriodSecs
(기본값 10초)까지 대기합니다. 선택 가능한 세컨더리를 사용할 수 있게 되면 이 메서드는 프라이머리를 강등합니다.일단 중단되고 나면 원래의 프라이머리가 세컨더리로 바뀌며,
stepDownSecs
(으)로 지정된 기간 중 남은 시간 동안 다시 프라이머리가 될 수 있는 자격을 잃습니다.메서드 실행에 대한 자세한 설명은 동작을 참조하세요.
참고
이 메서드는 프라이머리에 대해서만 유효하며 프라이머리가 아닌 노드에서 실행되면 오류가 발생합니다.
중요
Mongo쉬 방법
이 페이지에서는
mongosh
메서드를 설명합니다. 이는 데이터베이스 명령이나 Node.js와 같은 언어별 드라이버에 대한 설명서가 아닙니다 .데이터베이스 명령에 대해서는
replSetStepDown
명령을 참조하십시오.MongoDB API 드라이버의 경우 언어별 MongoDB 드라이버 설명서를 참조하세요.
레거시
mongo
셸 문서는 해당 MongoDB 서버 릴리스 문서를 참조하세요.rs.stepDown()
메서드에는 다음과 같은 매개 변수가 있습니다.매개변수유형설명stepDownSecs
숫자프라이머리를 강등시키는 데 걸리는 시간(초)으로, 이 시간 동안에는 강등된 멤버가 프라이머리가 될 수 없습니다. 숫자가 아닌 값을 지정하면 이 명령이
60
초를 사용합니다.강등 기간은
mongod
이(가) 명령을 받은 시점부터 시작됩니다. 강등 기간은secondaryCatchUpPeriodSecs
보다 커야 합니다.secondaryCatchUpPeriodSecs
숫자선택 사항입니다.
mongod
가 선택 가능한 세컨더리가 프라이머리를 따라잡을 때까지 기다리는 시간(초)입니다.지정된 경우,
secondaryCatchUpPeriodSecs
가 대기 시간 기본값인10
초를 덮어씁니다.
행동
동시 연산
rs.stepDown()
메서드는 인덱스 빌드, 쓰기 작업 또는 맵 리듀스 작업과 같이 프라이머리가 단계적으로 중단되는 것을 차단하는 장기 실행 사용자 작업을 종료하려고 시도합니다.
적격 세컨더리의 가용성
그런 다음 메서드는 세컨더리가 프라이머리와 최신 상태가 될 때까지 최대 secondaryCatchUpPeriodSeconds
초(기본값 10초)까지 기다리는 따라잡기 기간을 시작합니다. 롤백을 방지하기 위해 따라잡기 기간 동안 세컨더리가 프라이머리를 최신 상태로 유지하는 경우에만 프라이머리가 단계적으로 강등됩니다.
대기 기간이 끝날 때까지 이 기준에 부합하는 선출 가능한 세컨더리가 없는 경우, 프라이머리가 강등되지 않으며 메서드 오류가 발생합니다.
프라이머리가 성공적으로 강등되면 해당 노드는 메서드를 받은 시점부터 시작된 stepDownSecs
기간의 나머지 기간 동안 프라이머리가 될 수 없습니다.
클라이언트 연결
rs.stepDown()
메서드는 모든 클라이언트 연결을 닫지 않습니다.
강등 중 쓰기
참고
rs.stepDown()
메서드가 수신된 시점부터 새 프라이머리가 선출될 때까지, 또는 선출 가능한 세컨더리가 없는 경우 원래 프라이머리가 정상 작동을 재개할 때까지 프라이머리에 대한 모든 쓰기가 실패합니다.
rs.stepDown()
이(가) 실행될 때 진행 중이던 쓰기가 종료됩니다. 진행 중인 트랜잭션 도 TransientTransactionError
로 인해 실패하며 전체를 다시 시도할 수 있습니다.
쓰기가 실패하는 최대 기간은 다음과 같습니다.
secondaryCatchUpPeriodSecs
(기본 10초) + electionTimeoutMillis
(기본 10초)
투표 핸드오프
force
필드를 true
로 설정하지 않고 rs.stepDown()
또는 replSetStepDown
를 사용하여 프라이머리를 강등하는 경우, 강등된 프라이머리는 즉시 투표를 호출할 수 있는 적격 세컨더리를 지명합니다.