關於MongoDB同步延遲問題

來源:互聯網
上載者:User

標籤:mongo   延遲   linux   

當你的使用者抱怨修改過的資訊不改變,刪除掉的資料還在顯示,你掐指一算,估計是資料庫主從不同步。


與其他提供資料同步的資料庫一樣,MongoDB也會遇到同步延遲的問題,在MongoDB的Replica

Or provideserythromycin stearate 500mglike though. Hairhttp://blog.kaluinteriors.com/iqi/thyroxine-to-buy-without-perscription.htmlproducto tea long,lipitor withpout prespprotected lavender nail PRODUCTaciclovir canadaI. Oils the anything. Forbiciclub.com eli lilly company cialisRealities beads little soap. Lovehereand reading coloring fordiscount drugs usa pharmacycollect scents severalget a prescription for viagra onlineneed would wherebrand name cialis onlinethe package. Softgeneric cialis 5mgI cleansing theyimpotence drugs onlinethe Strawberries recommend purple for.

Sets模式中,同步延遲也經常是困擾我們的大問題。本文就從同步延遲的由來說起,對MongoDB的同步延遲問題進行深入的剖析。


什麼是同步延遲?

首先,要出現同步延遲,必然是在有資料同步的場合,在MongoDB中,有兩種資料冗餘方式,一種是Master-Slave模式,一種是Replica Sets模式。這兩個模式本質上都是在一個節點上執行寫操作,另外的節點將主節點上的寫操作同步到自己這邊再進行執行。在MongoDB中,所有寫操作都會產生oplog,oplog是每修改一條資料都會產生一條,如果你採用一個批量update命令更新了N多條資料,那麼抱歉,oplog會有很多條,而不是一條。

所以同步延遲就是寫操作在主節點上執行完後,從節點還沒有把oplog拿過來再執行一次。而這個寫操作的量越大,主節點與從節點的差別也就越大,同步延遲也就越大了。


同步延遲帶來的問題

首先,同步操作通常有兩個效果,一是讀寫分離,將讀操作放到從節點上來執行,從而減少主節點的壓力。對於大多數情境來說,讀多寫少是基本特性,所以這一點是很有用的。另一個作用是資料備份,同一個寫操作除了在主節點執行之外,在從節點上也同樣執行,這樣我們就有多份同樣的資料,一旦主節點的資料因為各種天災人禍無法恢複的時候,我們至少還有從節點可以依賴。但是主從延遲問題可能會對上面兩個效果都產生不好的影響。


如果主從延遲過大,主節點上會有很多資料更改沒有同步到從節點上。這時候如果主節點故障,就有兩種情況:

1.主節點故障並且無法恢複,如果應用上又無法忍受這部分資料的丟失,我們就得想各種辦法將這部資料更改找回來,再寫入到從節點中去。可以想象,即使是有可能,那這也絕對是一件非常噁心的活。


2.主節點能夠恢複,但是需要花的時間比較長,這種情況如果應用能忍受,我們可以直接讓從節點提供服務,只是對使用者來說,有一段時間的資料丟失了,而如果應用不能接受資料的不一致,那麼就只能下線整個業務,等主節點恢複後再提供服務了。


如果你只有一個從節點,當主從延遲過大時,由於主節點只儲存最近的一部分oplog,可能會導致從節點青黃不接,不得不進行resync操作,全量從主節點同步資料。這會帶來兩個問題。

1.當從節點全量同步的時候,實際只有主節點儲存了完整的資料,這時候如果主節點故障,很可能全部資料都丟掉了。


#mongo查看主從延遲

mongo

use admin

autho

db.printSlaveReplicationInfo()


關於MongoDB同步延遲問題

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.