配置mongodb分片群集sharding clusterWord格式.docx
- 文档编号:20767932
- 上传时间:2023-01-25
- 格式:DOCX
- 页数:7
- 大小:85.35KB
配置mongodb分片群集sharding clusterWord格式.docx
《配置mongodb分片群集sharding clusterWord格式.docx》由会员分享,可在线阅读,更多相关《配置mongodb分片群集sharding clusterWord格式.docx(7页珍藏版)》请在冰豆网上搜索。
mongodshard21:
27018
mongodconfig1:
20000
mongs1:
30000
Server2
10.1.1.2
mongodshard12:
mongodshard22:
mongodconfig2:
mongs2:
Server3
10.1.1.3
mongodshard13:
mongodshard23:
mongodconfig3:
mongs3:
软件准备
1.
创建用户
groupadd-g20001mongodb
useradd-u20001-gmongodbmongodb
passwdmongodb
2.
安装monodb软件
su–mongodb
tarzxvfmongodb-linux-x86_64-1.6.2.tar
安装好后,目录结构如下:
$treemongodb-linux-x86_64-1.6.2
mongodb-linux-x86_64-1.6.2
|–GNU-AGPL-3.0
|–README
|–THIRD-PARTY-NOTICES
`–bin
|–bsondump
|–mongo
|–mongod
|–mongodump
|–mongoexport
|–mongofiles
|–mongoimport
|–mongorestore
|–mongos
|–mongosniff
`–mongostat
1directory,14files
3.
创建数据目录
根据本例sharding架构图所示,在各台sever上创建shard数据文件目录
Server1:
su–monodb
cd/home/monodb
mkdir-pdata/shard11
mkdir-pdata/shard21
Server2:
mkdir-pdata/shard12
mkdir-pdata/shard22
Server3:
mkdir-pdata/shard13
mkdir-pdata/shard23
配置relicasets
配置shard1所用到的replicasets:
cd/home/mongodb/mongodb-linux-x86_64-1.6.2/bin
./mongod–shardsvr–replSetshard1–port27017–dbpath/home/mongodb/data/shard11–oplogSize100–logpath/home/mongodb/data/shard11.log–logappend–fork
./mongod–shardsvr–replSetshard1–port27017–dbpath/home/mongodb/data/shard12–oplogSize100–logpath/home/mongodb/data/shard12.log–logappend–fork
./mongod–shardsvr–replSetshard1–port27017–dbpath/home/mongodb/data/shard13–oplogSize100–logpath/home/mongodb/data/shard13.log–logappend–fork
初始化replicaset
用mongo连接其中一个mongod,执行:
>
config={_id:
’shard1′,members:
[
{_id:
0,host:
'
10.1.1.1:
27017'
},
1,host:
10.1.1.2:
2,host:
10.1.1.3:
}]
}
rs.initiate(config);
同样方法,配置shard2用到的replicasets:
server1:
./mongod–shardsvr–replSetshard2–port27018–dbpath/home/mongodb/data/shard21–oplogSize100–logpath/home/mongodb/data/shard21.log–logappend–fork
server2:
./mongod–shardsvr–replSetshard2–port27018–dbpath/home/mongodb/data/shard22–oplogSize100–logpath/home/mongodb/data/shard22.log–logappend–fork
server3:
./mongod–shardsvr–replSetshard2–port27018–dbpath/home/mongodb/data/shard23–oplogSize100–logpath/home/mongodb/data/shard23.log–logappend–fork
’shard2′,members:
27018'
到此就配置好了二个replicasets,也就是准备好了二个shards
配置三台configserver
mkdir-p/home/mongodb/data/config
./mongod–configsvr–dbpath/home/mongodb/data/config–port20000–logpath/home/mongodb/data/config.log–logappend–fork
#configserver也需要dbpath
./mongod–configsvr–dbpath/home/mongodb/data/config–port20000–logpath/home/mongodb/data/config.log–logappend–fork
配置mongs
在server1,server2,server3上分别执行:
./mongos–configdb10.1.1.1:
20000,10.1.1.2:
20000,10.1.1.3:
20000–port30000–chunkSize5–logpath/home/mongodb/data/mongos.log–logappend–fork
#mongs不需要dbpath
ConfiguringtheShardCluster
连接到其中一个mongos进程,并切换到admin数据库做以下配置
连接到mongs,并切换到admin
./mongo10.1.1.1:
30000/admin
db
Admin
加入shards
如里shard是单台服务器,用>
db.runCommand({addshard:
“[:
]”})这样的命令加入,如果shard是replicasets,用replicaSetName/[:
port][,serverhostname2[:
port],…]这样的格式表示,例如本例执行:
“shard1/10.1.1.1:
27017,10.1.1.2:
27017,10.1.1.3:
27017″,name:
”s1″,maxsize:
20480});
“shard2/10.1.1.1:
27018,10.1.1.2:
27018,10.1.1.3:
27018″,name:
”s2″,maxsize:
注意:
在添加第二个shard时,出现error:
testdatabase已经存在的错误,这里用mongo命令连接到第二个replicaset,用db.dropDatabase()命令把test数据库给删除然后就可加入
可选参数
Name:
用于指定每个shard的名字,不指定的话系统将自动分配
maxSize:
指定各个shard可使用的最大磁盘空间,单位megabytes
4.
Listingshards
db.runCommand({listshards:
1})
如果列出了以上二个你加的shards,表示shards已经配置成功
5.
激活数据库分片
命令:
db.runCommand({enablesharding:
“”});
通过执行以上命令,可以让数据库跨shard,如果不执行这步,数据库只会存放在一个shard,一旦激活数据库分片,数据库中不同的collection将被存放在不同的shard上,但一个collection仍旧存放在同一个shard上,要使单个collection也分片,还需单独对collection作些操作
Collecton分片
要使单个collection也分片存储,需要给collection指定一个分片key,通过以下命令操作:
db.runCommand({shardcollection:
“”,key:
});
注:
a.
分片的collection系统会自动创建一个索引(也可用户提前创建好)
b.分片的collection只能有一个在分片key上的唯一索引,其它唯一索引不被允许
Onenote:
ashardedcollectioncanhaveonlyoneuniqueindex,whichmustexistontheshardkey.Nootheruniqueindexescanexistonthecollection.
分片collection例子
db.runCommand({shardcollection:
“test.c1″,key:
{id:
1}})
for(vari=1;
i<
=200003;
i++)db.c1.save({id:
i,value1:
”1234567890″,value2:
”1234567890″,value3:
”1234567890″,value4:
”1234567890″});
db.c1.stats()
{
“sharded”:
true,
“ns”:
“test.c1″,
“count”:
200003,
“size”:
25600384,
“avgObjSize”:
128,
“storageSize”:
44509696,
“nindexes”:
2,
“nchunks”:
15,
“shards”:
{
“s1″:
141941,
18168448,
33327616,
“numExtents”:
8,
“lastExtentSize”:
12079360,
“paddingFactor”:
1,
“flags”:
“totalIndexSize”:
11157504,
“indexSizes”:
“_id_”:
5898240,
“id_1″:
5259264
},
“ok”:
1
“s2″:
58062,
7431936,
11182080,
6,
8388608,
4579328,
2416640,
2162688
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 配置mongodb分片群集sharding cluster 配置 mongodb 分片 群集 sharding