在windows环境下配置mongoDB集群
生活随笔
收集整理的這篇文章主要介紹了
在windows环境下配置mongoDB集群
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
在windows環(huán)境下配置mongoDB集群
mongodb官網(wǎng)
官網(wǎng)分片文檔
首先感謝這次參考的文章:
mongodb搭建高可用分片集群示例-天才臥龍
MongoDB高可用集群搭建示例-lizh
配置中用到端口劃分匯總:
(本次配置一共用了2個mongos、3個confiigserver、3個shard)
| configR1(端口:27018) | configR2(端口:27028) | configR3(端口:27038) |
| Shard1R1(端口:27011) | Shard1R2(端口:27021) | Shard1R3(端口:27031) |
這是這次配置所需要用到的端口
配置的過程:
1. 新建文件加存放mongodb集群所需配置文件和數(shù)據(jù)
2. 在每個config文件夾中新建所需文件
3. 在 config.conf里編寫配置內(nèi)容
net:port: 27018 #config1的端口27018 config2為27028 config3為27038bindIp: 0.0.0.0 #允許連接地址,這里統(tǒng)一設置為允許任何ip連接 systemLog:destination: filelogAppend: truepath: D:\developTool\mongodb\mongoCluster\configR1\log\config.log #config的日志存儲地址,config2和config3修改路徑即可 storage:dbPath: D:\developTool\mongodb\mongoCluster\configR1\data #config的數(shù)據(jù)存儲地址,config2和config3修改路徑即可journal:enabled: true #數(shù)據(jù)故障恢復和持久化,肯定是開啟 #processManagement: # fork: true #linux下打開此設置,Windows環(huán)境下后臺啟動需要注冊服務, # pidFilePath: /mongo/config/run/mongod.pid #副本集名稱設置 replication:replSetName: configs #分片集群角色,配置服務器的固定值 sharding:clusterRole: configsvr #這里是集群安全認證配置,首次配置啟動集群不打開此配置,先留著,后面再說 #security: #keyFile: #authorization: enabled4. configR2、R3的配置一樣,只是端口和路徑進行修改
5. 新建shard文件夾以及目錄下的文件
(shardR1下新建shard1,因為一個shard沒有做分片處理,如果后續(xù)做分片處理可以新建shard2、3等等)
(shard1下新建data、log文件以及shard.conf配置文件)
6. 在shard.conf里寫配置內(nèi)容(shardR2和shardR3下的shard1同理配置,修改端口和路徑即可)
net:port: 27011 #shard1的端口27011 ,shard2端口27021 ,shard2端口27031bindIp: 0.0.0.0 systemLog:destination: filelogAppend: truepath: D:\developTool\mongodb\mongoCluster\shardR1\shard1\log\shard.log #shard1R1的路徑,shard1R2和shard1R3做對應修改即可 storage:dbPath: D:\developTool\mongodb\mongoCluster\shardR1\shard1\data #shard1R1的路徑,shard1R2和shard1R3做對應修改即可journal:enabled: true #processManagement: # fork: true # pidFilePath: /mongo/shard1/run/mongod.pid replication:replSetName: shard1 sharding:clusterRole: shardsvr #集群中角色歸屬7. 再mongosR1下新建文件以及配置文件
8. 在mongos.conf里編寫配置
systemLog:destination: filelogAppend: truepath: D:\developTool\mongodb\mongoCluster\mongosR1\log\mongos.log #mongos沒有數(shù)據(jù)存儲地址,只有日志輸出地址,mongosR2下做對應的地址調(diào)整 # network interfaces net:port: 27019 # mongosR1的端口,mongosR2為27029bindIp: 0.0.0.0 setParameter:enableLocalhostAuthBypass: false #注意!此處配置的連接地址為配置服務器config Serve的副本集名稱和所在服務器地址以及端口 sharding:configDB: configs/127.0.0.1:27018,127.0.0.1:27028,127.0.0.1:270389. 啟動服務,分片集群啟動時一定要按照config server,shard ,mongos的順序啟動
在安裝mongodb的bin目錄下啟動dos命令:
./mongod -f D:\developTool\mongodb\mongoCluster\configR1\config.conf(1) 啟動完成之后新打開一個dos窗口進入一臺configserver
./mongo -host 127.0.0.1 --port 27018(2) 進入之后在dos界面配置配置器的服務集:
config = { _id : "configs", members : [ {_id : 0, host : "127.0.0.1:27018" }, {_id : 1, host : "127.0.0.1:27028" }, {_id : 2, host : "127.0.0.1:27038" } ] }(3) 初始化副本集:
rs.initiate(config)(4) 查看副本集狀態(tài):
rs.status()
(執(zhí)行完成之后對應data文件下會產(chǎn)生文件)
10.
(1) 在開啟三個dos窗口分別啟動shardR1的shard1、shardR2的shard1和shardR3的shard1
./mongod -f D:\developTool\mongodb\mongoCluster\shardR1\shard1\shard.conf ./mongod -f D:\developTool\mongodb\mongoCluster\shardR2\shard1\shard.conf ./mongod -f D:\developTool\mongodb\mongoCluster\shardR3\shard1\shard.conf(2) 打開新的dos窗口連接shardR1
./mongo --port 27011(3) 配置shard1的副本集:
config = { _id : "shard1", members : [ {_id : 0, host : "127.0.0.1:27011"}, {_id : 1, host : "127.0.0.1:27021"}, {_id : 2, host : "127.0.0.1:27031"} ] }(4) 初始化副本集:
rs.initiate(config);11.
(1) 分別打開三個新的dos窗口啟動前端路由器mongosR1,mongosR2
./mongos -f D:\developTool\mongodb\mongoCluster\mongosR1\mongos.conf ./mongos -f D:\developTool\mongodb\mongoCluster\mongosR2\mongos.conf(2) 新開一個dos窗口:連接任意一個mongos
./mongo --port 27019(3) 使用admin庫,啟用集群分片,創(chuàng)建用戶
use admin;sh.addShard("shard1/127.0.0.1:27011,127.0.0.1:27021,127.0.0.1:27031");db.createUser( { user: "admin", pwd: "Zaq12wsx", roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] } )(4) 關閉當前mongos 連接,重連如下:
./mongo --port 27019 -u "admin" -p "Zaq12wsx" --authenticationDatabase "admin"#設置一下chunk的大小:use config;#設置塊大小為1M是方便實驗,不然需要插入海量數(shù)據(jù)db.setting.save({"_id":"chunksize","value":1})#cda配置use cda;#啟用數(shù)據(jù)庫分片sh.enableSharding("cda")#創(chuàng)建集合db.createCollection("cdaDocLibMongo");#以" uuid "作哈希索引分片鍵db.cdaDocLibMongo.createIndex({"uuid":"hashed"})#對cdaDocLibMongo集合啟用分片sh.shardCollection( " cda.cdaDocLibMongo", { " uuid " : "hashed" } ) # 查看分片情況sh.status() # 查看分片列表,所有分片db.runCommand({listShards:1}) use config;# 查詢當前塊大小db.settings.find({"_id":"chunksize"})# 修改塊大小db.settings.save( { _id:"chunksize", value: 64 } );到此總共開啟了8個服務(configserver3 、shard3 、mongos*2)
啟動順序一定要按照configserver、shard、mongos順序啟動
總結
以上是生活随笔為你收集整理的在windows环境下配置mongoDB集群的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 处理bootstrap-table分页复
- 下一篇: 测试辐射发射时,为什么要将天线分为垂直和