2012-01-30 4 views
0

나는 얼마 동안 슬레이브 서버를 멈추는 방법을 찾고있다. 하지만 응용 프로그램에서 서버를 읽을 수 있도록하려면 마스터에서 데이터를 복제하지 않아야합니다.mongodb에서 슬레이브 서버를 중지하는 방법

어쨌든 여기에 있습니까? ...? 퇴학은 내가 선호하는 것이 아닙니다.

감사합니다, 당신은 slave delay 옵션을 찾고있는 것처럼

답변

0

는 소리 우다. 동기화를 모두 중지하려면 문제가 더 많습니다. 쓰기가 마스터 또는 비슷한 (롤백 아마도)에 완료하는 동안 당신이 읽기를 원한다고 생각하지만 그것은 결국 일정한 시간 동안 따라 잡기를 원합니다.

+0

No Adam, 내가 기대하는 것은 ... 일정 기간 동안 마스터에서 슬레이브로의 데이터 복제를 중단하고 싶습니다. STOP SLAVE (우리가 MYSQL에 가지고있는)와 같다. 일정 기간이 지난 후에 SATART SLAVE 같은 것을 사용하여 노예 활동을 철회하고 싶습니다. – Uday

+0

hmmm 복제본 집합이라면 --replset 플래그없이 다른 포트에서 mongod 인스턴스를 다시 시작할 수 있습니다 ( http://www.snailinaturtleneck.com/blog/2011/02)./22/resizing-your-oplog/ 설명 된 mthod 대신 oplog를 조작하여 슬레이브를 "부실"하게 만들 수 있으며 나중에 슬레이브를 다시 동기화하여 따라 잡을 수 있습니다. 내가 아는 한, 명령이나 지원 방법이 없습니다. 나는 생각하고 다른 방법을 찾아 낼 수 있는지 보도록하겠습니다 .... –

1

mongodb의 쿼리 프롬프트에서 fsycnLock()을 사용하여 쓰기 작업을 중지 할 수 있습니다.

db.fsyncLock()

그것은 fsyncUnlock를 사용하여 우리가 잠금을 해제 할 수 있습니다

{ 
     "info" : "now locked against writes, use db.fsyncUnlock() to unlock", 
     "seeAlso" : "http://www.mongodb.org/display/DOCS/fsync+Command", 
     "ok" : 1 
    } 

같은 몇 가지 일을() 반환합니다.

이것은 일반적인 RDBMS의 STOP SLAVE와 유사합니다.

관련 문제