您好,登錄后才能下訂單哦!
mongodb維護文檔的方法是怎樣的,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
MONGODB的CPU 使用率很高, 數(shù)據(jù)庫發(fā)生堵塞或者有大量的慢查詢。
mongostat 查看到請求量并不高, 而且發(fā)生的庫是從庫。
Db.currentOp() 查看到的會話非常的多, 這里查找比較麻煩, 我們可以去查看MONGODB的日志, 慢查詢會打印日志到文件中。
如果找不到MONGODB的日志文件, 可以使用ps –elf | grep mongod 去找到配置文件, 配置文件里會有相關的配置。
配置文件中的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)此集合沒有關于DATAID的索引, 因此跟業(yè)務人員聯(lián)系,要求加索引即可。
db.user_operate_log.ensureIndex({"dataId":1});
在添加索引完成后, 關于此服務器的告警全部消失:
sh.enableSharding("dbname")
db.collection_name.createIndex({_id: "hashed"})
因為我這邊里創(chuàng)建的是HASH分片,所以創(chuàng)建HASH類型的索引即可。
sh.shardCollection( "dbname.collection_name", { "_id": "hashed" } )
sh.status()
介紹: 因前期磁盤空間未做規(guī)劃,MONGODB的數(shù)據(jù)目錄存放在了根分區(qū),根分區(qū)的空間小而且IO能力跟不上,在后期添加磁盤后需要對數(shù)據(jù)進行遷移到新磁盤的操作。
方案:
關閉備節(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)切換為的主庫提供服務。注: 在這個過程中會有微妙級的中斷,和業(yè)務溝通,并無影響。
主庫降級命令連接進主庫后執(zhí)行rs.stepDown()
遷移原主庫數(shù)據(jù)即可。
在關庫重啟后需要使用rs.status()來確認復制集的正常。
在切換主庫時需要關注業(yè)務的正常以及復制集的正常。
關于mongodb維護文檔的方法是怎樣的問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業(yè)資訊頻道了解更多相關知識。
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。