有关Mongodb数据库中增加与移除shard server的方法,包括增加新的配置文件,启动mongod实例,初始化 set 集群,增加shard与移除shard的方法。
Mongodb增加、移除Shard Server实例。
shard服务器(Shard Server):
Shard服务器是存储实际数据的分片,每个Shard可以是一个mongod实例,也可以是一组mongod实例构成的Replica Sets。
1、增加新的配置文件,并启动mongod实例
复制代码 代码示例:
#14
mkdir -p /data/mongodb/shard311
./mongod -f /opt/mongodb-
linux-x86_64-2.2.0/conf/mongod_3.conf
#16
mkdir -p /data/mongodb/shard32
./mongod -f /opt/mongodb-linux-x86_64-2.2.0/conf/mongod_3.conf
#23
mkdir -p /data/mongodb/shard33
./mongod -f /opt/mongodb-linux-x86_64-2.2.0/conf/mongod_3.conf
2、初始化 set 集群
复制代码 代码示例:
/opt/mongodb-linux-x86_64-2.2.0/bin/mongo -port 10003
config = {_id: 'shard3', members: [
{_id: 0, host: '192.168.1.14:10003', priority:1},
{_id: 1, host: '192.168.1.16:10003'},
{_id: 2, host: '192.168.1.23:10003'}]};
rs.initiate(config);
3、增加shard
复制代码 代码示例:
/opt/mongodb-linux-x86_64-2.2.0/bin/mongo 192.168.1.14:10000/admin
db.runCommand( {
addshard : "shard3/192.168.1.14:10003,192.168.1.16:10003,192.168.1.23:10003",
name:"shard3",
maxsize:20480,
allowLocal:true } );
4、移除shard
复制代码 代码示例:
db.runCommand({"removeshard" : "shard3/192.168.1.14:10003,192.168.1.16:10003,192.168.1.23:10003"});
注意:
三台服务器clock不同步导致不能分片的问题,同步后就好了。
此问题太频繁了,难道每天定时要同步三台服务器的clock?
移除shard时间会比较久,printShardingStatus()时会显示状态”draining” : true.