mongodb 구성 서버가 동기화되지 않았습니다


9

2 개의 샤드, 2 개의 복제 서버 및 3 개의 구성 서버 및 2 개의 몽고로 설정했습니다. 다음과 같은 문제가 있습니다.

1) mongo 구성 서버가 동기화되지 않았습니다.

Aug 14 09:46:48 server mongos.27017[10143]: Sun Aug 11 09:46:48.987 [CheckConfigServers] ERROR: config servers not in sync! config servers mongocfg1.testing.com:27000 and mongocfg3.testing.com:27000 differ#012chunks: "d2c08c5f1ee6048e5f6fab30e37a70f0"#011chunks: "7e643e9402ba90567ddc9388c2abdb8a"#012databases: "6f35ec52b536eee608d5bc706a72ec1e"#011databases: "6f35ec52b536eee608d5bc706a72ec1e"

2) 나는이 문서를 사용하여 서버를 동기화합니다 : http://docs.mongodb.org/manual/tutorial/replace-config-server/ 3) 동기화 후 하나의 mongos 서버를 다시 시작하고 로그에서 이것을 봅니다.

Thu Aug 15 09:56:05.376 [mongosMain] MongoS version 2.4.4 starting: pid=1575 port=27111 64-bit host=web-inno.innologica.com (--help for usage)
Thu Aug 15 09:56:05.376 [mongosMain] git version: 4ec1fb96702c9d4c57b1e06dd34eb73a16e407d2
Thu Aug 15 09:56:05.376 [mongosMain] build info: Linux ip-10-2-29-40 2.6.21.7-2.ec2.v1.2.fc8xen #1 SMP Fri Nov 20 17:48:28 EST 2009 x86_64 BOOST_LIB_VERSION=1_49
Thu Aug 15 09:56:05.376 [mongosMain] options: { configdb: "mongocfg1.testing.com:27000,mongocfg2.testing.com:27000,mongocfg3.testing.com:27000", keyFile: "/mongo_database/pass.key", port: 27111 }
Thu Aug 15 09:56:05.582 [mongosMain] SyncClusterConnection connecting to [mongocfg1.testing.com:27000]
Thu Aug 15 09:56:05.583 [mongosMain] SyncClusterConnection connecting to [mongocfg2.testing.com:27000]
Thu Aug 15 09:56:05.583 [mongosMain] SyncClusterConnection connecting to [mongocfg3.testing.com:27000]
Thu Aug 15 09:56:05.585 [mongosMain] SyncClusterConnection connecting to [mongocfg1.testing.com:27000]
Thu Aug 15 09:56:05.586 [mongosMain] SyncClusterConnection connecting to [mongocfg2.testing.com:27000]
Thu Aug 15 09:56:05.586 [mongosMain] SyncClusterConnection connecting to [mongocfg3.testing.com:27000]
Thu Aug 15 09:56:07.213 [Balancer] about to contact config servers and shards
Thu Aug 15 09:56:07.213 [websvr] admin web console waiting for connections on port 28111
Thu Aug 15 09:56:07.213 [Balancer] starting new replica set monitor for replica set replica01 with seed of mongo1.testing.com:27020,mongo2.testing.com:27020,mongo3.testing.com:27017
Thu Aug 15 09:56:07.214 [Balancer] successfully connected to seed mongo1.testing.com:27020 for replica set replica01
Thu Aug 15 09:56:07.214 [Balancer] changing hosts to { 0: "mongo1.testing.com:27020", 1: "mongo2.testing.com:27020" } from replica01/
Thu Aug 15 09:56:07.214 [Balancer] trying to add new host mongo1.testing.com:27020 to replica set replica01
Thu Aug 15 09:56:07.215 [Balancer] successfully connected to new host mongo1.testing.com:27020 in replica set replica01
Thu Aug 15 09:56:07.215 [Balancer] trying to add new host mongo2.testing.com:27020 to replica set replica01
Thu Aug 15 09:56:07.215 [Balancer] successfully connected to new host mongo2.testing.com:27020 in replica set replica01
Thu Aug 15 09:56:07.215 [mongosMain] waiting for connections on port 27111
Thu Aug 15 09:56:07.427 [Balancer] Primary for replica set replica01 changed to mongo1.testing.com:27020
Thu Aug 15 09:56:07.429 [Balancer] replica set monitor for replica set replica01 started, address is replica01/mongo1.testing.com:27020,mongo2.testing.com:27020
Thu Aug 15 09:56:07.429 [ReplicaSetMonitorWatcher] starting
Thu Aug 15 09:56:07.430 [Balancer] starting new replica set monitor for replica set replica02 with seed of mongo5.testing.com:27020,mongo6.testing.com:27020
Thu Aug 15 09:56:07.431 [Balancer] successfully connected to seed mongo5.testing.com:27020 for replica set replica02
Thu Aug 15 09:56:07.432 [Balancer] changing hosts to { 0: "mongo5.testing.com:27020", 1: "mongo6.testing.com:27020" } from replica02/
Thu Aug 15 09:56:07.432 [Balancer] trying to add new host mongo5.testing.com:27020 to replica set replica02
Thu Aug 15 09:56:07.432 [Balancer] successfully connected to new host mongo5.testing.com:27020 in replica set replica02
Thu Aug 15 09:56:07.432 [Balancer] trying to add new host mongo6.testing.com:27020 to replica set replica02
Thu Aug 15 09:56:07.433 [Balancer] successfully connected to new host mongo6.testing.com:27020 in replica set replica02
Thu Aug 15 09:56:07.712 [Balancer] Primary for replica set replica02 changed to mongo5.testing.com:27020
Thu Aug 15 09:56:07.714 [Balancer] replica set monitor for replica set replica02 started, address is replica02/mongo5.testing.com:27020,mongo6.testing.com:27020
Thu Aug 15 09:56:07.715 [Balancer] config servers and shards contacted successfully
Thu Aug 15 09:56:07.715 [Balancer] balancer id: web-inno.innologica.com:27111 started at Aug 15 09:56:07
Thu Aug 15 09:56:07.715 [Balancer] SyncClusterConnection connecting to [mongocfg1.testing.com:27000]
Thu Aug 15 09:56:07.716 [Balancer] SyncClusterConnection connecting to [mongocfg2.testing.com:27000]
Thu Aug 15 09:56:24.438 [mongosMain] connection accepted from 127.0.0.1:55303 #1 (1 connection now open)
Thu Aug 15 09:56:24.443 [conn1]  authenticate db: admin { authenticate: 1, nonce: "6cc9a76b79656179", user: "admin", key: "xxxxxxxxxxxxxxxxxxx" }
Thu Aug 15 09:56:26.676 [conn1] creating WriteBackListener for: mongo1.testing.com:27020 serverID: 520c7b87e4a4c3afa569b21a
Thu Aug 15 09:56:26.676 [conn1] creating WriteBackListener for: mongo2.testing.com:27020 serverID: 520c7b87e4a4c3afa569b21a
Thu Aug 15 09:56:26.678 [conn1] creating WriteBackListener for: mongo5.testing.com:27020 serverID: 520c7b87e4a4c3afa569b21a
Thu Aug 15 09:56:26.678 [conn1] creating WriteBackListener for: mongo6.testing.com:27020 serverID: 520c7b87e4a4c3afa569b21a
Thu Aug 15 09:56:26.679 [conn1] SyncClusterConnection connecting to [mongocfg1.testing.com:27000]
Thu Aug 15 09:56:26.679 [conn1] SyncClusterConnection connecting to [mongocfg2.testing.com:27000]
Thu Aug 15 09:56:26.680 [conn1] SyncClusterConnection connecting to [mongocfg3.testing.com:27000]
Thu Aug 15 09:57:33.704 [conn1] warning: inconsistent chunks found when reloading collection.documents, previous version was 8651|7||51b5c7a96b2903a0b3fac106, this should be rare
Thu Aug 15 09:57:33.714 [conn1] warning: ChunkManager loaded an invalid config for collection.documents, trying again
Thu Aug 15 09:57:34.065 [conn1] warning: inconsistent chunks found when reloading collection.documents, previous version was 8651|7||51b5c7a96b2903a0b3fac106, this should be rare
Thu Aug 15 09:57:34.076 [conn1] warning: ChunkManager loaded an invalid config for collection.documents, trying again
Thu Aug 15 09:57:34.491 [conn1] warning: inconsistent chunks found when reloading collection.documents, previous version was 8651|7||51b5c7a96b2903a0b3fac106, this should be rare
Thu Aug 15 09:57:34.503 [conn1] warning: ChunkManager loaded an invalid config for collection.documents, trying again
Thu Aug 15 09:57:34.533 [conn1] Assertion: 13282:Couldn't load a valid config for collection.documents after 3 attempts. Please try again.
0xa82161 0xa46e8b 0xa473cc 0x8b857e 0x93cb52 0x93f329 0x93ff18 0x94311f 0x9740e0 0x991865 0x669887 0xa6e8ce 0x7f4456361851 0x7f445570790d
 /usr/bin/mongos(_ZN5mongo15printStackTraceERSo+0x21) [0xa82161]
 /usr/bin/mongos(_ZN5mongo11msgassertedEiPKc+0x9b) [0xa46e8b]
 /usr/bin/mongos() [0xa473cc]
 /usr/bin/mongos(_ZN5mongo12ChunkManager18loadExistingRangesERKSs+0x24e) [0x8b857e]
 /usr/bin/mongos(_ZN5mongo8DBConfig14CollectionInfo5shardEPNS_12ChunkManagerE+0x52) [0x93cb52]
 /usr/bin/mongos(_ZN5mongo8DBConfig14CollectionInfoC1ERKNS_7BSONObjE+0x149) [0x93f329]
 /usr/bin/mongos(_ZN5mongo8DBConfig5_loadEv+0xa48) [0x93ff18]
 /usr/bin/mongos(_ZN5mongo8DBConfig4loadEv+0x1f) [0x94311f]
 /usr/bin/mongos(_ZN5mongo4Grid11getDBConfigESsbRKSs+0x480) [0x9740e0]
 /usr/bin/mongos(_ZN5mongo7Request5resetEv+0x1d5) [0x991865]
 /usr/bin/mongos(_ZN5mongo21ShardedMessageHandler7processERNS_7MessageEPNS_21AbstractMessagingPortEPNS_9LastErrorE+0x67) [0x669887]
 /usr/bin/mongos(_ZN5mongo17PortMessageServer17handleIncomingMsgEPv+0x42e) [0xa6e8ce]
 /lib64/libpthread.so.0(+0x7851) [0x7f4456361851]
 /lib64/libc.so.6(clone+0x6d) [0x7f445570790d]
