Prepare three servers, deployment scenarios are as follows:
1, the installation mongodb, detailed needless to say;
2, create an instance respectively create the directory config, configServer, shard1, shard2, shard3, logs, configuration files are stored examples
3, the configuration server instance configServer.conf:
systemlog: destination: file logAppend: true path: /usr/local/server/mongodb/logs/configServer.log storage: dbPath: /usr/local/server/mongodb/configServer/data journal: enabled: true directoryPerDB: true # Whether a library folder engine: wiredTiger # Data Engine wiredTiger: #WT engine configuration engineConfig: cacheSizeGB: 2 # is set to 4G, the default is half the physical memory directoryForIndexes: true # Whether the index will be stored separately according to the database name journalCompressor: zlib collectionConfig: # table compression configuration blockCompressor: zlib indexConfig: # Index Configuration prefixCompression: true processManagement: # Process Management fork: true pidFilePath: /usr/local/server/mongodb/configServer/mongod.pid net: port: 29004 Bindip: 0.0.0.0 sharding: clusterRole: configsvr replication: replSetName: configReplSet
. 4, configure routing server mongos.conf
systemlog: destination: file logAppend: true path: /usr/local/server/mongodb/logs/mongos.log processManagement: fork: true pidFilePath: /usr/local/server/mongodb/mongos/mongod.pid net: port: 29005 Bindip: 0.0.0.0 sharding: ConfigDB: configReplSet / 192.168.131.8: 29004,192.168.131.9: 29004,192.168.131.10: 29004
. 5, slice configuration server shard1, shard2, shard3
profile shard1.conf:
systemlog: destination: file logAppend: true path: /usr/local/server/mongodb/logs/shard1.log storage: dbPath: /usr/local/server/mongodb/shard1/data journal: enabled: true directoryPerDB: true engine: wiredTiger wiredTiger: engineConfig: cacheSizeGB: 2 directoryForIndexes: true journalCompressor: zlib collectionConfig: blockCompressor: zlib indexConfig: prefixCompression: true processManagement: fork: true pidFilePath: /usr/local/server/mongodb/shard1/mongod.pid net: port: 29001 bindIp: 0.0.0.0 replication: replSetName: shard1 sharding: clusterRole: shardsvr archiveMovedChunks: true
配置shard2.conf:
systemLog: destination: file logAppend: true path: /usr/local/server/mongodb/logs/shard2.log storage: dbPath: /usr/local/server/mongodb/shard2/data journal: enabled: true directoryPerDB: true #是否一个库一个文件夹 engine: wiredTiger #数据引擎 wiredTiger: engineConfig: cacheSizeGB: 2 directoryForIndexes: true journalCompressor: zlib collectionConfig: blockCompressor: zlib indexConfig: prefixCompression: true processManagement: #进程管理 fork: true pidFilePath: /usr/local/server/mongodb/shard2/mongod.pid net: port: 29002 bindIp: 0.0.0.0 replication: replSetName: shard2 sharding: clusterRole: shardsvr archiveMovedChunks: true
配置shard3.conf:
systemLog:
destination: file
logAppend: true
path: /usr/local/server/mongodb/logs/shard3.log
storage:
dbPath: /usr/local/server/mongodb/shard3/data
journal:
enabled: true
directoryPerDB: true #是否一个库一个文件夹
engine: wiredTiger #数据引擎
wiredTiger:
engineConfig:
cacheSizeGB: 2
directoryForIndexes: true
journalCompressor: zlib
collectionConfig:
blockCompressor: zlib
indexConfig:
prefixCompression: true
processManagement: #进程管理
fork: true
pidFilePath: /usr/local/server/mongodb/shard3/mongod.pid
net:
port: 29003
bindIp: 0.0.0.0
replication:
replSetName: shard3
sharding:
clusterRole: shardsvr
archiveMovedChunks: true
6、分别启动mongodb启动实例
/usr/local/server/mongodb/bin/mongos --config /usr/local/server/mongodb/config/mongos.conf
/usr/local/server/mongodb/bin/mongod --config /usr/local/server/mongodb/config/configServer.conf
/usr/local/server/mongodb/bin/mongod --config /usr/local/server/mongodb/config/shard1.conf
/usr/local/server/mongodb/bin/mongod --config /usr/local/server/mongodb/config/shard2.conf
/usr/local/server/mongodb/bin/mongod --config /usr/local/server/mongodb/config/shard3.conf
7、配置服务器/usr/local/server/mongodb/bin/mongo --port 29004
use admin
添加成员:
rs.initiate(
{
_id: "configReplSet",
configsvr: true,
members: [
{ _id : 1, host : "192.168.131.8:29004", priority: 30 },
{ _id : 2, host : "192.168.131.10:29004", priority: 20 },
{ _id : 3, host : "192.168.131.9:29004", priority: 10 }
]
}
);
8、分别配置分片服务器
/usr/local/server/mongodb/bin/mongo --port 29001 连接shard1
use admin;
rs.initiate({_id:'shard1',members:[
{_id:1,host:'192.168.131.8:29001', priority: 30},
{_id:2,host:'192.168.131.10:29001', priority: 20},
{_id:3,host:'192.168.131.9:29001', priority: 0,arbiterOnly: true}
]});
其他分片服务器一样配置,略。。。
9、配置路由服务器
/usr/local/server/mongodb/bin/mongo --port 29005;
use admin;
路由服务器注册分片:
db.runCommand({addshard: "shard1/192.168.131.8:29001,192.168.131.9:29001,192.168.131.10:29001"});
db.runCommand({addshard: "shard2/192.168.131.8:29002,192.168.131.9:29002,192.168.131.10:29002"});
db.runCommand({addshard: "shard3/192.168.131.8:29003,192.168.131.9:29003,192.168.131.10:29003"});
# 查看
db.printShardingStatus()
启动分片数据库test:
db.runCommand({enablesharding: "test"});
设置分片键:
sh.shardCollection("test.use",{"usename":1});
到此配置完成。