mongodb維護文檔的方法是怎樣的-創(chuàng)新互聯(lián)
mongodb維護文檔的方法是怎樣的,針對這個問題,這篇文章詳細介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
Mongodb CPU利用率超高,負載超高。
問題分析:
MONGODB的CPU 使用率很高, 數(shù)據(jù)庫發(fā)生堵塞或者有大量的慢查詢。
mongostat 分析:
mongostat 查看到請求量并不高, 而且發(fā)生的庫是從庫。
使用db.currentOp()查看:
Db.currentOp() 查看到的會話非常的多, 這里查找比較麻煩, 我們可以去查看MONGODB的日志, 慢查詢會打印日志到文件中。
查看MONGODB日志:
如果找不到MONGODB的日志文件, 可以使用ps –elf | grep mongod 去找到配置文件, 配置文件里會有相關(guān)的配置。
配置文件中的LOGPATH 參數(shù)是配置日志文件的。
使用tail -100f /data/mongodb/logs/db.log
此查詢需要花30秒的時間。
此查詢是根據(jù)DATAID查詢的, 連接MONGODB查看此條件是否有索引。
Mongo 127.0.0.1:27017
Use datalog;
Db. user_operate_log.getIndexes() 去獲取此集合的索引。
發(fā)現(xiàn)此集合沒有關(guān)于DATAID的索引, 因此跟業(yè)務(wù)人員聯(lián)系,要求加索引即可。
db.user_operate_log.ensureIndex({"dataId":1});
在添加索引完成后, 關(guān)于此服務(wù)器的告警全部消失:
MONGODB開啟集群分片
對庫進行開啟分片操作:
sh.enableSharding("dbname")
在要開啟分片的集合上面創(chuàng)建索引:
db.collection_name.createIndex({_id: "hashed"})
因為我這邊里創(chuàng)建的是HASH分片,所以創(chuàng)建HASH類型的索引即可。
打開集合分片:
sh.shardCollection( "dbname.collection_name", { "_id": "hashed" } )
驗證分片:
sh.status()
MONGODB分片集群下的磁盤擴容
介紹: 因前期磁盤空間未做規(guī)劃,MONGODB的數(shù)據(jù)目錄存放在了根分區(qū),根分區(qū)的空間小而且IO能力跟不上,在后期添加磁盤后需要對數(shù)據(jù)進行遷移到新磁盤的操作。
方案:
關(guān)閉備節(jié)點。
Mongo 127.0.0.1:27017
Use admin;
Db.shutdownServer()
遷移數(shù)據(jù)目錄到新的磁盤,并修改配置文件到新的磁盤路徑。(ps –elf | grep mongo 可獲取到參數(shù)文件的路徑)
Mv /data/mongo /data1/mongo
啟動備節(jié)點。
依次將所有備節(jié)點操作完畢。
主庫降級成為備庫,讓已經(jīng)切換為的主庫提供服務(wù)。注: 在這個過程中會有微妙級的中斷,和業(yè)務(wù)溝通,并無影響。
主庫降級命令連接進主庫后執(zhí)行rs.stepDown()
遷移原主庫數(shù)據(jù)即可。
在關(guān)庫重啟后需要使用rs.status()來確認復(fù)制集的正常。
在切換主庫時需要關(guān)注業(yè)務(wù)的正常以及復(fù)制集的正常。
關(guān)于mongodb維護文檔的方法是怎樣的問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道了解更多相關(guān)知識。
文章標題:mongodb維護文檔的方法是怎樣的-創(chuàng)新互聯(lián)
標題鏈接:http://www.xueling.net.cn/article/dpjdjj.html