vor 12 Stunden Ich erhielt eine Benachrichtigung von meinem LibreNMS-Überwachungstool, dass der Mongo-Daemon auf einem meiner 12 MongoDB (Version 3.2.11) Server Probleme hatte (mehr als 10 Sekunden zum Verbinden). Ich beschloss, es zu ignorieren und abzuwarten, ich nahm an, dass es ein wenig beschäftigt war.MongoDB - Sharding migrateThread wird zufällig für mehr als 12 Stunden ausgeführt
Ein paar Stunden später wurde ich ein bisschen besorgt, als ich lief db.currentOp()
. Ich sah, dass eine Operation ausgeführt wurde migrateThread
mit der Nachricht "Schritt 2 von 5" zusammen mit ein paar Einfügungen mit der Nachricht "Abfrage nicht aufzeichnen (zu groß)".
Nachdem ich einige Internet-Suche gemacht habe, sah ich, dass es einige nehmen kann, wie es Datenblöcke zu den anderen Servern migriert. Also habe ich beschlossen, es abzuwarten, da ich es nicht unterbrechen möchte und am Ende 2 TB Daten in einer Produktionsinstanz beschädigt haben.
Jetzt sind 12 Stunden vergangen und ich mache mir Sorgen, was los ist. Es ist immer noch in "Schritt 2 von 5", die Prozessorlast ist sehr hoch, aber es scheint immer noch Teile zu bewegen und neue migrateThread-Operationen zusammen mit vielen "Abfrage nicht aufzeichnen (zu groß)" -Einfügungen hervorzubringen.
Hier ist ein Teil meines currentOp()
log:
{
"desc" : "migrateThread",
"threadId" : "139962853246720",
"active" : true,
"opid" : -2003494368,
"secs_running" : 408,
"microsecs_running" : NumberLong(408914923),
"op" : "none",
"ns" : "data.logs",
"query" : {
},
"msg" : "step 2 of 5",
"numYields" : 0,
"locks" : {
"Global" : "w",
"Database" : "w",
"Collection" : "w"
},
"waitingForLock" : false,
"lockStats" : {
"Global" : {
"acquireCount" : {
"r" : NumberLong(37984),
"w" : NumberLong(37982)
}
},
"Database" : {
"acquireCount" : {
"r" : NumberLong(1),
"w" : NumberLong(37981),
"W" : NumberLong(1)
},
"acquireWaitCount" : {
"W" : NumberLong(1)
},
"timeAcquiringMicros" : {
"W" : NumberLong(1446)
}
},
"Collection" : {
"acquireCount" : {
"r" : NumberLong(1),
"w" : NumberLong(37980),
"W" : NumberLong(1)
},
"acquireWaitCount" : {
"W" : NumberLong(1)
},
"timeAcquiringMicros" : {
"W" : NumberLong(3224)
}
}
}
},
{
"desc" : "conn451221",
"threadId" : "139962959451904",
"connectionId" : 451221,
"client" : "10.0.0.111:57408",
"active" : true,
"opid" : -2003439364,
"secs_running" : 0,
"microsecs_running" : NumberLong(37333),
"op" : "insert",
"ns" : "data.logs",
"query" : {
"$msg" : "query not recording (too large)"
},
"numYields" : 0,
"locks" : {
"Global" : "w",
"Database" : "w",
"Collection" : "w"
},
"waitingForLock" : false,
"lockStats" : {
"Global" : {
"acquireCount" : {
"r" : NumberLong(1),
"w" : NumberLong(1)
}
},
"Database" : {
"acquireCount" : {
"w" : NumberLong(1)
}
},
"Collection" : {
"acquireCount" : {
"w" : NumberLong(1)
}
}
}
},
Wenn ich mongod.log
überprüfen Ich sehe folgendes:
2017-05-04T19:08:14.203Z I SHARDING [migrateThread] starting receiving-end of migration of chunk { _id: -8858253000066304220 } -> { _id: -8857450400323294366 } for collection data.logs from mongo03:27017 at epoch 56f5410efed7ec477fb62e31
2017-05-04T19:08:14.350Z I SHARDING [migrateThread] Deleter starting delete for: data.logs from { _id: -8858253000066304220 } -> { _id: -8857450400323294366 }, with opId: 2291391315
2017-05-04T19:08:14.350Z I SHARDING [migrateThread] rangeDeleter deleted 0 documents for data.logs from { _id: -8858253000066304220 } -> { _id: -8857450400323294366 }
2017-05-04T19:18:26.625Z I SHARDING [migrateThread] Waiting for replication to catch up before entering critical section
2017-05-04T19:18:26.625Z I SHARDING [migrateThread] migrate commit succeeded flushing to secondaries for 'data.logs' { _id: -8858253000066304220 } -> { _id: -8857450400323294366 }
2017-05-04T19:18:36.499Z I SHARDING [migrateThread] migrate commit succeeded flushing to secondaries for 'data.logs' { _id: -8858253000066304220 } -> { _id: -8857450400323294366 }
2017-05-04T19:18:36.788Z I SHARDING [migrateThread] about to log metadata event into changelog: { _id: "mongo01-2017-05-04T21:18:36.788+0200-590b7e8c1bc38fe0dd61db45", server: "mongo01", clientAddr: "", time: new Date(1493925516788), what: "moveChunk.to", ns: "data.logs", details: { min: { _id: -8858253000066304220 }, max: { _id: -8857450400323294366 }, step 1 of 5: 146, step 2 of 5: 279, step 3 of 5: 611994, step 4 of 5: 0, step 5 of 5: 10162, note: "success" } }
2017-05-04T19:19:04.059Z I SHARDING [migrateThread] starting receiving-end of migration of chunk { _id: -9090190725188397877 } -> { _id: -9088854275798899737 } for collection data.logs from mongo04:27017 at epoch 56f5410efed7ec477fb62e31
2017-05-04T19:19:04.063Z I SHARDING [migrateThread] Deleter starting delete for: data.logs from { _id: -9090190725188397877 } -> { _id: -9088854275798899737 }, with opId: 2291472928
2017-05-04T19:19:04.064Z I SHARDING [migrateThread] rangeDeleter deleted 0 documents for data.logs from { _id: -9090190725188397877 } -> { _id: -9088854275798899737 }
2017-05-04T19:28:16.709Z I SHARDING [migrateThread] Waiting for replication to catch up before entering critical section
2017-05-04T19:28:16.709Z I SHARDING [migrateThread] migrate commit succeeded flushing to secondaries for 'data.logs' { _id: -9090190725188397877 } -> { _id: -9088854275798899737 }
2017-05-04T19:28:17.778Z I SHARDING [migrateThread] migrate commit succeeded flushing to secondaries for 'data.logs' { _id: -9090190725188397877 } -> { _id: -9088854275798899737 }
2017-05-04T19:28:17.778Z I SHARDING [migrateThread] about to log metadata event into changelog: { _id: "mongo01-2017-05-04T21:28:17.778+0200-590b80d11bc38fe0dd61db46", server: "mongo01", clientAddr: "", time: new Date(1493926097778), what: "moveChunk.to", ns: "data.logs", details: { min: { _id: -9090190725188397877 }, max: { _id: -9088854275798899737 }, step 1 of 5: 3, step 2 of 5: 4, step 3 of 5: 552641, step 4 of 5: 0, step 5 of 5: 1068, note: "success" } }
2017-05-04T19:28:34.889Z I SHARDING [migrateThread] starting receiving-end of migration of chunk { _id: -8696921045434215002 } -> { _id: -8696381531400161154 } for collection data.logs from mongo06:27017 at epoch 56f5410efed7ec477fb62e31
2017-05-04T19:28:35.134Z I SHARDING [migrateThread] Deleter starting delete for: data.logs from { _id: -8696921045434215002 } -> { _id: -8696381531400161154 }, with opId: 2291544986
2017-05-04T19:28:35.134Z I SHARDING [migrateThread] rangeDeleter deleted 0 documents for data.logs from { _id: -8696921045434215002 } -> { _id: -8696381531400161154 }
So ist es eine sehr lange Zeit zu nehmen, um die Daten zu migrieren. Soll ich mir Sorgen machen? Sollte ich etwas unternehmen oder es einfach lassen und abwarten?
Nur um klar zu sein, ich habe selbst keine Migration gestartet. Es ist ganz von alleine passiert. Deshalb bin ich etwas verwirrt.
Bitte helfen!