mongodb yapılandırma sunucuları senkronize değil


9

2 çoğaltma sunucusu, 3 çoğaltma sunucusu ve 3 yapılandırma sunucusu ve 2 moğol ile kurulum yaptım. Aşağıdaki problemlerim var:

1) mongo yapılandırma sunucuları senkronize değil:

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) Bu belgeyi sunucuları senkronize etmek için kullanıyorum: http://docs.mongodb.org/manual/tutorial/replace-config-server/ 3) Senkronizasyondan sonra bir mongos sunucusunu yeniden başlatıyorum ve bunu günlüklerde görüyorum:

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]

İlk mongolarda da bu hata var "uyarı: ilk veritabanı yapılandırma bilgilerini yüklerken hata :: neden :: :: 3 deneme sonrasında collection.documents için geçerli bir yapılandırma yüklenemedi. Lütfen tekrar deneyin."

ama şimdilik çalışıyorum.

Yeniden başlatmadan sonra ikinci moğollar çalışmıyor;

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>

Yapılandırma sunucularını kurtarmak için sonraki adımlar nelerdir?

Tüm tavsiyeler açıktır.

Yanıtlar:


11

Özellikle bir tür felaket olayı yaşadıysanız, yapılandırma sunucularını geri yüklemek zor, ancak imkansız değildir. Ancak, daha ileri gitmeden önce, büyük bir cesur uyarı:

HER ŞEYİ YEDEKLEYİN

Bu, üç yapılandırma sunucusunun tümünü yedeklemek anlamına gelir. Size bazı tavsiyelerde bulunacağım ve bu genellikle doğrudur, ancak lütfen, herhangi bir şeyin üzerine yazmadan / değiştirmeden önce lütfen mevcut tüm yapılandırma sunucusu örneklerini yedekleyin

Hızlı bir açıklama olarak, yapılandırma sunucuları bir çoğaltma kümesi olarak yapılandırılmaz - her yapılandırma sunucusu örneğinin (en azından önemli olan tüm koleksiyonlar için) diğerleriyle aynı olması gerekir. Bu nedenle, sağlıklı olmayan bir yapılandırma sunucusunu değiştirmek için herhangi bir sağlıklı yapılandırma sunucusu kullanılabilir ve daha sonra iyi bir yapılandırmaya geri dönmek için bahsettiğiniz öğreticiyi takip edebilirsiniz.

Kurtarmanın anahtarı , sağlıklı yapılandırma sunucusunu tanımlamak ve daha sonra diğerlerini değiştirmek için kullanmaktır - daha sonra 3 özdeş yapılandırma sunucusuyla sonuçlanırsınız.

Bunu yapmanın birden fazla yolu vardır, temel olarak üç kategoriye ayrılırlar:

1) Hata mesajını kullanın

Yazdırılan hata mesajı aslında hangi yapılandırma sunucusunun sağlık olduğuna inandığını bildirmesine rağmen, bu mesajlaşmada belirgin değildir. Genel olarak nasıl okuyacağınız aşağıda açıklanmıştır:

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

Temel olarak listede ilk olan sağlıklı olanıdır mongocfg1.testing.com:27000. Sağlıklı bir yapılandırma veritabanı için ilk adayımız budur.

2) Üçünü dbhashkarşılaştırmak ve kabul edenleri seçmek için kullanın

Yapılandırma veritabanına Her bir yapılandırma sunucusu düğmesi kullanılarak use configçalıştırın db.runCommand("dbhash")ve aşağıdaki koleksiyonları için sağlamalarının karşılaştır:

  • parçaları
  • veritabanları
  • ayarlar
  • kırıkları
  • versiyon

Kabul eden iki sunucu arıyorsunuz ve bunu bu ana bilgisayarlardaki yapılandırma veritabanının sürümünün temelde güvenilir olduğunu ve geri kalanını tohumlamak için kullanılması gerektiğini temel olarak kullanıyorsunuz.

3. Yapılandırma veritabanındaki koleksiyonları manuel olarak inceleyin

Son olarak, yapılandırma veritabanına bir göz atın ve yukarıdaki ikinci seçenekte listelenen koleksiyonlara dikkat edin. Bu, verilerinize aşina olduğunuza dayanan düz bir yargılama çağrısıdır.

Umarım her üç yöntem de sizi aynı ana bilgisayara (veya ana bilgisayara) yönlendirir. Bu yapılandırma sunucusu diğer ikisini tohumlamak için kullanılmalıdır (yedekleri aldıktan sonra geri dönebilmeniz için). Bu temelde en iyi bahistir. Bu başarısız olursa, diğer sürümlerden birini (yedeklerden) denemek isteyebilirsiniz - her zaman başlattığınızda, her üçünün de aynı olduğundan emin olun.

Son olarak, her zaman tüm mongosişlemlerin aynı yapılandırma sunucusu dizesini kullandığından ve her 3 işlemin de her işlemde aynı sırada listelendiğinden emin olun mongos.


İkinci kategori için, "veritabanları" koleksiyonu görmüyorum. "Parçalar" gibi başka şeylerin senkronize olması ne kadar önemlidir? Başka bir yerde bulunabilir mi?
snetch

Söylediklerinizi izledim sadece 3 yapılandırma sunucusunun "md5": "d41d8cd98f00b204e9800998ecf8429e" aynı görüyorum. Hatayı nasıl düzeltirim?
Amit Tripathi

merhaba AdamC, şu anda aynı sorunu yaşıyorum ve bunu mümkün olan en kısa zamanda yapmak benim için çok acil. Kısa bir sorum var. Configdb'yi kapatmadan önce tüm mongos ve mongod'ları durdurmam gerekir mi?
rendybjunior

Acil bir sorununuz varsa, bu konuda profesyonel tavsiye almanızı öneririm - MongoDB ile iletişime geçin ve destek isteyin. Artık MongoDB için çalışmıyorum ve özellikle bu tür bir sorunun önemli ölçüde değiştiği veritabanının daha yeni sürümleri için bu tür bir prosedürle konuşmak istemiyorum (bu cevap neredeyse 4 yıl önce yazıldı)
Adam C
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.