溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

replSet error RS102 too stale to catch up

發(fā)布時(shí)間:2020-06-08 17:35:14 來(lái)源:網(wǎng)絡(luò) 閱讀:2378 作者:UltraSQL 欄目:MongoDB數(shù)據(jù)庫(kù)

replSet error RS102 too stale to catch up



輔助副本成員需要關(guān)機(jī)增加內(nèi)存,很早就提前關(guān)機(jī),等第二天服務(wù)器起來(lái)后,去查看rs.status()信息,會(huì)捕獲到"stateStr" : "RECOVERING"。其實(shí)早已超過(guò)了維護(hù)窗口時(shí)間。這時(shí),如果運(yùn)氣好的話,會(huì)看到error RS102 too stale to catch up錯(cuò)誤。而該錯(cuò)誤是每十分鐘會(huì)捕獲到一次。從mongodb的日志文件可以看到:

 

Thu Mar 26 20:50:48.561 [rsBackgroundSync] replSet error RS102 too stale to catch up, at least from dal05mgo13.sl.dx:27017
Thu Mar 26 20:50:48.561 [rsBackgroundSync] replSet error RS102 too stale to catch up
Thu Mar 26 21:00:49.632 [rsBackgroundSync] replSet error RS102 too stale to catch up, at least from dal05mgo13.sl.dx:27017
Thu Mar 26 21:00:49.632 [rsBackgroundSync] replSet error RS102 too stale to catch up
Thu Mar 26 21:10:50.701 [rsBackgroundSync] replSet error RS102 too stale to catch up, at least from dal05mgo12.sl.dx:27017
Thu Mar 26 21:10:50.701 [rsBackgroundSync] replSet error RS102 too stale to catch up
Thu Mar 26 21:20:51.770 [rsBackgroundSync] replSet error RS102 too stale to catch up, at least from dal05mgo13.sl.dx:27017
Thu Mar 26 21:20:51.770 [rsBackgroundSync] replSet error RS102 too stale to catch up

 

確認(rèn)維護(hù)窗口大小



查看主副本的維護(hù)窗口和oplog大?。?/p>

 

rs_main:PRIMARY> db.printReplicationInfo()
configured oplog size: 23552MB
log length start to end: 38133secs (10.59hrs)
oplog first event time: Mon Mar 30 2015 12:00:13 GMT-0500 (CDT)
oplog last event time: Mon Mar 30 2015 22:35:46 GMT-0500 (CDT)
now: Mon Mar 30 2015 22:35:46 GMT-0500 (CDT)

 

可以看到維護(hù)窗口為10個(gè)小時(shí),oplog大小為23G。

輔助副本的維護(hù)窗口大小最好跟主副本成員保持一致,讓輔助副本能保存從主副本同步過(guò)來(lái)的oplog。

 

如何重建oplog?



以standalone方式啟動(dòng),執(zhí)行如下刪除和創(chuàng)建腳本:

 

> use local
> db.oplog.rs.drop()
> db.createCollection("oplog.rs", {"capped" : true, "size" : 23 * 1024 * 1024 * 1024})
或
> db.runCommand( { create: "oplog.rs", capped: true, size: (23 * 1024 * 1024 * 1024) } )

 

replSet error RS102 too stale to catch up如何處理?



副本集錯(cuò)誤RS102太陳舊而無(wú)法跟上。說(shuō)明此節(jié)點(diǎn)由于脫離副本集時(shí)間太長(zhǎng),已經(jīng)跟不上整個(gè)集群了。需要重新同步該輔助副本成員。可參考:

http://docs.mongodb.org/manual/tutorial/resync-replica-set-member/

官方手冊(cè)建議,通過(guò)移除數(shù)據(jù)實(shí)施初始化同步(initial sync)來(lái)完全重新同步成員。

 

MongoDB提供了兩種實(shí)施初始化同步的方法:

  • 清空數(shù)據(jù)目錄,重啟mongod。讓MongoDB的正常初始化同步數(shù)據(jù)恢復(fù)數(shù)據(jù)。這個(gè)方法更簡(jiǎn)單,但是需要花更多的時(shí)間替換數(shù)據(jù)。

  • 從副本集中的另一個(gè)成員拷貝當(dāng)前的數(shù)據(jù)目錄,重啟機(jī)器。這個(gè)過(guò)程替換數(shù)據(jù)更快,但是需要更多手工步驟。



向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI