日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
MongoDB定時(shí)清除數(shù)據(jù),輕松解決庫(kù)容量問(wèn)題(mongo按時(shí)間刪除數(shù)據(jù)庫(kù))

MongoDB是一款非關(guān)系型數(shù)據(jù)庫(kù),它的可擴(kuò)展性和高性能性能使其在現(xiàn)代應(yīng)用程序中越來(lái)越受歡迎。然而,隨著數(shù)據(jù)量增長(zhǎng),數(shù)據(jù)庫(kù)的容量也會(huì)不斷增加,這可能會(huì)給數(shù)據(jù)存儲(chǔ)和管理帶來(lái)各種問(wèn)題。因此,為解決這些問(wèn)題,我們需要一種方法來(lái)定期清除MongoDB數(shù)據(jù)庫(kù)中不再需要的數(shù)據(jù)。在本篇文章中,我們將介紹如何使用MongoDB定時(shí)清除數(shù)據(jù),以輕松解決數(shù)據(jù)庫(kù)容量問(wèn)題。

10年積累的網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問(wèn)題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站制作后付款的網(wǎng)站建設(shè)流程,更有來(lái)鳳免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。

一、MongoDB定時(shí)清除數(shù)據(jù)的必要性

隨著數(shù)據(jù)量的增長(zhǎng)和變更,MongoDB數(shù)據(jù)庫(kù)中可能會(huì)存在許多舊數(shù)據(jù)記錄和無(wú)用數(shù)據(jù),這些數(shù)據(jù)可能會(huì)占用大量的磁盤空間,使得MongoDB數(shù)據(jù)庫(kù)容量不斷增長(zhǎng)。當(dāng)數(shù)據(jù)庫(kù)容量達(dá)到極限時(shí),將無(wú)法再添加新的數(shù)據(jù)記錄。因此,為了避免這種情況發(fā)生,我們需要定期清除不再需要的數(shù)據(jù)記錄。

定期清除無(wú)用數(shù)據(jù)記錄還有其他好處。這可以提高數(shù)據(jù)庫(kù)的性能。刪除不再需要的數(shù)據(jù)記錄可以減少數(shù)據(jù)庫(kù)中的數(shù)據(jù)量,從而提高查詢和讀取數(shù)據(jù)的速度。這可以改善數(shù)據(jù)安全性。定期清除無(wú)用數(shù)據(jù)記錄可以減少數(shù)據(jù)泄露和安全漏洞的幾率。

二、如何使用MongoDB定時(shí)清除數(shù)據(jù)

MongoDB提供了一些內(nèi)置工具和API來(lái)清除數(shù)據(jù)庫(kù)中不再需要的數(shù)據(jù)記錄。這些工具和API包括刪除命令、刪除文檔和刪除等。但是,手動(dòng)刪除數(shù)據(jù)記錄是一項(xiàng)枯燥和繁瑣的任務(wù),不適合大規(guī)模數(shù)據(jù)庫(kù)。

為了自動(dòng)執(zhí)行定期數(shù)據(jù)清除任務(wù),我們可以編寫一個(gè)腳本來(lái)定期刪除數(shù)據(jù)庫(kù)中的無(wú)用數(shù)據(jù)記錄。這里介紹一個(gè)使用Python語(yǔ)言編寫的腳本示例:

“`

import pymongo

from datetime import datetime, timedelta

client = pymongo.MongoClient(“mongodb://127.0.0.1:27017/”)

db = client[“test_db”]

collection = db[“test_collection”]

def delete_old_data():

# 定義需要?jiǎng)h除的時(shí)間范圍(刪除30天以前的數(shù)據(jù))

limit_date = datetime.now() – timedelta(days=30)

delete_result = collection.delete_many({‘date’: {‘$lt’: limit_date}})

print(‘deleted %s documents’ % delete_result.deleted_count)

delete_old_data()

“`

這個(gè)腳本可以刪除MongoDB數(shù)據(jù)庫(kù)中的“test_collection”中,生成日期早于30天的數(shù)據(jù)。我們可以將此腳本添加到cron作業(yè)中,以每天定期執(zhí)行。

三、

