s在单台服务器上部署sharding分片.docx
- 文档编号:24090344
- 上传时间:2023-05-24
- 格式:DOCX
- 页数:15
- 大小:70.54KB
s在单台服务器上部署sharding分片.docx
《s在单台服务器上部署sharding分片.docx》由会员分享,可在线阅读,更多相关《s在单台服务器上部署sharding分片.docx(15页珍藏版)》请在冰豆网上搜索。
s在单台服务器上部署sharding分片
<->本地搭建
一般线上mongodb服务器都好多台,可以自由搭建mongodb分片集群的,但是不能随意测试,如果想自己随意测试新功能怎么办呢?
可以在本地搭建,在一台服务器mongodb1(hch_test_dbm1_121_62)上大家mongodb分片集群,下面分片是示意图(
OK,接下来就准备开始搭建mongodb分片集群,从安装mongodb开始,然后逐渐部署configservers、mongosservers、shardservers一步步来开始准备。
1,下载安装:
https:
//www.mongodb.org/dr/fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.2.3.tgz/download,我这里下载的是稳定版本:
mongodb-linux-x86_64-3.0.3.tgz
下载后解压缩
tar-xvfmongodb-linux-x86_64-3.0.3.tgz-C/usr/local/
mkdir/data
mkdir/usr/local/mongodb-linux-x86_64-3.0.3/log/
mkdir/data/mongodb
chown-Rmongodb.mongodb/data/mongodb
chown-Rmongodb.mongodb/usr/local/mongodb-linux-x86_64-3.0.3
chown-Rmongodb:
mongodb/usr/local/mongodb-linux-x86_64-3.0.3-R
chown-Rmongodb:
mongodb/data/mongodb-R
2、在mongodb1上准备好3个configservers
创建数据目录日志目录
mkdir/data/mongodb/config20001-p
mkdir/data/mongodb/config20002-p
mkdir/data/mongodb/config20003-p
mkdir/data/mongodb/logs/-p
/usr/local/mongodb-linux-x86_64-3.0.3/bin/mongod--configsvr--dbpath/data/mongodb/config20001--port20001--logpath/data/mongodb/logs/configsvr_20001.log--logappend--fork
/usr/local/mongodb-linux-x86_64-3.0.3/bin/mongod--configsvr--dbpath/data/mongodb/config20002--port20002--logpath/data/mongodb/logs/configsvr_20002.log--logappend--fork
/usr/local/mongodb-linux-x86_64-3.0.3/bin/mongod--configsvr--dbpath/data/mongodb/config20003--port20003--logpath/data/mongodb/logs/configsvr_20003.log--logappend--fork
3、启动mongos路由服务
在mongodb1上启动mongos服务器(可以启动一个也可以启动多个):
/usr/local/mongodb-linux-x86_64-3.0.3/bin/mongos--configdbmongodb1:
20001,mongodb1:
20002,mongodb1:
20003--port40000--chunkSize64--logpath/data/mongodb/logs/mongos40004.log--logappend--fork
4、开始准备shardservers
#第一个shard1分片副本集
#创建目录
mkdir/data/mongodb/shard37017
mkdir/data/mongodb/shard37027
mkdir/data/mongodb/shard37037
#开始启动shardservers进程
/usr/local/mongodb-linux-x86_64-3.0.3/bin/mongod--shardsvr--replSetshard1--port37017--dbpath/data/mongodb/shard37017--oplogSize2048--logpath/data/mongodb/logs/shard_m11_37017.log--logappend--fork
/usr/local/mongodb-linux-x86_64-3.0.3/bin/mongod--shardsvr--replSetshard1--port37027--dbpath/data/mongodb/shard37027--oplogSize2048--logpath/data/mongodb/logs/shard_m1s1_37027.log--logappend--fork
/usr/local/mongodb-linux-x86_64-3.0.3/bin/mongod--shardsvr--replSetshard1--port37037--dbpath/data/mongodb/shard37037--oplogSize2048--logpath/data/mongodb/logs/shard_m11_37037.log--logappend--fork
#第二个shard2分片副本集
#创建目录
mkdir/data/mongodb/shard37018
mkdir/data/mongodb/shard37028
mkdir/data/mongodb/shard37038
#启动shardsevers进程
/usr/local/mongodb-linux-x86_64-3.0.3/bin/mongod--shardsvr--replSetshard2--port37018--dbpath/data/mongodb/shard37018--oplogSize2048--logpath/data/mongodb/logs/shard_m11_37018.log--logappend--fork
/usr/local/mongodb-linux-x86_64-3.0.3/bin/mongod--shardsvr--replSetshard2--port37028--dbpath/data/mongodb/shard37028--oplogSize2048--logpath/data/mongodb/logs/shard_m1s1_37028.log--logappend--fork
/usr/local/mongodb-linux-x86_64-3.0.3/bin/mongod--shardsvr--replSetshard2--port37038--dbpath/data/mongodb/shard37038--oplogSize2048--logpath/data/mongodb/logs/shard_m11_37038.log--logappend--fork
5、开始设置分片副本集shard1
#设置第一个分片副本集,必须使用admin数据库,登录命令如下
/usr/local/mongodb-linux-x86_64-3.0.3/bin/mongomongodb1:
37017/admin
#定义副本集命令
>config={_id:
"shard1",members:
[
{_id:
0,host:
"mongodb1:
37017",priority:
1},
{_id:
1,host:
"mongodb1:
37027",priority:
2},
{_id:
2,host:
"mongodb1:
37037",arbiterOnly:
true}
]
};
#初始化副本集命令
>rs.initiate(config);
#执行过程如下:
[mongodb@dnadb_1mongodb]$/usr/local/mongodb-linux-x86_64-3.0.3/bin/mongolocalhost:
27017/admin
MongoDBshellversion:
3.0.3
connectingto:
localhost:
27017/admin
Serverhasstartupwarnings:
2016-04-07T23:
41:
07.703+0800ICONTROL[initandlisten]
2016-04-07T23:
41:
07.703+0800ICONTROL[initandlisten]**WARNING:
/sys/kernel/mm/transparent_hugepage/enabledis'always'.
2016-04-07T23:
41:
07.703+0800ICONTROL[initandlisten]**Wesuggestsettingitto'never'
2016-04-07T23:
41:
07.703+0800ICONTROL[initandlisten]
2016-04-07T23:
41:
07.703+0800ICONTROL[initandlisten]**WARNING:
/sys/kernel/mm/transparent_hugepage/defragis'always'.
2016-04-07T23:
41:
07.703+0800ICONTROL[initandlisten]**Wesuggestsettingitto'never'
2016-04-07T23:
41:
07.703+0800ICONTROL[initandlisten]
>config={_id:
"shard1",members:
[
...{_id:
0,host:
"mongodb1:
37017",priority:
1},
...{_id:
1,host:
"mongodb1:
37027",priority:
2},
...{_id:
2,host:
"mongodb1:
37037",arbiterOnly:
true}
...]
...};
{
"_id":
"shard1",
"members":
[
{
"_id":
0,
"host":
"mongodb1:
37017",
"priority":
1
},
{
"_id":
1,
"host":
"mongodb1:
37027",
"priority":
2
},
{
"_id":
2,
"host":
"mongodb1:
37037",
"arbiterOnly":
true
}
]
}
>rs.initiate(config);
{"ok":
1}
shard1:
OTHER>
6、开始设置分片副本集shard2
#开始设置第二个分片副本集
>config={_id:
"shard2",members:
[
{_id:
0,host:
"mongodb1:
37018",priority:
1},
{_id:
1,host:
"mongodb1:
37028",priority:
2},
{_id:
2,host:
"mongodb1:
37038",arbiterOnly:
true}
]
};
#初始化副本集
>rs.initiate(config);
执行过程如下:
[mongodb@dnadb_1mongodb]$/usr/local/mongodb-linux-x86_64-3.0.3/bin/mongolocalhost:
27018/admin
MongoDBshellversion:
3.0.3
connectingto:
localhost:
27018/admin
Serverhasstartupwarnings:
2016-04-07T23:
42:
18.944+0800ICONTROL[initandlisten]
2016-04-07T23:
42:
18.944+0800ICONTROL[initandlisten]**WARNING:
/sys/kernel/mm/transparent_hugepage/enabledis'always'.
2016-04-07T23:
42:
18.944+0800ICONTROL[initandlisten]**Wesuggestsettingitto'never'
2016-04-07T23:
42:
18.944+0800ICONTROL[initandlisten]
2016-04-07T23:
42:
18.944+0800ICONTROL[initandlisten]**WARNING:
/sys/kernel/mm/transparent_hugepage/defragis'always'.
2016-04-07T23:
42:
18.944+0800ICONTROL[initandlisten]**Wesuggestsettingitto'never'
2016-04-07T23:
42:
18.944+0800ICONTROL[initandlisten]
>config={_id:
"shard2",members:
[
...{_id:
0,host:
"mongodb1:
37018",priority:
1},
...{_id:
1,host:
"mongodb1:
37028",priority:
2},
...{_id:
2,host:
"mongodb1:
37038",arbiterOnly:
true}
...]
...};
{
"_id":
"shard2",
"members":
[
{
"_id":
0,
"host":
"mongodb1:
37018",
"priority":
1
},
{
"_id":
1,
"host":
"mongodb1:
37028",
"priority":
2
},
{
"_id":
2,
"host":
"mongodb1:
37038",
"arbiterOnly":
true
}
]
}
>rs.initiate(config);
{"ok":
1}
shard2:
OTHER>
7、检查下副本状态:
[mongodb@hch_test_dbm1_121_62~]$/usr/local/mongodb-linux-x86_64-3.0.3/bin/mongomongodb1:
37028/admin
MongoDBshellversion:
3.0.3
connectingto:
mongodb1:
37028/admin
Serverhasstartupwarnings:
2016-07-09T19:
08:
58.250+0800ICONTROL[initandlisten]
2016-07-09T19:
08:
58.250+0800ICONTROL[initandlisten]**WARNING:
YouarerunningonaNUMAmachine.
2016-07-09T19:
08:
58.250+0800ICONTROL[initandlisten]**Wesuggestlaunchingmongodlikethistoavoidperformanceproblems:
2016-07-09T19:
08:
58.250+0800ICONTROL[initandlisten]**numactl--interleave=allmongod[otheroptions]
2016-07-09T19:
08:
58.251+0800ICONTROL[initandlisten]
2016-07-09T19:
08:
58.251+0800ICONTROL[initandlisten]**WARNING:
/sys/kernel/mm/transparent_hugepage/enabledis'always'.
2016-07-09T19:
08:
58.251+0800ICONTROL[initandlisten]**Wesuggestsettingitto'never'
2016-07-09T19:
08:
58.251+0800ICONTROL[initandlisten]
2016-07-09T19:
08:
58.251+0800ICONTROL[initandlisten]**WARNING:
/sys/kernel/mm/transparent_hugepage/defragis'always'.
2016-07-09T19:
08:
58.251+0800ICONTROL[initandlisten]**Wesuggestsettingitto'never'
2016-07-09T19:
08:
58.251+0800ICONTROL[initandlisten]
shard2:
PRIMARY>rs.status();
{
"set":
"shard2",
"date":
ISODate("2016-07-09T11:
35:
36.680Z"),
"myState":
1,
"members":
[
{
"_id":
0,
"name":
"mongodb1:
37018",
"health":
1,
"state":
2,
"stateStr":
"SECONDARY",
"uptime":
62,
"optime":
Timestamp(1468064073,1),
"optimeDate":
ISODate("2016-07-09T11:
34:
33Z"),
"lastHeartbeat":
ISODate("2016-07-09T11:
35:
35.736Z"),
"lastHeartbeatRecv":
ISODate("2016-07-09T11:
35:
35.739Z"),
"pingMs":
0,
"configVersion":
1
},
{
"_id":
1,
"name":
"mongodb1:
37028",
"health":
1,
"state":
1,
"stateStr":
"PRIMARY",
"uptime":
1598,
"optime":
Timestamp(1468064073,1),
"optimeDate":
ISODate("2016-07-09T11:
34:
33Z"),
"electionTime":
Timestamp(1468064110,1),
"electionDate":
ISODate("2016-07-09T11:
35:
10Z"),
"configVersion":
1,
"self":
true
},
{
"_id":
2,
"name":
"mongodb1:
37038",
"health":
1,
"state":
7,
"stateStr":
"ARBITER",
"uptime":
62,
"lastHeartbeat":
ISODate("2016-07-09T11:
35:
35.747Z"),
"lastHeartbeatRecv":
ISODate("2016-07-09T11:
35:
35.745Z"),
"pingMs":
0,
"configVersion":
1
}
],
"ok":
1
}
shard2:
PRIMARY>
8、设置自动分片生效
目前搭建了mongodb配置服务器、路由服务器,各个分片服务器,不过应用程序连接到mongos路由服务器并不能使用分片机制,还需要在程序里设置分片配置,让分片生效。
#串联路由服务器与分配副本集命令
db.runCommand({addshard:
"shard1/mongodb1:
37017,mongodb1:
37027,mongodb1:
37037"});
db.runCommand({addshard:
"shard2/mongodb1:
37018,mongodb1:
37028,mongodb1:
37038"});
#执行过程
[mongodb@db_m1_slave_1logs]$/usr/local/mongodb-linux-x86_64-3.0.3/bin/mongolocalhost:
40000/admin
MongoDBshellversion:
3.0.3
connectingto:
localhost:
30000/admin
mongos>db.runCommand({addshard:
"shard1/mongodb1:
37017,mongodb1:
37027,mongodb1:
37037"});
{"shardAdded":
"shard1","ok":
1}
mongos>db.runCommand({addshard:
"shard2/mongodb1:
37018,mongodb1:
37028,mongodb1:
37038"});
{"shardAdded":
"shard2","ok":
1}
mongos>
9、查看分片服务器配置
db.runCommand({listshards:
1});
命令输出结果
mongos>db.runCommand({listshards:
1});
{
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 服务器 部署 sharding 分片
![提示](https://static.bdocx.com/images/bang_tan.gif)