企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持知识库和私有化部署方案 广告
### :-: windows搭建mongodb分片集群 * [ ] 规划: 10.10.10.10,mongos、config server、shard server1 主节点、shard server2 仲裁、shard server3 副节点 10.10.10.11,mongos、config server、shard server1 副节点、shard server2 主节点、shard server3 仲裁 10.10.10.16,mongos、config server、shard server1 仲裁、shard server2 副节点、shard server3 主节点 端口分配:mongos:27017 config:27000 shard1:27001 shard2:27002 shard3:27003 * [ ] 进入C:\mongodb_3.2目录下 * [ ] 创建目录 ``` mkdir data\config,data\shard1,data\shard2,data\shard3 mkdir logs mkdir conf ``` * [ ] 配置服务器搭建副本集 1. 准备配置文件conf\config.conf 2. 上传到C:\mongodb_3.2\conf目录下 3. 启动10.10.10.10\11\16的config server,进入C:\mongodb_3.2\bin目录下执行(--install表示后台运行): mongod -f C:\mongodb_3.2\conf\config.conf --serviceName "MongoDB Configsvr" --serviceDisplayName "MongoDB Configsvr" --install 4. 启动服务:net start "MongoDB Configsvr" 5. 设置开机自动启动:管理工具----服务----MongoDB----启动方式设为:自动 6. 登录任意一台配置服务器,初始化配置副本集。进入C:\mongodb_3.2\bin目录下 使用docview数据库 `mongo --port 27000 docview` 定义变量(其中,”_id” : “configs”应与配置文件中配置的 replicaction.replSetName 一致, ”members” 中的 “host” 为三个节点的 ip 和 port。) ``` cfg = { _id : "configs", members : [ {_id : 0, host : "10.10.10.10:27000" }, {_id : 1, host : "10.10.10.11:27000" }, {_id : 2, host : "10.10.10.16:27000" } ] } ``` 初始化副本集 `rs.initiate(cfg)` 查看集群状态 `rs.status()` ` * [ ] 搭建分片服务器副本集-shard1 a)准备配置文件conf\shard1.conf b)上传到C:\mongodb_3.2\conf目录下 c)启动10.10.10.10\11\16的shard1 server,进入C:\mongodb_3.2\bin目录下执行(--install表示后台运行): `mongod -f C:\mongodb_3.2\conf\shard1.conf --serviceName "MongoDB Shard1" --serviceDisplayName "MongoDB Shard1" --install` d)启动服务:`net start "MongoDB Shard1"` e)设置开机自动启动:管理工具----服务----MongoDB----启动方式设为:自动 f)登录任意一台配置服务器,初始化配置副本集。进入C:\mongodb_3.2\bin目录下 使用docview数据库 `mongo --port 27001 docview` 定义变量(其中,”_id” : “configs”应与配置文件中配置的 replicaction.replSetName 一致, ”members” 中的 “host” 为三个节点的 ip 和 port。) ``` cfg = { _id : "shard1", members : [ {_id : 0, host : "10.10.10.10:27001" , priority: 2 }, {_id : 1, host : "10.10.10.11:27001" , priority: 1 }, {_id : 2, host : "10.10.10.16:27001" , arbiterOnly: true } ] } ``` 初始化副本集 `rs.initiate(cfg)` 查看集群状态 `rs.status()` * [ ] 搭建分片服务器副本集-shard2 a)准备配置文件conf\shard2.conf b)上传到C:\mongodb_3.2\conf目录下 c)启动10.10.10.10\11\16的shard2 server,进入C:\mongodb_3.2\bin目录下执行(--install表示后台运行): `mongod -f C:\mongodb_3.2\conf\shard2.conf --serviceName "MongoDB Shard2" --serviceDisplayName "MongoDB Shard2" --install` d)启动服务:net start "MongoDB Shard2" e)设置开机自动启动:管理工具----服务----MongoDB----启动方式设为:自动 f)登录任意一台配置服务器,初始化配置副本集。进入C:\mongodb_3.2\bin目录下 使用docview数据库 `mongo --port 27002 docview` 定义变量(其中,”_id” : “configs”应与配置文件中配置的 replicaction.replSetName 一致, ”members” 中的 “host” 为三个节点的 ip 和 port。) ``` cfg = { _id : "shard2", members : [ {_id : 0, host : "10.10.10.10:27002" , arbiterOnly: true }, {_id : 1, host : "10.10.10.11:27002" , priority: 2 }, {_id : 2, host : "10.10.10.16:27002" , priority: 1 } ] } ``` 初始化副本集 `rs.initiate(cfg)` 查看集群状态 `rs.status()` * [ ] 搭建分片服务器副本集-shard3 a)准备配置文件conf\shard3.conf b)上传到C:\mongodb_3.2\conf目录下 c)启动10.10.10.10\11\16的shard3 server,进入C:\mongodb_3.2\bin目录下执行(--install表示后台运行): `mongod -f C:\mongodb_3.2\conf\shard3.conf --serviceName "MongoDB Shard3" --serviceDisplayName "MongoDB Shard3" --install` d)启动服务:net start "MongoDB Shard3" e)设置开机自动启动:管理工具----服务----MongoDB----启动方式设为:自动 f)登录任意一台配置服务器,初始化配置副本集。进入C:\mongodb_3.2\bin目录下 使用docview数据库 `mongo --port 27003 docview` 定义变量(其中,”_id” : “configs”应与配置文件中配置的 replicaction.replSetName 一致, ”members” 中的 “host” 为三个节点的 ip 和 port。) ``` cfg = { _id : "shard3", members : [ {_id : 0, host : "10.10.10.10:27003" , priority: 1 }, {_id : 1, host : "10.10.10.11:27003" , arbiterOnly: true }, {_id : 2, host : "10.10.10.16:27003" , priority: 2 } ] } ``` 初始化副本集 `rs.initiate(cfg)` 查看集群状态 `rs.status()` * [ ] 配置路由服务器 a)准备配置文件conf\mongos.conf b)上传到C:\mongodb_3.2\conf目录下 c)官网下载mongos `https://www.mongodb.org/dl/win32/win32/mongodb-win32-x86_64-3.2.5.zip` d)上传mongos到C:\mongodb_3.2\bin目录下 e)启动10.10.10.10\11\16的mongos server,进入C:\mongodb_3.2\bin目录下执行(--install表示后台运行): `mongos -f C:\mongodb_3.2\conf\mongos.conf --serviceName "MongoDB Mongos" --serviceDisplayName "MongoDB Mongos" --install` f)启动服务:net start "MongoDB Mongos" g)设置开机自动启动:管理工具----服务----MongoDB----启动方式设为:自动 * [ ] 串联路由服务器与分配副本集 登录任意一台配置服务器,配置分片。进入C:\mongodb_3.2\bin目录下 使用docview数据库(必须带上) `mongo --port 27017 docview` 串联路由服务器与分配副本集 ``` sh.addShard("shard1/10.10.10.10:27001,10.10.10.11:27001,10.10.10.16:27001") sh.addShard("shard2/10.10.10.10:27002,10.10.10.11:27002,10.10.10.16:27002") sh.addShard("shard3/10.10.10.10:27003,10.10.10.11:27003,10.10.10.16:27003") ``` 查看集群状态(只显示主从节点,从节点默认不可读) `sh.status()` * [ ] 指定数据库里需要分片的集合和片键(不指定,数据全部在shard1上) 连接在mongos上,准备让指定的数据库、指定的集合分片生效。 指定docview分片生效: `db.runCommand( { enablesharding :"docview"} );` 指定数据库里需要分片的集合和片键: ``` db.runCommand( { shardcollection : "docview.app",key : {_id: "hashed"} } ) db.runCommand( { shardcollection : "docview.user",key : {_id: "hashed"} } ) db.runCommand( { shardcollection : "docview.doc",key : {md5: "hashed"} } ) ``` * [ ] 查看分片状态 ``` sh.status() db.stats() db.doc.stats() ```