使用MongoDB定時(shí)清除數(shù)據(jù),可以輕松解決數(shù)據(jù)庫(kù)容量問(wèn)題。除了提高數(shù)據(jù)庫(kù)的性能和安全性外,定期清除無(wú)用數(shù)據(jù)記錄還可以提高數(shù)據(jù)庫(kù)的可維護(hù)性。我們可以使用內(nèi)置的MongoDB刪除工具和API,也可以為自動(dòng)化刪除任務(wù)編寫一個(gè)簡(jiǎn)單的腳本。無(wú)論使用哪種方法,定期清除無(wú)用數(shù)據(jù)記錄對(duì)于確保數(shù)據(jù)庫(kù)健康運(yùn)行至關(guān)重要。

相關(guān)問(wèn)題拓展閱讀:

  • mongodb刪除數(shù)據(jù)庫(kù)會(huì)刪除索引嗎
  • mongodb 刪除后為什么不釋放空間

mongodb刪除數(shù)據(jù)庫(kù)會(huì)刪除索引嗎

刪除數(shù)據(jù)庫(kù)會(huì)刪掉整個(gè)庫(kù)下的所有對(duì)象,索引當(dāng)然也會(huì)刪除了

MongoDB 增加用戶 刪除用戶 修改用戶 讀寫權(quán)限 只讀權(quán)限,

MongoDB用戶權(quán)限分配的操作是針對(duì)某個(gè)庫(kù)來(lái)說(shuō)的。–這句話此察很重要。

1、 進(jìn)入ljc 數(shù)據(jù)庫(kù):

use ljc; –

www.2cto.com-

ljc為數(shù)據(jù)庫(kù)名稱。

2、添加用戶(讀寫權(quán)限,readOnly–>false):

db.addUser(“java”,”java”);

3、 查看一下所有的用戶

db.system.users.find();

{ “_id” : ObjectId(“4e02a89fb841deb5fda3e5e2”), “user” : “java”, “readOnly” : fa

lse, “pwd” : “59cf7cc156874cbd35cbf569” }

4、用戶授權(quán)。

db.auth(“java”,”java”);

顯示為1 表示授權(quán)成功,0表示不成功。

5、 添加用戶(只讀權(quán)限,readOnly–>true):

db.addUser(“java1″,”森游茄java1”,true);

db.system.users.find();

{ “_id” : ObjectId(“4e02a89fb841deb5fda3e5e2”), “user” : “java”, “readOnly” : fa

lse, “pwd” : “59cf7cc156874cbd35cbf569” }

{ “_id” : ObjectId(“4e02aae6b841deb5fda3e5e3”), “user” : “java1”, “readOnly” : t

rue, “pwd” : “fca6bda05c87a72cce0a4a6458d1e266” }

注意上面標(biāo)紅的位置的readOnly 只讀于可寫是有區(qū)別的。

6、更改密碼(為已經(jīng)存在的用戶更改密碼):

db.addUser(“java”,”java1″);

7、刪除用戶:

db.system.users.remove({user:”java1″});

關(guān)于庫(kù)權(quán)限,如果用戶需要全局的權(quán)限,可以在admin和local的兩個(gè)庫(kù)里添加,但是需要重啟庫(kù),

有待驗(yàn)證。

==========================================================================

MongoDB增加用戶認(rèn)證: 增加用戶、刪除用戶、修改用戶密碼、讀寫權(quán)限、只讀權(quán)限

說(shuō)明:增加用戶是針對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作

1.進(jìn)入到數(shù)據(jù)庫(kù) use dbname

2.針對(duì)當(dāng)前數(shù)據(jù)庫(kù)添加用戶 權(quán)限是針對(duì)當(dāng)前數(shù)據(jù)

1.添加并驗(yàn)證用戶

> use admin

> db.addUser(“zjx”,”tsjianxin”)

> db.auth(“zjx”,”tsjianxin”)

2.查看已存在的用戶

> db.system.users.find()

3.現(xiàn)在來(lái)給另一個(gè)數(shù)據(jù)庫(kù)51cv配置一個(gè)讀寫權(quán)限的-

www.2cto.com-

用戶

> use 51cv

> db.addUser(“51cvrw”,”51cv”)

…”readOnly” : false…

4.配置一個(gè)只讀權(quán)限的用戶

> use 51cv

> db.addUser(“51cvr”,”51cv”,true)

> db.system.users.find()

…”readOnly” : true…

5.刪除磨輪用戶

> use dbname (admin or 51cv ,etc)

> db.system.users.remove({user:”haha”})

> db.system.users.find()

6.用戶登錄數(shù)據(jù)庫(kù)測(cè)試

for:mongod dbname -u uname -p password

mongo admin -u zjx -p tsjianxin

mongodb 刪除后為什么不釋放空間