Thu Aug 15 09:57:34.549 [conn1] scoped connection to mongocfg1.testing.com:27000,mongocfg2.testing.com:27000,mongocfg3.testing.com:27000 not being returned to the pool
Thu Aug 15 09:57:34.549 [conn1] warning: error loading initial database config information :: caused by :: Couldn't load a valid config for collection.documents after 3 attempts. Please try again.
Thu Aug 15 09:57:34.549 [conn1] AssertionException while processing op type : 2004 to : collection.system.namespaces :: caused by :: 13282 error loading initial database config information :: caused by :: Couldn't load a valid config for collection.documents after 3 attempts. Please try again.
Thu Aug 15 09:57:37.722 [Balancer] SyncClusterConnection connecting to [mongocfg1.testing.com:27000]
Thu Aug 15 09:57:37.723 [Balancer] SyncClusterConnection connecting to [mongocfg2.testing.com:27000]
Thu Aug 15 09:57:37.723 [Balancer] SyncClusterConnection connecting to [mongocfg3.testing.com:27000]

첫 번째 mongos는 또한 "경고 : 초기 데이터베이스 구성 정보를로드하는 중 오류 발생 : :: 원인 : 3 회 시도 후 collection.documents에 대한 올바른 구성을로드 할 수 없습니다. 다시 시도하십시오."

