MongoDB 복제본 세트를 독립 실행형 서버로 변환하는 방법
4개의 복제 세트가 있으며 구성은 다음과 같습니다.
{
"_id": "rs_0",
"version": 5,
"members" : [
{"_id": 1, "host": "127.0.0.1:27001"},
{"_id": 2, "host": "127.0.0.1:27002"},
{"_id": 3, "host": "127.0.0.1:27003"},
{"_id": 4, "host": "127.0.0.1:27004"}
]
}
다음을 사용하여 모든 세트에 연결할 수 있습니다.mongo --port <port>
독립 실행형을 복제본 집합으로 변환에 대한 정보를 가져오는 문서가 있지만, 복제본 집합에서 독립 실행형으로 다시 변환하는 방법을 알려줄 수 있는 사람이 있습니까?
복제본 집합에서 모든 보조 호스트를 제거하고(rs.remove('host:port'), replSet 매개 변수 없이 mongo deamon을 다시 시작합니다(/etc/mongo.conf 편집). 그러면 보조 호스트가 독립 실행형 모드로 다시 시작됩니다.
기본 호스트는 rs.remove를 사용하여 복제본 세트에서 제거할 수 없으므로 까다로운 호스트입니다.복제본 집합에 기본 노드만 있으면 mongo 셸을 종료하고 mongo를 중지해야 합니다.그런 다음 /etc/mongo.conf를 편집하고 replSet 매개 변수를 제거하고 mongo를 다시 시작합니다.일단 mongo를 시작하면 이미 독립 실행형 모드에 있지만 mongo 셸은 다음과 같은 메시지를 표시합니다.
2015-07-31T 12:02:51.112+0100 [initandlisten] ** WARNING: mongod가 --replSet 없이 시작되었지만 1개의 문서가 로컬에 있습니다.system.syset
경고를 제거하려면 두 가지 절차를 수행할 수 있습니다. 1) 로컬 데이터베이스를 삭제하고 mongo를 다시 시작합니다.
use local
db.dropDatabase();
/etc/init.d/mongod restart
아니면 그렇게 급진적이 되고 싶지 않다면, 다음과 같이 할 수 있습니다.
use local
db.system.replset.find()
그러면 다음과 같은 메시지가 표시됩니다.
{ "_id" : "replicaSetName", "version" : 1, "members" : [ { "_id" : 0, "host" : "hostprimary:mongoport" } ] }
그런 다음 다음을 사용하여 삭제합니다.
db.system.replset.remove({ "_id" : "replicaSetName", "version" : 1, "members" : [ { "_id" : 0, "host" : "hostprimary:mongoport" } ] })
아마 다음과 같은 메시지가 표시될 것입니다.
WriteResult({ "nRemoved" : 1 })
이제 몽고를 다시 시작하면 경고가 사라집니다. 그러면 몽고는 경고 없이 독립 실행형 모드로 전환됩니다.
복제본 집합에서 호스트를 제거하기만 하면 됩니다(rs.remove('host:port')
), 를 사용하지 않고 다시 시작합니다.replSet
매개 변수가 다시 독립 실행형이 됩니다.
Ubuntu 시스템에서
- mongo 서버 중지
- /etc/mongod.conf 열기
- 복제 및 replSetName 행에 주석 달기
#replication: #replSetName: rs0
- mongo 서버를 시작하고 mongo 셸로 이동합니다.
- 로컬 데이터베이스 삭제
use local
db.dropDatabase()
- mongo 다시 시작
MongoDB 설명서는 복제본 세트 구성원에 대한 유지관리를 수행하기 위해 다음 사항을 제안합니다. 이 경우 복제본 세트 구성원은 추가 작업을 위해 독립 실행형 모드로 전환됩니다.거의 수정하지 않고 독립형으로 만들 수 있습니다.
- 해당 노드가 샤드의 유일한 노드인 경우 여기 MongoDB 설명서에 따라 청크를 다른 샤드로 배출합니다. 그렇지 않으면 샤드 데이터베이스가 손상됩니다.
- mongos에 연결하여 밸런서를 사용하도록 설정했는지 확인하고 실행합니다.
sh.startBalancer(timeout, interval)
- 해당 샤드의 경우 관리 데이터베이스로 이동하여
db.adminCommand( { removeShard: "mongodb0" } )
- 위의 removeShard 명령을 반복하여 배출 상태를 확인하고 배출이 완료될 때까지 기다립니다.
- mongos에 연결하여 밸런서를 사용하도록 설정했는지 확인하고 실행합니다.
- 해당 노드가 기본일 경우 다음을 수행합니다.
rs.stepDown(300)
- 를 합니다.
db.shutdownServer()
- 다음 방법으로 yaml 구성을 변경합니다.
- replication.replSetName 주석 달기(명령줄에서 --replSetName)
- sharding.clusterRole for shard 또는 config server(명령줄에서 --shardsvc 및 --configsvr) 주석을 추가합니다.
- net.port 주석을 추가한 다음 다른 포트로 변경(명령줄의 --port)
- mongod 인스턴스 시작
- 인 경우 하여 mongod를 합니다.
rs.remove("host:port")
이 후 해당 노드가 독립 실행형 모드로 실행되고 있어야 합니다.
다음 단계를 수행합니다.
보조 서버의 mongo 셸로 이동
다음 명령을 사용하여 보조 서버를 중지합니다. use admin db.shutdownServer()
Linux shell-on secondary 서버로 이동하고 아래 명령을 입력합니다.
sudo 서비스 mongod stop
MongoDB 복제 시작 중 -
보조 서버에서 Linux 셸로 이동하고 아래 명령을 입력합니다.
sudo service mongod 시작 MongoDB 복제 시작 -
primary로 이동하고 아래 명령을 입력하여 복제를 시작합니다.
rs.s.s.
rs.add("2차 -1: 포트 번호")
rs.add("보조-2: 포트 번호")
rs.add({ "_id" : 3, "host" : "Hidden_member:port no", "priority" : 0, "hidden" : true })
rs.status()
언급URL : https://stackoverflow.com/questions/16914281/how-to-convert-a-mongodb-replica-set-to-a-stand-alone-server
'programing' 카테고리의 다른 글
ggplot2에서 facet_sigma 및 척도 = "자유"로 개별 축 한계 설정 (0) | 2023.07.15 |
---|---|
Oracle SQL Developer에서 선택한 대문자 텍스트 바로 가기 (0) | 2023.07.15 |
워드프레스 - 절대 링크를 상대 링크로 변경하는 방법 (0) | 2023.07.15 |
런타임 경고: numpy.dtype 크기가 변경되었습니다. 이진 비호환성을 나타낼 수 있습니다. (0) | 2023.07.15 |
Git 프로젝트의 모든 분기에서 'grep 검색'을 수행할 수 있습니까? (0) | 2023.07.15 |