[MONGODB] MongoDB를, 복제 및 오류 : { "$ ERR": "하지 마스터와 slaveOk = 거짓", "코드"13435}
MONGODBMongoDB를, 복제 및 오류 : { "$ ERR": "하지 마스터와 slaveOk = 거짓", "코드"13435}
나는 처음으로 몽고 복제 세트를 시도했다.
내가 EC2에서 우분투를 사용하고 난 세 개의 인스턴스를 부팅. 나는 각각의 인스턴스의 사설 IP 주소를 사용했습니다. 나는 차로 포착하고 아래의 코드입니다.
mongo --host Private IP Address
rs.initiate()
rs.add(“Private IP Address”)
rs.addArb(“Private IP Address”)
이 시점에서 모두 괜찮습니다. 나는 http://ec2-xxx-xxx-xxx-xxx.compute-1.amazonaws.com:28017/_replSet 사이트에 갈 때 나는 차, seconday 및 arbitor있는 것을 알 수있다.
좋아, 이제 테스트.
기본이에서 데이터베이스를 생성에 코드입니다 :
use tt
db.tt.save( { a : 123 } )
보조에, 나는 그 때이 작업을 수행하고 오류가 아래를 얻을 :
db.tt.find()
error: { "$err" : "not master and slaveOk=false", "code" : 13435 }
나는 MongoDB를하고 복제 아주 새로운 오전하지만 난 하나에 뭔가를 할 경우, 그것은 다른 간다 생각했다. 그래서, 내가 기계에 걸쳐 복제해야 할 일을 하나의 기록을 추가하면?
해결법
-
==============================
1.당신은 설정해야 당신이 차에서 읽을 수 있도록하고있는 몽고 쉘 노하우를 수 있도록 모드 "괜찮 슬레이브". 이것은 결국 일관된 사고로 읽어 수행에서 당신과 당신의 응용 프로그램을 보호하는 것입니다. 당신과 쉘에서이 작업을 수행 할 수 있습니다 :
당신은 설정해야 당신이 차에서 읽을 수 있도록하고있는 몽고 쉘 노하우를 수 있도록 모드 "괜찮 슬레이브". 이것은 결국 일관된 사고로 읽어 수행에서 당신과 당신의 응용 프로그램을 보호하는 것입니다. 당신과 쉘에서이 작업을 수행 할 수 있습니다 :
rs.slaveOk()
그 후 당신은 세컨더리에서 일반적으로 조회 할 수 있습니다.
"최종 일관성"에 대한주의 사항 : 정상적인 상황에서, 복제 세트 2 차측은 이하 두 번째 내에서 예비 선거와 같은 모든 동일한 데이터를 가지고있다. 매우 높은 부하에서, 당신이 차에 작성한 것으로 데이터를 보조에 복제하는 데 시간이 걸릴 수 있습니다. 새로 기록 된 데이터가 (기타 네트워크 장애를 금지) 어떤 시점에서 표시됩니다 동안 때문 "복제 지연"로 알려진, 그리고 "결국 일관성"로 알려져 보조 후행하는 것은 읽기에서 읽기, 그것은하지 않을 수 있습니다 즉각 가능.
편집 : 보조 노드에서 쿼리 할 때 당신은 단지 세션 당 한 번, 세트 slaveok해야합니다.
-
==============================
2.rs.slaveOk () 할 때마다 입력하지 않도록하려면 다음을 수행하십시오
rs.slaveOk () 할 때마다 입력하지 않도록하려면 다음을 수행하십시오
) (rs.slaveOk : 한 줄을 포함, replStart.js라는 이름의 파일을 만듭니다
그런 다음 몽고 쉘을 시작 --shell replStart.js을 포함한다. 단일 인스턴스에 로컬로 연결하는 경우 물론,이 모든 입력 저장하지 않습니다.
-
==============================
3.mongodb2.0에서
mongodb2.0에서
당신은 입력해야
rs.slaveOk()
보조 MongoDB의 노드에서
-
==============================
4.루비 드라이버를 사용하여이 문제를 다루는 누구 FOR THIS IS 단지 참고
루비 드라이버를 사용하여이 문제를 다루는 누구 FOR THIS IS 단지 참고
루비 보석을 사용할 때이 같은 문제가 있었다.
이 같은 클라이언트를 만들 때 루비에 slaveOk을 설정하려면, 당신은 단지 인수로 전달 :
mongo_client = MongoClient.new("localhost", 27017, { slave_ok: true })
https://github.com/mongodb/mongo-ruby-driver/wiki/Tutorial#making-a-connection
mongo_client = MongoClient.new # (optional host/port args)
'인수'는 세 번째 선택적 인수는 것을 알 수 있습니다.
-
==============================
5.slaveOk 더 이상 작동하지 않습니다. 한 요구 readPreference https://docs.mongodb.com/v3.0/reference/read-preference/#primaryPreferred 사용
slaveOk 더 이상 작동하지 않습니다. 한 요구 readPreference https://docs.mongodb.com/v3.0/reference/read-preference/#primaryPreferred 사용
EG
const client = new MongoClient(mongoURL + "?readPreference=primaryPreferred", { useUnifiedTopology: true, useNewUrlParser: true });
-
==============================
6.난 그냥 DB 공급자 어색한 상황이 답변을 추가하고있다.
난 그냥 DB 공급자 어색한 상황이 답변을 추가하고있다.
무엇을 우리의 경우에 발생하는 것은 기본 및 보조 DB는 (반대의 차와 그 1 차) 역으로 이동하고 우리는 같은 오류를 얻고있다.
그래서 당신을 도움이 될 수 데이터베이스 상태에 대한 구성 설정에서 확인하시기 바랍니다.
from https://stackoverflow.com/questions/8990158/mongodb-replicates-and-error-err-not-master-and-slaveok-false-code by cc-by-sa and MIT license
'MONGODB' 카테고리의 다른 글
[MONGODB] 집계 프레임 워크에 대한 설명 MongoDB를 (0) | 2019.12.10 |
---|---|
[MONGODB] 왜 MongoDB의에서 인덱스 문제의 방향을합니까? (0) | 2019.12.10 |
[MONGODB] Mongoid와 MongoDB를과의 관계를 통해 어떻게 has_many를 구현하는 방법? (0) | 2019.12.10 |
[MONGODB] MongoDB를 서버 충돌 후 시작되지 않습니다 (0) | 2019.12.10 |
[MONGODB] 생산을위한 빠른 GridFS하고 신뢰할 수있는 충분한가요? (0) | 2019.12.10 |