共計 1079 個字符,預計需要花費 3 分鐘才能閱讀完成。
自動寫代碼機器人,免費開通
這篇文章給大家介紹 MongoDB 中怎么搭建延時節點從庫,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
MongoDB 搭建延時節點從庫
【概念說明】
延時節點也是從主節點復制數據,然而延時節點中的數據集將會比復制集中主節點的數據延后。舉個例子,現在是 09:52,如果延時節點延后了 1 小時,那么延時節點的數據集中將不會有 08:52 之后的操作。
mongo 并不像有些關系型數據庫那樣有類似 oracle 的 archive、mysql 的 binlog 這樣的歸檔文件,他的文件是 oplog,是覆蓋循環寫的,如果想要找之前的數據,恢復起來較為麻煩,故考慮這點采用延時節點從庫。由于延時節點的數據集是延時的,因此它可以幫助我們在人為誤操作或是其他意外情況下恢復數據。舉個例子,當應用升級失敗,或是誤操作刪除了表和數據庫時,我們可以通過延時節點進行數據恢復。
【注意事項】
1 優先級 priority 必須為 0,以防延遲節點變為主庫
2 必須 hidden 成員,這是防止用戶在讀從庫時候查到延遲節點
3 也參與主庫的投票,在 rs.conf() 的里面 members[0].votes 也是為 1
4 延遲節點在延遲時間后復制應用源端的 oplog,如果延遲設置的很大,必須等于或大于期望維護窗口時間。必須小于 oplog 的存儲能力
5 在分片集群中,當 平衡器打開的時候延時節點效果有限。因為在延時的時間段內進行過數據段遷移的話,復制集中的延時節點就無法為還原分片集群提供有效的幫助。
【方法】
如下是擁有 3 個成員的副本集:一主兩從。當一個成員設置為 3600 秒后延遲,這個延遲成員必須 hidden 且優先級為 0
【配置方式】
1 members[n].priority=0
2 members[n].hidden=true
3 members[n].slaveDelay=3600
{_id :
num ,
host :
hostname:port ,
priority : 0,
slaveDelay :
seconds ,
hidden : true
}
具體例子:
cfg=rs.conf() /* 找到需要改為延遲性同步的數組號 */;
cfg.members[1].priority=0
cfg.members[1].slaveDelay=120
cfg.members[1].hidden=false
rs.reconfig(cfg)
關于 MongoDB 中怎么搭建延時節點從庫就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
向 AI 問一下細節