Ich benutze MongoDB 3.4.3 und habe drei Maschinen in einem Replikat-Set. Lassen Sie ihre Namen wie , server2
und server3
. server2
ist in einem konstanten Rollback-Status, also haben wir es abgeschaltet. server3
befindet sich im Wiederherstellungsstatus und versucht, oplog von zu bekommen, aber seine Versuche führen zu ExceededTimeLimit Ausnahme. Das ist also ein Auszug aus dem server3
log:MongoDB Replikations-Timeout
2017-06-26T14:42:14.442+0300 I REPL [replication-0] could not find member to sync from
2017-06-26T14:42:24.443+0300 I REPL [rsBackgroundSync] sync source candidate: server1:27017
2017-06-26T14:42:24.444+0300 I ASIO [NetworkInterfaceASIO-RS-0] Connecting to server1:27017
2017-06-26T14:42:24.455+0300 I ASIO [NetworkInterfaceASIO-RS-0] Successfully connected to server1:27017
2017-06-26T14:42:54.459+0300 I REPL [replication-0] Blacklisting server1:27017 due to required optime fetcher error: 'ExceededTimeLimit: Operation timed out, request was RemoteCommand 191739 -- server1:27017 db:local expDate:2017-06-26T14:42:54.459+0300 cmd:{ find: "oplog.rs", oplogReplay: true, filter: { ts: { $gte: Timestamp 1497975676000|310, $lte: Timestamp 1497975676000|310 } } }' for 10s until: 2017-06-26T14:43:04.459+0300. required optime: { ts: Timestamp 1497975676000|310, t: 20 }
Also diese attepms abrufen oplog unendlich sind. Laut db.currentOp()
gibt es ein Protokoll der lange laufenden Abfragen auf dem (das primäre der Replikat-Gruppe) versuchen, das Oplog abzurufen. Diese Abfragen verschlechtern die Leistung von , so dass meine Datenbank sehr, sehr langsam arbeitet.
Die aktuelle 's Oplog-Größe ist 643 GB. Ich denke, seine Größe ist der Grund, warum die Replikation nicht funktioniert. server2
hatte auch Probleme mit dem oplog-Timeout, also haben wir es vorübergehend abgeschaltet. Diese Behandlung dauert länger als eine Woche. Ich habe mehr als 5 TB Daten auf der primären Maschine. Wie kann ich das Replikat wiederherstellen?
upd: Unsere Server haben jeweils 64 GB Speicher. Es sind tatsächlich virtuelle Maschinen.
Ich kann Ausfallzeiten als letztes Mittel haben. Und vielleicht ist es Zeit dafür ... – user2717575
Unsere Server haben jeweils 64 GB Speicher. Es sind tatsächlich virtuelle Maschinen. – user2717575
Wir haben 10 * 1,1 TB Cluster .. Mit 120 GB Speicher auf jedem .. Wir haben "Test" mit 64 GB, aber die Leistung war nicht gut genug. – JJussi