그러나 지금 일하십시오.

재시작 후 두 번째 몽고는 작동하지 않습니다.

mongos> show collections
Thu Aug 15 09:57:34.550 JavaScript execution failed: error: {
    "$err" : "error loading initial database config information :: caused by :: Couldn't load a valid config for collection.documents after 3 attempts. Please try again.",
    "code" : 13282
} at src/mongo/shell/query.js:L128
mongos>

구성 서버를 복구하는 다음 단계는 무엇입니까?

모든 조언을 환영합니다.

답변:


11

구성 서버 복원, 특히 심각한 이벤트가 발생한 경우 까다 롭지 만 불가능하지는 않습니다. 그러나 더 나아 가기 전에 대담한 경고가 있습니다.

모든 것을 백업

즉, 3 개의 구성 서버를 모두 백업해야합니다. 내가 당신에게 몇 가지 조언을 제공하기 위하여려고하고있다, 그것은 일반적으로 정확하지만 , 제발, 제발 아무 것도 대체 / 덮어 쓰기 전에 모든 현재 설정 서버 인스턴스의 백업을

빠른 설명으로 구성 서버는 복제 세트로 구성되지 않습니다. 각 구성 서버 인스턴스는 다른 구성 요소와 동일해야합니다 (적어도 모든 컬렉션에 대해 동일해야 함). 따라서 정상 구성 서버를 사용하여 비정상 구성 서버를 교체 한 다음 언급 한 자습서에 따라 올바른 구성으로 돌아갈 수 있습니다.

