MongoDB複製錯誤及處理方法
通過在主節點上面運行 rs.status() 可以看到相應的errormsg
具體解決辦法如下:
1、Error creating index 13111 field not found, expected type 16
在執行mongorestore匯入資料的時候出現這個錯誤,使用的命令是
./mongorestore -h localhost:27100 /data/backup/mongodb
解決方案:
改為
./mongorestore --port 27100 /data/backup/mongodb
2、error RS102 too stale to catch up
主從同步的時候執行rs.status()查看的RS102錯誤。由於在啟動的時候指定 --oplogSize=128,(主節點的oplog日誌大小,單位為M,更改oplog大小時,刪除local.*,然後加 --oplogSize=* 重新啟動即可,*代表大小)在對主庫大資料插入的時候,可能會出現來不及同步到從庫的現象。
解決方案:
停掉主從庫,將主庫的data資料複製到從庫後重啟服務。
參考
http://www.mongodb.org/display/DOCS/Resyncing+a+Very+Stale+Replica+Set+Member
3、Command 'listDatabases' failed: need to login (response: { "errmsg" : "need to login", "ok" : 0 })
配置了主從庫後,發現只能本機連庫,其他機器連不上。
解決方案:
啟動的時候將--keyFile去掉。
4、pymongo.errors.AutoReconnect: could not find master/primary
MongoDB可能非正常停掉服務導致的,解決方案:刪除mongod.lock 並重啟mongdb。
5、pymongo.errors.AutoReconnect: master has changed
python中通過pymongo串連資料庫的時候出現該錯誤。
解決方案:
切換串連代碼即可。bigtb_corpus = pymongo.Connection("lifeba.org", 27100) 換為
servers = "mongodb://lifeba.org:27100/?slaveok=true" bigtb_corpus = pymongo.Connection(servers)
6、Connection reset by peer
Python串連MongoDB,在壓力測試下,出現這個錯誤。串連數滿了,導致串連被重設。後來查明了原因是mongodb的驅動版本不一致導致的。MongoDB部署的版本是2.0.1,串連MongoDB的一台機器上面裝的驅動是2.2版本。
導致了每次訪問串連都增加而不釋放。
7、Replica Set 主從不同步(RECOVERING , still syncing, not yet to minValid optime)
使用db.printSlaveReplicationInfo(),db.printReplicationInfo() 查看最新的主從同步情況。
停掉從庫,然後刪除掉全部的資料庫資料,並重新啟動從庫,從庫會自動從主庫同步資料過來。
8、已有的主從中添加新的從機器
將主機器的資料庫複寫一份到從機器上面,然後啟動從資料庫,啟動好後,在主機器中加入該該從機器即可:rs.add("192.168.0.149:27100")
9、MongoDB去掉主從
停掉全部的機器的mongo服務,刪除掉local.* 檔案 刪除journal檔案夾 ,並且在啟動命令中去掉 --replSet=rs ,然後重新啟動。
10、HOSTNAME問題
replSet exception loading our local replset configuration object : 0 assertion src/mongo/db/repl/../../db/../util/net/hostandport.h:120
預設hostname為localhost,這個會報錯,改為其他名字即可。
master has changed異常
配置了MongoDB資料庫主從後,用內網ip串連也會報,解決方案用hostname來串連。
11.initial sync need a member to be primary or secondary to do our initial sync
正在同步中,目前資料還未同步完成,等待一段時間過後再看。
MongoDB 3.0 正式版發布下載
CentOS編譯安裝MongoDB
CentOS 編譯安裝 MongoDB與mongoDB的php擴充
CentOS 6 使用 yum 安裝MongoDB及伺服器端配置
Ubuntu 13.04下安裝MongoDB2.4.3
MongoDB入門必讀(概念與實戰並重)
Ubunu 14.04下MongoDB的安裝指南
《MongoDB 權威指南》(MongoDB: The Definitive Guide)英文文字版[PDF]
Nagios監控MongoDB分區叢集服務實戰
基於CentOS 6.5作業系統搭建MongoDB服務
MongoDB 的詳細介紹:請點這裡
MongoDB 的:請點這裡
本文永久更新連結地址: