mongodb簡單分片實驗
##mongodb簡單分片實驗
10.127.32.121 mongos shard1
10.127.32.123 shard3
10.127.32.125 config shard2
##安裝資料庫
安裝略
##10.127.32.121 包含mongos和shard1節點##
[root@node1 ~]# mkdir -p /home/mongodb/mongos/log
[root@node1 ~]# mkdir -p /home/mongodb/shard1/log
[root@node1 ~]# mkdir -p /home/mongodb/shard1/data
##10.127.32.125 包含config和shard2節點##
[root@node2 /]# mkdir -p /home/mongodb/config/data
[root@node2 /]# mkdir -p /home/mongodb/config/log
[root@node2 /]# mkdir -p /home/mongodb/shard2/data
[root@node2 /]# mkdir -p /home/mongodb/shard2/log
##10.127.32.123 包含shard3節點##
[root@node3 /]# mkdir -p /home/mongodb/shard3/data
[root@node3 /]# mkdir -p /home/mongodb/shard3/log
##配置並啟動shard節點
10.127.32.121
[root@node1 ~]# mongod --dbpath=/home/mongodb/shard1/data --logpath=/home/mongodb/shard1/log/shard1.log --logappend --port 27017 --shardsvr --fork
netstat -luntp |grep 27017
10.127.32.125
[root@node2 /]# mongod --dbpath=/home/mongodb/shard2/data --logpath=/home/mongodb/shard2/log/shard2.log --logappend --port 27017 --shardsvr --fork
netstat -luntp |grep 27017
10.127.32.123
[root@node3 /]# mongod --dbpath=/home/mongodb/shard3/data --logpath=/home/mongodb/shard3/log/shard3.log --logappend --port 27017 --shardsvr --fork
netstat -luntp |grep 27017
##配置並啟動config節點
10.127.32.125
[root@node2 /]# mongod --dbpath=/home/mongodb/config/data --logpath=/home/mongodb/config/log/config.log --logappend --port 27018 --configsvr --fork
netstat -luntp |grep 27018
##配置並啟動mongos節點
10.127.32.121
[root@node1 ~]# mongos --logpath=/home/mongodb/mongos/log/mongos.log --logappend --port 27019 --configdb 10.127.32.125:27018 --fork
[root@node1 ~]# netstat -luntp |grep 27019
##新增分片
(連線mongos——>add shards——>enable sharding——>對集合進行分片)
語法:
db.runCommand({addshard:"127.0.0.1:8081",allowLocal:true}) ##allowLocal:true僅僅開發時才將分片配置到本地,生產時不能這樣
單例項新增:db.runCommand({addshard:"<hostname>:<port>",maxSize:<size>,name:"<shard_name>"})
副本群集新增:db.runCommand({addshard:"<replica_set>/<hostname>:<port>",maxSize:<size>,name:"<shard_name>"})
注意:如果mongos和shard在同一伺服器上,不能透過localhost新增分片,建議透過實際IP地址。在mongos上執行下屬命令:
use admin
db.runCommand({addshard:"10.127.32.121:27017"})
db.runCommand({addshard:"10.127.32.123:27017"})
db.runCommand({addshard:"10.127.32.125:27017"})
##上述配置資訊被新增至config server
##開啟分片功能
use shard_db
for (i=0;i<=10000;i++){db.t1.insert({id:i})}
use admin
db.runCommand({"enablesharding":"shard_db"})
##對集合及逆行分片
db.runCommand({shardcollection:"<namespace>",key:"<key>"})
unique:"true/false" ##啟動對shard key的唯一性約束,預設是true
db.runCommand({"shardcollection":"shard_db.t1","key":{"_id":1}})
db.runCommand({"shardcollection":"shard_db.t1","key":{"id":1}}) ##"errmsg" : "please create an index that starts with the shard key before sharding." 預設需要建立索引
use shard_db
for (i=10001;i<=100000;i++){db.t1.insert({id:i})}
##測試分片##透過mongos
##檢視集合狀態
use shard_db
db.t1.stats()
##檢視配置庫對於分片伺服器的配置儲存,檢視分片狀態
use admin
mongos> db.printShardingStatus()
##檢視叢集對t1的自動分片機制配置資訊
use config
mongos> db.shards.find()
##刪除shard
db.runCommand({"removeshard" : "ip:port"})
##修改shard
db.runCommand({"moveprimary" : "test","to" : "ip:port"})
##新增shard
db.runCommand({addshard:"ip:port",allowLocal:true})
10.127.32.121 mongos shard1
10.127.32.123 shard3
10.127.32.125 config shard2
##安裝資料庫
安裝略
##10.127.32.121 包含mongos和shard1節點##
[root@node1 ~]# mkdir -p /home/mongodb/mongos/log
[root@node1 ~]# mkdir -p /home/mongodb/shard1/log
[root@node1 ~]# mkdir -p /home/mongodb/shard1/data
##10.127.32.125 包含config和shard2節點##
[root@node2 /]# mkdir -p /home/mongodb/config/data
[root@node2 /]# mkdir -p /home/mongodb/config/log
[root@node2 /]# mkdir -p /home/mongodb/shard2/data
[root@node2 /]# mkdir -p /home/mongodb/shard2/log
##10.127.32.123 包含shard3節點##
[root@node3 /]# mkdir -p /home/mongodb/shard3/data
[root@node3 /]# mkdir -p /home/mongodb/shard3/log
##配置並啟動shard節點
10.127.32.121
[root@node1 ~]# mongod --dbpath=/home/mongodb/shard1/data --logpath=/home/mongodb/shard1/log/shard1.log --logappend --port 27017 --shardsvr --fork
netstat -luntp |grep 27017
10.127.32.125
[root@node2 /]# mongod --dbpath=/home/mongodb/shard2/data --logpath=/home/mongodb/shard2/log/shard2.log --logappend --port 27017 --shardsvr --fork
netstat -luntp |grep 27017
10.127.32.123
[root@node3 /]# mongod --dbpath=/home/mongodb/shard3/data --logpath=/home/mongodb/shard3/log/shard3.log --logappend --port 27017 --shardsvr --fork
netstat -luntp |grep 27017
##配置並啟動config節點
10.127.32.125
[root@node2 /]# mongod --dbpath=/home/mongodb/config/data --logpath=/home/mongodb/config/log/config.log --logappend --port 27018 --configsvr --fork
netstat -luntp |grep 27018
##配置並啟動mongos節點
10.127.32.121
[root@node1 ~]# mongos --logpath=/home/mongodb/mongos/log/mongos.log --logappend --port 27019 --configdb 10.127.32.125:27018 --fork
[root@node1 ~]# netstat -luntp |grep 27019
##新增分片
(連線mongos——>add shards——>enable sharding——>對集合進行分片)
語法:
db.runCommand({addshard:"127.0.0.1:8081",allowLocal:true}) ##allowLocal:true僅僅開發時才將分片配置到本地,生產時不能這樣
單例項新增:db.runCommand({addshard:"<hostname>:<port>",maxSize:<size>,name:"<shard_name>"})
副本群集新增:db.runCommand({addshard:"<replica_set>/<hostname>:<port>",maxSize:<size>,name:"<shard_name>"})
注意:如果mongos和shard在同一伺服器上,不能透過localhost新增分片,建議透過實際IP地址。在mongos上執行下屬命令:
use admin
db.runCommand({addshard:"10.127.32.121:27017"})
db.runCommand({addshard:"10.127.32.123:27017"})
db.runCommand({addshard:"10.127.32.125:27017"})
##上述配置資訊被新增至config server
##開啟分片功能
use shard_db
for (i=0;i<=10000;i++){db.t1.insert({id:i})}
use admin
db.runCommand({"enablesharding":"shard_db"})
##對集合及逆行分片
db.runCommand({shardcollection:"<namespace>",key:"<key>"})
unique:"true/false" ##啟動對shard key的唯一性約束,預設是true
db.runCommand({"shardcollection":"shard_db.t1","key":{"_id":1}})
db.runCommand({"shardcollection":"shard_db.t1","key":{"id":1}}) ##"errmsg" : "please create an index that starts with the shard key before sharding." 預設需要建立索引
use shard_db
for (i=10001;i<=100000;i++){db.t1.insert({id:i})}
##測試分片##透過mongos
##檢視集合狀態
use shard_db
db.t1.stats()
##檢視配置庫對於分片伺服器的配置儲存,檢視分片狀態
use admin
mongos> db.printShardingStatus()
##檢視叢集對t1的自動分片機制配置資訊
use config
mongos> db.shards.find()
##刪除shard
db.runCommand({"removeshard" : "ip:port"})
##修改shard
db.runCommand({"moveprimary" : "test","to" : "ip:port"})
##新增shard
db.runCommand({addshard:"ip:port",allowLocal:true})
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/27067062/viewspace-2084219/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- mongodb簡單副本集實驗MongoDB
- MongoDB分片MongoDB
- MongoDB 分片管理MongoDB
- MongoDB之分片MongoDB
- mongodb分片搭建MongoDB
- mongodb分片balanceMongoDB
- mongodb 分片叢集建立分片集合MongoDB
- MongoDB分片叢集新增分片(自用)MongoDB
- mongodb之shard分片MongoDB
- mongodb複製+分片MongoDB
- MongoDB 簡單上手MongoDB
- MongoDB 分片叢集搭建MongoDB
- MongoDB叢集之分片MongoDB
- 搭建MongoDB分片叢集MongoDB
- MongoDB——簡單增、刪、改、查實踐MongoDB
- 簡單的RIP實驗
- mongodb 分片叢集設定MongoDB
- mongodb分片物理搬遷方案MongoDB
- MongoDB分片叢集常用操作MongoDB
- 【Mongodb】分片加複製集MongoDB
- MongoDB 3.4配置sharding分片MongoDB
- mongodb 分片群集(sharding cluster)MongoDB
- MongoDB分片鍵選擇指南MongoDB
- 【Mongodb】分片複製集環境新增新的分片MongoDB
- Oracle GoldenGate 簡單實驗OracleGo
- MongoDB分片儲存的叢集架構實現MongoDB架構
- MongoDB索引的簡單理解MongoDB索引
- C#簡單操作MongoDBC#MongoDB
- Nagios監控mongodb分片叢集服務實戰iOSMongoDB
- MongoDB分片叢集chunk的概念MongoDB
- MongoDB何時考慮使用分片MongoDB
- MongoDB 分片的原理、搭建、應用MongoDB
- 高可用mongodb叢集(分片+副本)MongoDB
- 實驗6.交換機MAC地址表簡單實驗Mac
- Meteor+MongoDB 實現簡單的即時搜尋MongoDB
- 實戰:Nodejs+Mongodb+Elasticsearch 實現簡單的搜尋NodeJSMongoDBElasticsearch
- .Net Core中簡單使用MongoDBMongoDB
- NoSLQ之MongoDB簡單入門MongoDB