Mongodb

是否可以將 mongodb 索引移動到另一個文件系統?

  • May 28, 2019

是否可以分離 MongoDB 文件位置,以便索引位於另一個文件系統上?

在下面的範例中,我有 1.5TB 數據 + 330GB 索引的數據庫。我有一個非常快的儲存空間,但不足以容納整個數據。我假設如果我將索引移到那裡,我可以獲得更好的性能。

有沒有辦法這樣做?

# ls -l /data/mongodb --block-size=G
total 1962G
-rw-------. 1 root root    1G May 27 20:17 collection-0--8049282980716619517.wt
-rw-------. 1 root root    1G May 27 20:17 collection-2--8049282980716619517.wt
-rw-------. 1 root root    1G May 27 20:17 collection-4--8049282980716619517.wt
-rw-------. 1 root root 1627G May 27 20:17 collection-7--8049282980716619517.wt
drwx------. 2 root root    1G May 27 20:14 diagnostic.data
-rw-------. 1 root root    1G May 27 20:17 index-1--8049282980716619517.wt
-rw-------. 1 root root    1G May 27 20:17 index-3--8049282980716619517.wt
-rw-------. 1 root root    1G May 27 20:17 index-5--8049282980716619517.wt
-rw-------. 1 root root    1G May 27 20:17 index-6--8049282980716619517.wt
-rw-------. 1 root root   15G May 27 20:14 index-8--8049282980716619517.wt
-rw-------. 1 root root  320G May 27 20:17 index-9--8049282980716619517.wt
drwx------. 2 root root    1G May 27 13:54 journal
-rw-------. 1 root root    1G May 27 20:17 _mdb_catalog.wt
-rw-------. 1 root root    0G May 27 20:17 mongod.lock
-rw-------. 1 root root    1G May 27 20:17 sizeStorer.wt
-rw-------. 1 root root    1G May 23 12:50 storage.bson
-rw-------. 1 root root    1G May 23 12:50 WiredTiger
-rw-------. 1 root root    1G May 27 20:17 WiredTigerLAS.wt
-rw-------. 1 root root    1G May 23 12:50 WiredTiger.lock
-rw-------. 1 root root    1G May 27 20:17 WiredTiger.turtle
-rw-------. 1 root root    1G May 27 20:17 WiredTiger.wt
#

需要明確的是,此功能僅在使用 WiredTiger 儲存引擎時可用。

要使用,請像這樣呼叫 mongod:

mongod --dbpath /tmp --storageEngine wiredTiger --wiredTigerDirectoryForIndexes

在您的 dbpath 中,您將看到一個名為 index 的目錄,其中將儲存索引。

還將 yaml 更新為

storage:
 engine: wiredTiger
wiredTiger:
 engineConfig:
 directoryForIndexes: true

請注意在測試環境中嘗試一次。請詢問是否需要任何進一步的幫助。

來源:https ://jira.mongodb.org/browse/SERVER-965

引用自:https://dba.stackexchange.com/questions/239175