MongoDB Replica Set排錯

來源:互聯網
上載者:User

標籤:mongodb

1.檢查Replica Set的狀態

使用db.runCommand({"replSetGetStatus" : 1});或者rs.status();


2.檢查複寫延遲時間

source:   m1.example.net:30001    syncedTo: Tue Oct 02 2012 11:33:40 GMT-0400 (EDT)        = 7475 secs ago (2.08hrs)source:   m2.example.net:30002    syncedTo: Tue Oct 02 2012 11:33:40 GMT-0400 (EDT)        = 7475 secs ago (2.08hrs)

複寫延遲的可能原因有:

網路延遲

     可以使用ping和traceroute命令探測網路狀況

磁碟輸送量

     如果Secondary的磁碟不能像Primary的磁碟那樣快速將資料重新整理到磁碟上,將不能和Primary保持同步更新。可以使用iostat或者vmstat檢查磁碟使用狀況


並發量

     在某些情況下,如果Primary上長期有操作,那麼可能會阻斷Secondary的複製操作。可以考慮write concern 。再則就是查看是否有慢查詢。

Appropriate Write Concern        

  • Replica Acknowledge Write Concern

  • Replica Set Write Concern



3.所有成員間的串連測試

 Replica Set之間的成員需要能夠相互連通,檢查防火牆設定。


4.重啟多個Secondar的Socket Exceptions問題

當重啟Replica Set中的多個成員時,確保可以選出一個Primary。如果在維護的過程中程式出現socket串連錯誤,可以檢查TCP的keepalive設定。

cat /proc/sys/net/ipv4/tcp_keepalive_time

Linux下預設設定tcp_keepalive_time為7200秒,即兩個小時。可以將所有的MongoDB執行個體所在的伺服器的這個值設定成300秒。

echo 300 > /proc/sys/net/ipv4/tcp_keepalive_time

這種設定重啟後將消失,需要重新修改。可以直接修改/etc/sysctl.conf然後執行sysctl -p



5.檢查Oplog的大小

oplog越大,能夠接受得延遲就越大。

使用db.printReplicationInfo();查看oplog的大小

 db.printReplicationInfo();configured oplog size:   50278.6203125MBlog length start to end: 143109secs (39.75hrs)oplog first event time:  Wed Mar 18 2015 00:36:53 GMT+0800 (CST)oplog last event time:   Thu Mar 19 2015 16:22:02 GMT+0800 (CST)now:                     Thu Mar 19 2015 17:32:42 GMT+0800 (CST)

如果重新設定oplog的大小需要將所有的成員都設定成為大小一樣


6.Oplog Entry Timestamp Error

如果日誌中出現如下報錯

replSet error fatal couldn‘t query the local local.oplog.rs collection.  Terminating mongod after 30 seconds.<timestamp> [rsStart] bad replSet oplog entry?



參考資料:

http://docs.mongodb.org/v2.4/tutorial/troubleshoot-replica-sets/

http://john88wang.blog.51cto.com/2165294/1564543

http://docs.mongodb.org/v2.4/faq/diagnostics/#faq-keepalive



本文出自 “Linux SA John” 部落格,請務必保留此出處http://john88wang.blog.51cto.com/2165294/1622324

MongoDB Replica Set排錯

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.