한 대의 MongoDB 인 스 턴 스 가 Oplog 를 여 는 과정 에 대한 상세 한 설명

3011 단어 mongodb실례oplog
배경
데이터 가 축적 되면 서 MongoDB 의 데이터 양 이 점점 커지 고 데이터 분석 팀 은 데이터 베이스 에서 변화 데 이 터 를 추출 하 는 데 어려움 을 겪 고 있다.우 리 는 MongoDB 의 던 전 집합 에 Primary 노드 의 모든 쓰기 동작 이 저 장 된 데이터 구조 Oplog 가 있다 는 것 을 알 고 있 습 니 다.(이곳 의 쓰기 동작 은 조회 이외 의 동작 으로 업데이트,이상 등 을 포함 합 니 다)사실 데이터 추출 은 Oplog 에서 이 조작 을 캡 처 한 다음 에 다시 재생 할 수 있 습 니 다.
oplog 는 local 라 이브 러 리 의 다음 고정 집합 입 니 다.Secondary 는 Primary 의 oplog 라 는 집합 을 보고 복사 합 니 다.모든 노드 에 oplog 가 있 고 이 메 인 노드 에서 복 사 된 정 보 를 기록 하면 모든 구성원 이 동기 화 소스 로 다른 노드 에 줄 수 있다.
Oplog 는 Mongodb Replication 의 유대 라 고 할 수 있 습 니 다.
그러나 실제 생산 환경 에서 우리 의 많은 MongoDB 데이터 베 이 스 는 하나의 인 스 턴 스 입 니 다.그러면 우 리 는 하나의 인 스 턴 스 데이터 베이스 에서 Oplog 를 열 수 있 습 니까?
답 은 긍정 적 이다.
하나의 인 스 턴 스 에 던 전 집합 을 설정 하고 설정 에 성공 하면 자 연 스 럽 게 Oplog 가 생 긴 다 는 원리 다.
배치 과정
사실 배치 과정 은 비교적 간단 하 다.
step 1:설정 파일 에 복사 본 집합 인자(replset)를 추가 합 니 다.
step 2:서 비 스 를 다시 시작 합 니 다.
step 3:local 데이터베이스 나 admin 데이터베이스 에서 복사 본 집합 을 초기 화 하 는 스 크 립 트,rs.initiate()를 실행 합 니 다.
주의 사항
1.설정 파일 에 복사 본 집합 인자 추가(replSet=?),MongoDB 인 스 턴 스 재 부팅,첫 번 째 로그 인,다른 명령 을 실행 할 때(예:show dbs)오 류 를 알려 줍 니 다.오류 정 보 는 다음 과 같 습 니 다.

{
"ok" : 0,
"errmsg" : "not master and slaveOk=false",
"code" : 13435,
"codeName" : "NotMasterNoSlaveOk"
}
이 때 초기 화 명령 을 실행 해 야 합 니 다:

rs.initiate({ _id: "     ", members: [{_id:0,host:"ServerIP:MongoDBPort"}]})

2.초기 화 할 때 서버 정보 와 포트 정 보 를 가리 키 십시오.그렇지 않 으 면 초기 화 할 때 오 류 를 보고 할 수 있 습 니 다.오 류 를 보고 하 는 정 보 는 다음 과 같 습 니 다.
"errmsg" : "No host described in new configuration 1 for replica set replwms maps to this node",

IP 와 포트,던 전 집합 이름 을 지정 합 니 다.예 를 들 어 다음 명령 을 수행 합 니 다.OK.

3.던 전 집합 초기 화 는 admin 에서 실 행 될 수 있 습 니 다.local 데이터베이스 에서 만 실 행 될 수 있 는 것 이 아 닙 니 다.
일부 글 에서 요구 하 는 것 처럼:You just need to issuers.initiate()on the local database:
4.시작 이 끝나 면 던 전 은 유일한 노드 를 모 으 고 짧 은 시간 에 SECONDARY 또는 OTHER 로 표 시 될 수 있 습 니 다.일반적으로 조금 만 기다 리 면 자 연 스 럽 게 primary 로 회복 되 며 인공 적 으로 관여 할 필요 가 없다.

혹시

데이터베이스 의 데이터 양 이 많 지 않 고 장시간 동안 이러한 과도 상태(SECONDARY 또는 OTHER)를 시작 하면 인 스 턴 스 로 그 를 보고 진전 이 없 음 을 표시 합 니 다.이 때 서 비 스 를 다시 시작 하 는 것 을 고려 할 수 있 습 니 다.
다음 사례 는 저희 가 실제 적 으로 만난 장면 입 니 다.저 희 는 서비스 재 개 를 통 해 이 문 제 를 해결 하고 역할 은 other 재 개 에서 Primary 로 전환 합 니 다.

총결산
이상 은 이 글 의 전체 내용 입 니 다.본 논문 의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 참고 학습 가치 가 있 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 댓 글 을 남 겨 주 셔 서 저희 에 대한 지지 에 감 사 드 립 니 다.

좋은 웹페이지 즐겨찾기