2017-11-23 2 views
0

Unsere MongoDB wurde mit Replicaset erstellt, und die Knoten gingen aus irgendeinem Grund. Jetzt nach dem Start ist es nicht gestartet/nicht in der Lage, die primäre und sekundäre zu finden. Aus den Logs haben wir diesen Fehler beobachtet. "[rsSync] keine gültigen Synchronisierungsquellen im aktuellen Replikat gefunden, um eine initiale Synchronisation durchzuführen" Es gibt keine Möglichkeit, einen anderen Knoten als primär zu promoten, da der Befehl von der primären Datenbank ausgeführt werden muss. Kann jemand bitte einen Weg vorschlagen, die Knoten hoch zu bringen.MongoDB Datengröße zeigt Unterschiede in Show-Datenbanken und DBPath

Außerdem haben wir festgestellt, dass der show databases Befehl und die Größe von DBPath Unterschiede in der Größe zeigt. Gibt es irgendeinen Backend-Mechanismus, der ausgeführt wird, um die Daten in der DB zu komprimieren (etwas wie das Gippen der Daten im Dateisystem) oder die Daten im Dateisystem zu erweitern? Bitte geben Sie dies an.

Antwort

0

Wählen Sie einen Knoten aus und starten Sie ihn in den Wartungsmodus, indem Sie den Parameter replSet entfernen. Melden Sie sich mit mongo an diesem Knoten an und wählen Sie die lokale Datenbank mit use local aus. Aktualisieren Sie db.system.replset collectios members, um NUR diese Knotenadresse zu haben. Starten Sie Ihren Knoten mit dem Parameter replSet neu, und Sie haben jetzt eine Knotenreplik mit PRIMARY gesetzt. Nun können Sie diese anderen Knoten einzeln hinzufügen und die Knoten werden initial sync

Die anderen Knoten, was die anfängliche Synchronisierung macht, wird automatisch kopieren (und komprimieren, wenn Sie verdrahtetTiger verwenden) nur aktuelle Daten. Nachdem Sie zwei gesunde Secondaries haben, können Sie die erste Synchronisierung auf diesem einen Knoten starten, und die Daten werden genauso komprimiert wie die anderen. (Sie können die Erstsynchronisierung starten, indem Sie Daten in dbPath löschen)

Verwandte Themen