복구의 핵심 은 정상적인 구성 서버식별 한 다음이를 사용하여 다른 구성 서버 를 바꾸는 것입니다. 그런 다음 3 개의 동일한 구성 서버로 끝납니다.

이를 수행하는 방법은 여러 가지가 있으며 기본적으로 세 가지 범주로 분류됩니다.

1) 오류 메시지를 사용하십시오

인쇄 된 오류 메시지는 실제로 어떤 구성 서버가 상태라고 생각하는지 알려줍니다 (메시지에서는 분명하지 않음). 일반적으로 읽는 방법은 다음과 같습니다.

ERROR: config servers not in sync! config servers <healthy-server> and <out-of-sync-server> differ

기본적으로 목록의 첫 번째는 건강한 경우입니다 mongocfg1.testing.com:27000. 이것이 건강한 구성 데이터베이스의 첫 번째 후보입니다.

2) dbhash세 가지를 모두 비교하고 동의하는 것을 선택하는 데 사용하십시오.

각 구성 서버에서을 사용하여 구성 데이터베이스로 전환하고 아래 컬렉션의 해시를 use config실행 db.runCommand("dbhash")하고 비교하십시오.

  • 덩어리
  • 데이터베이스
  • 설정
  • 샤드
  • 버전

동의하는 두 개의 서버를 찾고 해당 호스트의 구성 데이터베이스 버전이 기본적으로 신뢰할 수 있고 나머지를 시드하는 데 사용해야하는지 결정하는 기준으로 사용합니다.

3. 설정 데이터베이스에서 컬렉션을 수동으로 검사

마지막으로, 구성 데이터베이스를 살펴보고 위의 두 번째 옵션에 나열된 컬렉션에주의하십시오. 이것은 귀하의 데이터에 대한 친숙성을 바탕으로 한 직접적인 판단입니다.

바라건대 세 가지 방법이 모두 같은 호스트 (또는 호스트)를 가리킬 수 있기를 바랍니다. 해당 구성 서버를 사용하여 다른 두 서버를 시드해야합니다 (백업 한 후 되돌아 갈 수 있음). 그것은 기본적으로 최선의 방법입니다. 실패하면 백업에서 다른 버전 중 하나를 시도해 볼 수 있습니다. 시작할 때 항상 세 가지가 모두 같은지 확인하십시오.

마지막으로, 모든 mongos프로세스가 동일한 구성 서버 문자열을 사용하고 모든 프로세스에서 3 개의 서버가 항상 동일한 순서로 나열되어 있는지 확인하십시오. 모든 프로세스에서 그렇게하지 않으면 mongos(매우) 이상한 결과가 발생할 수 있습니다.


두 번째 범주의 경우 "데이터베이스"컬렉션이 표시되지 않습니다. "청크"와 같은 다른 것들이 동기화되면 얼마나 중요합니까? 다른 곳에서 찾을 수 있습니까?
17:51에

3 개의 구성 서버의 "md5": "d41d8cd98f00b204e9800998ecf8429e"만 동일하다고 본 내용을 따랐습니다. 오류를 어떻게 수정합니까?
Amit Tripathi

안녕 AdamC, 나는 현재 같은 문제가 있고 가능한 한 빨리 그것을하는 것이 매우 시급합니다. 빠른 질문이 있습니다. configdb를 종료하기 전에 모든 mongo 및 mongod를 중지해야합니까?
rendybjunior

긴급한 문제가있는 경우 이에 대한 전문가의 조언을받는 것이 좋습니다. MongoDB에 연락하여 지원을 요청하십시오. 더 이상 MongoDB에서 일하지 않으며 이러한 종류의 절차, 특히 이런 종류의 문제가 크게 변경된 데이터베이스의 최신 버전에 대해서는 이야기하지 않습니다. (이 답변은 거의 4 년 전에 작성되었습니다)
Adam C
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.