溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

mongodb維護文檔的方法是怎樣的

發(fā)布時間:2021-09-29 11:50:32 來源:億速云 閱讀:199 作者:柒染 欄目:關系型數(shù)據(jù)庫

mongodb維護文檔的方法是怎樣的,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

Mongodb CPU利用率超高,負載超高。

 mongodb維護文檔的方法是怎樣的

問題分析:

MONGODB的CPU 使用率很高, 數(shù)據(jù)庫發(fā)生堵塞或者有大量的慢查詢。

mongostat 分析:

mongostat  查看到請求量并不高, 而且發(fā)生的庫是從庫。

使用db.currentOp()查看:

Db.currentOp() 查看到的會話非常的多, 這里查找比較麻煩, 我們可以去查看MONGODB的日志, 慢查詢會打印日志到文件中。

查看MONGODB日志:

如果找不到MONGODB的日志文件, 可以使用ps –elf | grep mongod 去找到配置文件, 配置文件里會有相關的配置。

 mongodb維護文檔的方法是怎樣的

配置文件中的LOGPATH 參數(shù)是配置日志文件的。

使用tail -100f /data/mongodb/logs/db.log

 mongodb維護文檔的方法是怎樣的

此查詢需要花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});

在添加索引完成后, 關于此服務器的告警全部消失:

 mongodb維護文檔的方法是怎樣的

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ù)進行遷移到新磁盤的操作。

方案:

關閉備節(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è)資訊頻道了解更多相關知識。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。

AI