原因是mongodb設(shè)計(jì)的本身機(jī)制問(wèn)題造成的。

首先,mongodb在創(chuàng)建數(shù)據(jù)文件時(shí),會(huì)根據(jù)64M,128M,256M…遞增的方式產(chǎn)生數(shù)據(jù)文件,更大數(shù)據(jù)文件為2G,增大到2G之后,后面新增的數(shù)據(jù)文件都占用2G空間。

當(dāng)刪除某一個(gè)表的數(shù)據(jù)時(shí),mongodb會(huì)標(biāo)記你刪除該表所在數(shù)據(jù)文念或件位置為:該部分的數(shù)據(jù)已經(jīng)刪除,但是不會(huì)釋放該數(shù)據(jù)文件櫻高桐所占用的空間,當(dāng)有新的數(shù)據(jù)進(jìn)來(lái)之后,會(huì)將數(shù)據(jù)分配到該數(shù)據(jù)文件中。

一方面是:刪除文件后不產(chǎn)生多余的數(shù)據(jù)碎片,

另一方面不做數(shù)據(jù)的大規(guī)模遷移,減少mongodb內(nèi)部的IO操作。

所以在刪除數(shù)據(jù)表之后,會(huì)發(fā)現(xiàn)系統(tǒng)空間并沒(méi)有釋放,從mongodb本身看,空間已經(jīng)釋放了,被刪除數(shù)據(jù)的空間依然可用;

但從系統(tǒng)角度看,空間沒(méi)有釋放,并不會(huì)影響數(shù)據(jù)的脊坦存儲(chǔ)。

比較慢的方法:可以嘗試給這個(gè)數(shù)據(jù)庫(kù)增加一個(gè) replica-set,枯鄭等新加的結(jié)點(diǎn)和老數(shù)據(jù)同步了之后就可以停掉老數(shù)據(jù)庫(kù)并刪除老數(shù)據(jù),以新結(jié)點(diǎn)對(duì)外提供服務(wù),此時(shí)數(shù)據(jù)庫(kù)空間應(yīng)該已經(jīng)整理好并壓縮到最小了。這個(gè)過(guò)程自己并不可控,200 GB 的話要同步多久無(wú)法預(yù)估,但是不會(huì)太影響 mongodb 繼續(xù)喊判提供服務(wù)。

比較快的方法:用 mongodump/mongoexport 導(dǎo)出所有數(shù)據(jù),可以遠(yuǎn)程導(dǎo)出,倒完之后再用 mongorestore/mongoimport

恢復(fù)數(shù)據(jù)

。這個(gè)操作會(huì)導(dǎo)致 mongodb 鎖數(shù)據(jù)庫(kù),無(wú)法對(duì)外提供服務(wù),如果鎖了也無(wú)所謂可以用這個(gè)方法,200 GB 說(shuō)不定需要小半天的時(shí)間,得自己估量一下。

另外沒(méi)滲頌,db.repairDatabase() 效果很有限,且會(huì)導(dǎo)致長(zhǎng)時(shí)間鎖數(shù)據(jù)庫(kù),不用為好。mongodb 解決磁盤問(wèn)題比較好的方法是用 auto-sharding 將數(shù)據(jù)分?jǐn)偟蕉嗯_(tái)機(jī)器上,不過(guò)這個(gè)事情得提前計(jì)劃好,一旦數(shù)據(jù)庫(kù)已經(jīng)非常大了,能做的事情就很少了。

關(guān)于mongo按時(shí)間刪除數(shù)據(jù)庫(kù)的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。

創(chuàng)新互聯(lián)服務(wù)器托管擁有成都T3+級(jí)標(biāo)準(zhǔn)機(jī)房資源,具備完善的安防設(shè)施、三線及BGP網(wǎng)絡(luò)接入帶寬達(dá)10T,機(jī)柜接入千兆交換機(jī),能夠有效保證服務(wù)器托管業(yè)務(wù)安全、可靠、穩(wěn)定、高效運(yùn)行;創(chuàng)新互聯(lián)專注于成都服務(wù)器托管租用十余年,得到成都等地區(qū)行業(yè)客戶的一致認(rèn)可。


當(dāng)前題目:MongoDB定時(shí)清除數(shù)據(jù),輕松解決庫(kù)容量問(wèn)題(mongo按時(shí)間刪除數(shù)據(jù)庫(kù))
文章網(wǎng)址:http://www.5511xx.com/article/dhpghic.html