mongodb 資料檔案太大

2021-06-19 11:47:34 字數 1319 閱讀 7809

問題: 開發伺服器mongodb資料檔案太大。占用近80g,其中某個db占用最大(運營環境這個db的資料只有3g大小)

分析: 開發環境有大量測試的 增加/刪除/修改 操作, 長期以來會導致資料檔案非常大,但 實際儲存資料並不是很多.

129m db_name.1

2.1g db_name.10

2.1g db_name.11

2.1g db_name.12

2.1g db_name.13

2.1g db_name.14

2.1g db_name.15

2.1g db_name.16

2.1g db_name.17

2.1g db_name.18

2.1g db_name.19

257m db_name.2

2.1g db_name.20

2.1g db_name.21

2.1g db_name.22

2.1g db_name.23

2.1g db_name.24

2.1g db_name.25

2.1g db_name.26

2.1g db_name.27

2.1g db_name.28

2.1g db_name.29

513m db_name.3

2.1g db_name.30

2.1g db_name.31

操作:a) 刪除許多開發測試資料後(db.collection.remove()),資料檔案顯然是不會變小的.

b) /usr/local/mongodb-new/bin/mongodump --db mydb --host 127.0.0.1 --port=27017 -uadmin -p123

c) 關閉mongodb

d) cd /data/mongodb/ ; rm db_name.*

e) 啟動mongodb;啟動後登陸mongo 確認原來的mongo庫已被刪除(正常情況下show dbs已經看不到原來的資料庫) ; use db_name;db.adduser('admin','123');

f) /usr/local/mongodb-new/bin/mongorestore --db mydb --host=127.0.0.1 --port=27017 -uadmin -p123 dump/mydb/

結果:**後mongodb資料檔案如下:

65m db_name.0

129m db_name.1

257m db_name.2

513m db_name.3

> show dbs;

db_name 1.953125gb

壓縮 MongoDB 的資料檔案

mongodb採用了磁碟空間預分配的機制,為了避免磁碟碎片以及使用mmap後造成的近一步的記憶體碎片,但是隨著資料的增刪除改操作,資料檔案不可避免的會產生空洞,造成磁碟空間和記憶體的浪費。本文說的是這方面的壓縮,資料使用某些壓縮演算法進行壓縮的討論不在此範圍。在mongodb 中,大概有兩種方法可以...

MongoDB資料檔案備份與恢復

mongodb資料檔案備份與恢復 備份與恢復資料對於管理任何資料儲存系統來說都是非常重要的。1 冷備份與恢復 建立資料檔案的副本 前提是要停止mongodb伺服器 也就是直接copy mongodb將所有資料都儲存在資料目錄下,預設是 data db windows下是c data db 啟動mon...

mongodb資料檔案格式 二

mongodb資料檔案格式 本文適合於對mongodb有一定了解的朋友 閱讀。mongodb的資料檔案存在dbpath選項指定的目錄裡。每個庫 database 都有一系列的檔案 dbname.ns,dbname.0,dbname.1,資料檔案也叫pdfile,意思是portable data fi...