MongoDB配置複製集和分片!!!
阿新 • • 發佈:2018-11-12
首先在確保你的電腦安裝過mongodb和把mongodb的bin目錄寫到path裡面並且成功執行過的情況下來操作如下步驟
複製集:
1同一個資料夾下面寫入新建三個資料夾如下圖
類似與這種,然後再每個檔案下新建立兩個檔案(nodex對應datax和logx)和一個win的可執行檔案(PS:可執行檔案就是你新建立一個txt的檔案然後儲存的直接把後墜名改為.bat)然後再編輯可執行檔案在其中寫入:
mongod --dbpath=D:\mongodb\nodex\datax--port 10001 --logpath=D:\mongodb\nodex\logsx\nodex.log --replSetreplcopy/192.168.8.123:10002
其中的x代表數字 其中兩個要注意:--port 這個是指定當前服務埠
--replSet replcopy/192.168.8.123:10002 代表複製集的其他小夥伴的ip和埠(儘量然你的複製集形成一個有向環)
然後點選可執行檔案出現下圖就ok了
然後檢視這個服務是不是可以使用
輸入以下命令:
mongo 192.168.8.123:10001/admin
顯示如下
說明都ok了
二安裝分片
建立一個分片需要三個角色
1. Configserver(角色一)
建立一個config_server目錄:
然後再目錄下面建立劃紅線的兩個目錄
mongod --port 30000--dbpath=D:\mongodb\config_ser\config --fork --logpath=D:\mongodb\config_ser\logsconfig.log –directoryperdb
2. mongos(角色二)
建立mongos目錄在目錄下
可執行檔案如下:
mongos --port 40000--configdb 192.168.8.123:30000 --logpath D:\mongodb\mongos\logs\mongos.log
3. shard server(角色三)
建立shard目錄在shard目錄下建立如下
然後再1和2裡面建立可執行檔案,內容如下
mongod --port 20000 --dbpath D:\mongodb\Shard\shard1--logpath D:\mongodb\Shard\log\log1.log
根據情況來修改配置
然後點選四個執行檔案,服務啟動之後
輸入:
mongo admin --port 40000
2018-06-08T20:56:50.756+0800I CONTROL [main]
mongos>db.runCommand({addshard:"192.168.188.123:20000"})
{"shardAdded" : "shard0000", "ok" : 1 }
mongos>db.runCommand({addshard:"192.168.188.123:20001"})
{"shardAdded" : "shard0001", "ok" : 1 }
mongos>db.runCommand({enablesharding:"test"})
{"ok" : 1 }
mongos>db.runCommand({shardcollection:"test.peopleinfo",key:{"id":1}})
{"collectionsharded" : "test.peopleinfo", "ok" : 1}
mongos>use test
switchedto db test
mongos>for(var i=1;i<1000;i++){
...db.peopleinfo.insert({age:i,name:"zouguijin",addr:"shengzheng",country:"china"})
... }
WriteResult({
"nInserted" : 0,
"writeError" : {
"code" : 61,
"errmsg" :"document { _id: ObjectId('5b1a8236b0849a44f18a6de3'), age: 999.0, name:\"zouguijin\", addr: \"shengzheng\", country:\"china\" } does not contain shard key for pattern { id: 1.0 }"
}
Ok配置ok
如果覺得有用請加個關注唄