時(shí)尚網(wǎng)站哪里有整站優(yōu)化
Windows系統(tǒng)實(shí)現(xiàn)多磁盤存儲(chǔ)
- 1.為什么
- 2.多磁盤存儲(chǔ)
- 2.1 數(shù)據(jù)庫(kù)配置
- 2.2 文件夾磁盤映射
- 2.3 創(chuàng)建新的數(shù)據(jù)集
- 3.總結(jié)
1.為什么
這里僅針對(duì)只有一臺(tái)Windows系統(tǒng)服務(wù)器的情景:
- 當(dāng)服務(wù)器存儲(chǔ)不足時(shí),或者要接入更多的數(shù)據(jù),就會(huì)掛載新磁盤,那如何將數(shù)據(jù)存儲(chǔ)在掛載的新磁盤上呢?
- 當(dāng)前服務(wù)器有多個(gè)大容量磁盤,MongoDB要存儲(chǔ)的數(shù)據(jù)一個(gè)磁盤存儲(chǔ)不夠時(shí)如何處理?
這個(gè)時(shí)候就需要多磁盤存儲(chǔ)了。
2.多磁盤存儲(chǔ)
2.1 數(shù)據(jù)庫(kù)配置
將storage.directoryPerDB
設(shè)置為true
,這樣設(shè)置的目的是每個(gè)數(shù)據(jù)庫(kù)放在獨(dú)立的文件夾內(nèi):
storage:dbPath: <string>journal:enabled: <boolean>commitIntervalMs: <num># 默認(rèn)為false設(shè)置為truedirectoryPerDB: true
修改之前:
不同數(shù)據(jù)集的數(shù)據(jù)分布在多個(gè)文件里,設(shè)置后,添加了一個(gè)test
數(shù)據(jù)集:
2.2 文件夾磁盤映射
在創(chuàng)建數(shù)據(jù)集之前
使用mklink創(chuàng)建映射,目的是MongoDB數(shù)據(jù)庫(kù)的文件通過映射放置到其他磁盤下,我們以image
為例進(jìn)行說明:
- 在
非dbPath
磁盤下創(chuàng)建一個(gè)目錄
- 創(chuàng)建映射
# 語法
mklink /D LinkFolderName TargetFolderPath# 測(cè)試
mklink /D D:\mongodb\data\image E:\mongodb\data\imageC:\Users\Administrator>mklink /D D:\mongodb\data\image E:\mongodb\data\image
為 D:\mongodb\data\image <<===>> E:\mongodb\data\image 創(chuàng)建的符號(hào)鏈接
創(chuàng)建成功后,在dbPath
目錄下出現(xiàn)了一個(gè)類似快捷方式但是類型是文件夾的
image目錄:
要特別注意的是:目錄符號(hào)鏈接不會(huì)在物理上復(fù)制文件,它們只是提供了一個(gè)不同名稱的訪問路徑。文件僅存儲(chǔ)在TargetFolderPath
目錄下也就是E:\mongodb\data\image
目錄下,這樣,test庫(kù)和image庫(kù)就存儲(chǔ)在不同的磁盤上了。
2.3 創(chuàng)建新的數(shù)據(jù)集
創(chuàng)建跟映射目錄名稱一致的新的數(shù)據(jù)集image
,創(chuàng)建成功后可發(fā)現(xiàn)dbPath
目錄下有數(shù)據(jù)集的文件了,實(shí)際上并非在dbPath
所在的磁盤,而是在映射目錄的磁盤。
3.總結(jié)
僅適合非分布式,Windows多磁盤的場(chǎng)景,Linux未進(jìn)行測(cè)試。