您好,登錄后才能下訂單哦!
這篇文章給大家介紹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中怎么搭建延時節點從庫就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。