mongo分片加复制集配置文件如下:
所有的机器上都有
-
shard1配置文件
-
[root@ip-10-1-2-32 etc]# more shard1.conf
-
logpath=/usr/local/mongodb/logs/mongo_shard1.log
logappend=true # need logrotae scripts
fork=true
journal=true
port=27019
#vvvvv = true
#diaglog = 3
dbpath=/usr/local/mongodb/shard1
pidfilepath=/usr/local/mongodb/logs/mongo_shard1.pid
bind_ip=10.1.2.32
replSet=shard1
shardsvr=true
-
shard2配置文件
-
[root@ip-10-1-2-32 etc]# more shard2.conf
logpath=/usr/local/mongodb/logs/mongo_shard2.log
logappend=true # need logrotae scripts
fork=true
journal=true
port=27018
#vvvvv = true
#diaglog = 3
dbpath=/usr/local/mongodb/shard2
pidfilepath=/usr/local/mongodb/logs/mongo_shard2.pid
bind_ip=10.1.2.32
replSet=shard2
shardsvr=true
-
Config Server配置文件
-
[root@ip-10-1-2-32 etc]# more config.conf
logpath=/usr/local/mongodb/logs/mongo_config.log
logappend=true # need logrotae scripts
fork=true
journal=true
port=27000
dbpath=/usr/local/mongodb/config
pidfilepath=/usr/local/mongodb/logs/mongo_config.pid
configsvr=true
replSet=conf
bind_ip=10.1.2.32
-
Route Process配置文件
-
[root@ip-10-1-2-32 etc]# more mongos.conf
logpath=/usr/local/mongodb/logs/mongos.log
logappend=true # need logrotae scripts
fork=true
port=30000
pidfilepath=/usr/local/mongodb/logs/mongos.pid
configdb=conf/10.1.2.32:27000,10.1.2.68:27000,10.1.2.175:27000
bind_ip=10.1.2.32
-
- (3.2开始的写法,必须指定config的复制集)
(3.2之前的写法)
- ##configdb=10.1.2.32:27000,10.1.2.68:27000,10.1.2.175:27000
-
-
/usr/local/mongodb/bin/mongod -f shard1.conf
-
搭建shard1的复制集
-
/usr/local/mongodb/bin/mongo 10.1.2.32:27019
-
> config_rs1 = {_id: 'shard1', members: [{_id: 0, host: '10.1.2.32:27019', priority:1}, {_id: 1, host: '10.1.2.68:27019'},{_id: 2, host: '10.1.2.175:27019'}]}
-
{
-
"_id" : "shard1",
-
"members" : [
-
{
-
"_id" : 0,
-
"host" : "10.1.2.32:27019",
-
"priority" : 1
-
},
-
{
-
"_id" : 1,
-
"host" : "10.1.2.68:27019"
-
},
-
{
-
"_id" : 2,
-
"host" : "10.1.2.175:27019"
-
}
-
]
-
}
-
> rs.initiate(config_rs1);
- { "ok" : 1 }
-
搭建shard1的复制集
-
/usr/local/mongodb/bin/mongod -f shard2.conf
-
搭建shard2的复制集
-
/usr/local/mongodb/bin/mongo 10.1.2.32:27018
-
> config_rs2 = {_id: 'shard2', members: [{_id: 0, host: '10.1.2.32:27018', priority:1}, {_id: 1, host: '10.1.2.68:27018'},{_id: 2, host: '10.1.2.175:27018'}]}
-
{
-
"_id" : "shard2",
-
"members" : [
-
{
-
"_id" : 0,
-
"host" : "10.1.2.32:27018",
-
"priority" : 1
-
},
-
{
-
"_id" : 1,
-
"host" : "10.1.2.68:27018"
-
},
-
{
-
"_id" : 2,
-
"host" : "10.1.2.175:27018"
-
}
-
]
-
}
-
> rs.initiate(config_rs2);
- { "ok" : 1 }
-
搭建shard2的复制集
-
-
/usr/local/mongodb/bin/mongod -f config.conf
-
搭建config的复制集:
-
/usr/local/mongodb/bin/mongo 10.1.2.32:27000
-
> config_rep = {_id: 'conf', members: [{_id: 0, host: '10.1.2.32:27000', priority:1}, {_id: 1, host: '10.1.2.68:27000'},{_id: 2, host: '10.1.2.175:27000'}]}
-
{
-
"_id" : "conf",
-
"members" : [
-
{
-
"_id" : 0,
-
"host" : "10.1.2.32:27000",
-
"priority" : 1
-
},
-
{
-
"_id" : 1,
-
"host" : "10.1.2.68:27000"
-
},
-
{
-
"_id" : 2,
-
"host" : "10.1.2.175:27000"
-
}
-
]
-
}
-
> rs.initiate(config_rep);
-
{
-
"ok" : 1,
-
"operationTime" : Timestamp(1525333057, 1),
-
"$gleStats" : {
-
"lastOpTime" : Timestamp(1525333057, 1),
-
"electionId" : ObjectId("000000000000000000000000")
-
},
-
"$clusterTime" : {
-
"clusterTime" : Timestamp(1525333057, 1),
-
"signature" : {
-
"hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
-
"keyId" : NumberLong(0)
-
}
-
}
- }
-
搭建config的复制集:
-
/usr/local/mongodb/bin/mongos -f mongos.conf
-
添加分片设置
-
/usr/local/mongodb/bin/mongo 10.1.2.32:30000
-
mongos> db.runCommand({ addshard: 'shard1/10.1.2.32:27019,10.1.2.68:27019,10.1.2.175:27019'})
-
{
-
"shardAdded" : "shard1",
-
"ok" : 1,
-
"$clusterTime" : {
-
"clusterTime" : Timestamp(1525333858, 7),
-
"signature" : {
-
"hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
-
"keyId" : NumberLong(0)
-
}
-
},
-
"operationTime" : Timestamp(1525333858, 7)
-
}
-
mongos> db.runCommand({ addshard: 'shard2/10.1.2.32:27018,10.1.2.68:27018,10.1.2.175:27018'})
-
{
-
"shardAdded" : "shard2",
-
"ok" : 1,
-
"$clusterTime" : {
-
"clusterTime" : Timestamp(1525333888, 4),
-
"signature" : {
-
"hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
-
"keyId" : NumberLong(0)
-
}
-
},
-
"operationTime" : Timestamp(1525333888, 4)
-
}
-
mongos> db.runCommand({ enablesharding: 'test'})
-
{
-
"ok" : 1,
-
"$clusterTime" : {
-
"clusterTime" : Timestamp(1525333913, 7),
-
"signature" : {
-
"hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
-
"keyId" : NumberLong(0)
-
}
-
},
-
"operationTime" : Timestamp(1525333913, 7)
- }
-
添加分片设置
1.只想做复制集
-
三台机器配置如下
-
[root@mysql02 yum.repos.d]# more /home/mongodb/etc/config.cnf
-
logpath=/home/mongodb/logs/mongo_config.log
-
logappend=true # need logrotae scripts
-
fork=true
-
journal=true
-
port=27000
-
dbpath=/home/mongodb/config
-
pidfilepath=/home/mongodb/logs/mongo_config.pid
-
replSet=replset ---复制集名称
选取第一台主进行配置
-
注意:这个id一定要与上面配置文件的复制集名称一样
-
> config_replset = {_id: 'replset', members: [ {_id: 0, host: '10.168.17.201:27000', priority:1}, {_id: 1, host: '10.168.17.202:27000'}, {_id: 2, host: '10.168.17.203:27000'}] }
-
{
-
"_id" : "replset",
-
"members" : [
-
{
-
"_id" : 0,
-
"host" : "10.168.17.201:27000",
-
"priority" : 1
-
},
-
{
-
"_id" : 1,
-
"host" : "10.168.17.202:27000"
-
},
-
{
-
"_id" : 2,
-
"host" : "10.168.17.203:27000"
-
}
-
]
-
}
初始化并查看是否成功
> rs.initiate(config_replset)
{ "ok" : 1 }
replset:OTHER> rs.status()
{
"set" : "replset",
"date" : ISODate("2018-04-11T03:46:23.680Z"),
"myState" : 1,
"term" : NumberLong(1),
"heartbeatIntervalMillis" : NumberLong(2000),
"members" : [
{
"_id" : 0,
"name" : "10.168.17.201:27000",
"health" : 1,
"state" : 1,
"stateStr" : "PRIMARY",
"uptime" : 575,
"optime" : {
"ts" : Timestamp(1523418353, 1),
"t" : NumberLong(1)
},
"optimeDate" : ISODate("2018-04-11T03:45:53Z"),
"infoMessage" : "could not find member to sync from",
"electionTime" : Timestamp(1523418352, 1),
"electionDate" : ISODate("2018-04-11T03:45:52Z"),
"configVersion" : 1,
"self" : true
},
{
"_id" : 1,
"name" : "10.168.17.202:27000",
"health" : 1,
"state" : 2,
"stateStr" : "SECONDARY",
"uptime" : 41,
"optime" : {
"ts" : Timestamp(1523418353, 1),
"t" : NumberLong(1)
},
"optimeDate" : ISODate("2018-04-11T03:45:53Z"),
"lastHeartbeat" : ISODate("2018-04-11T03:46:22.768Z"),
"lastHeartbeatRecv" : ISODate("2018-04-11T03:46:23.221Z"),
"pingMs" : NumberLong(0),
"syncingTo" : "10.168.17.201:27000",
"configVersion" : 1
},
{
"_id" : 2,
"name" : "10.168.17.203:27000",
"health" : 1,
"state" : 2,
"stateStr" : "SECONDARY",
"uptime" : 41,
"optime" : {
"ts" : Timestamp(1523418353, 1),
"t" : NumberLong(1)
},
"optimeDate" : ISODate("2018-04-11T03:45:53Z"),
"lastHeartbeat" : ISODate("2018-04-11T03:46:22.768Z"),
"lastHeartbeatRecv" : ISODate("2018-04-11T03:46:23.221Z"),
"pingMs" : NumberLong(0),
"syncingTo" : "10.168.17.201:27000",
"configVersion" : 1
}
],
"ok" : 1
}
replset:PRIMARY> rs.isMaster()
{
"hosts" : [
"10.168.17.201:27000",
"10.168.17.202:27000",
"10.168.17.203:27000"
],
"setName" : "replset",
"setVersion" : 1,
"ismaster" : true,
"secondary" : false,
"primary" : "10.168.17.201:27000",
"me" : "10.168.17.201:27000",
"electionId" : ObjectId("7fffffff0000000000000001"),
"maxBsonObjectSize" : 16777216,
"maxMessageSizeBytes" : 48000000,
"maxWriteBatchSize" : 1000,
"localTime" : ISODate("2018-04-11T03:46:39.233Z"),
"maxWireVersion" : 4,
"minWireVersion" : 0,
"ok" : 1
}
-
三台机器配置如下
-
[root@mysql02 yum.repos.d]# more /home/mongodb/etc/config.cnf
-
logpath=/home/mongodb/logs/mongo_config.log
-
logappend=true # need logrotae scripts
-
fork=true
-
journal=true
-
port=27000
-
dbpath=/home/mongodb/config
-
pidfilepath=/home/mongodb/logs/mongo_config.pid
- replSet=replset ---复制集名称
选取第一台主进行配置
-
注意:这个id一定要与上面配置文件的复制集名称一样
-
> config_replset = {_id: 'replset', members: [ {_id: 0, host: '10.168.17.201:27000', priority:1}, {_id: 1, host: '10.168.17.202:27000'}, {_id: 2, host: '10.168.17.203:27000'}] }
-
{
-
"_id" : "replset",
-
"members" : [
-
{
-
"_id" : 0,
-
"host" : "10.168.17.201:27000",
-
"priority" : 1
-
},
-
{
-
"_id" : 1,
-
"host" : "10.168.17.202:27000"
-
},
-
{
-
"_id" : 2,
-
"host" : "10.168.17.203:27000"
-
}
-
]
-
}
初始化并查看是否成功
> rs.initiate(config_replset)
{ "ok" : 1 }
replset:OTHER> rs.status()
{
"set" : "replset",
"date" : ISODate("2018-04-11T03:46:23.680Z"),
"myState" : 1,
"term" : NumberLong(1),
"heartbeatIntervalMillis" : NumberLong(2000),
"members" : [
{
"_id" : 0,
"name" : "10.168.17.201:27000",
"health" : 1,
"state" : 1,
"stateStr" : "PRIMARY",
"uptime" : 575,
"optime" : {
"ts" : Timestamp(1523418353, 1),
"t" : NumberLong(1)
},
"optimeDate" : ISODate("2018-04-11T03:45:53Z"),
"infoMessage" : "could not find member to sync from",
"electionTime" : Timestamp(1523418352, 1),
"electionDate" : ISODate("2018-04-11T03:45:52Z"),
"configVersion" : 1,
"self" : true
},
{
"_id" : 1,
"name" : "10.168.17.202:27000",
"health" : 1,
"state" : 2,
"stateStr" : "SECONDARY",
"uptime" : 41,
"optime" : {
"ts" : Timestamp(1523418353, 1),
"t" : NumberLong(1)
},
"optimeDate" : ISODate("2018-04-11T03:45:53Z"),
"lastHeartbeat" : ISODate("2018-04-11T03:46:22.768Z"),
"lastHeartbeatRecv" : ISODate("2018-04-11T03:46:23.221Z"),
"pingMs" : NumberLong(0),
"syncingTo" : "10.168.17.201:27000",
"configVersion" : 1
},
{
"_id" : 2,
"name" : "10.168.17.203:27000",
"health" : 1,
"state" : 2,
"stateStr" : "SECONDARY",
"uptime" : 41,
"optime" : {
"ts" : Timestamp(1523418353, 1),
"t" : NumberLong(1)
},
"optimeDate" : ISODate("2018-04-11T03:45:53Z"),
"lastHeartbeat" : ISODate("2018-04-11T03:46:22.768Z"),
"lastHeartbeatRecv" : ISODate("2018-04-11T03:46:23.221Z"),
"pingMs" : NumberLong(0),
"syncingTo" : "10.168.17.201:27000",
"configVersion" : 1
}
],
"ok" : 1
}
replset:PRIMARY> rs.isMaster()
{
"hosts" : [
"10.168.17.201:27000",
"10.168.17.202:27000",
"10.168.17.203:27000"
],
"setName" : "replset",
"setVersion" : 1,
"ismaster" : true,
"secondary" : false,
"primary" : "10.168.17.201:27000",
"me" : "10.168.17.201:27000",
"electionId" : ObjectId("7fffffff0000000000000001"),
"maxBsonObjectSize" : 16777216,
"maxMessageSizeBytes" : 48000000,
"maxWriteBatchSize" : 1000,
"localTime" : ISODate("2018-04-11T03:46:39.233Z"),
"maxWireVersion" : 4,
"minWireVersion" : 0,
"ok" : 1
}
- 注意:这个id一定要与上面配置文件的复制集名称一样
-
> config_replset = {_id: 'replset', members: [ {_id: 0, host: '10.168.17.201:27000', priority:1}, {_id: 1, host: '10.168.17.202:27000'}, {_id: 2, host: '10.168.17.203:27000'}] }
-
{
-
"_id" : "replset",
-
"members" : [
-
{
-
"_id" : 0,
-
"host" : "10.168.17.201:27000",
-
"priority" : 1
-
},
-
{
-
"_id" : 1,
-
"host" : "10.168.17.202:27000"
-
},
-
{
-
"_id" : 2,
-
"host" : "10.168.17.203:27000"
-
}
-
]
- }
初始化并查看是否成功
> rs.initiate(config_replset)
{ "ok" : 1 }
replset:OTHER> rs.status()
{
"set" : "replset",
"date" : ISODate("2018-04-11T03:46:23.680Z"),
"myState" : 1,
"term" : NumberLong(1),
"heartbeatIntervalMillis" : NumberLong(2000),
"members" : [
{
"_id" : 0,
"name" : "10.168.17.201:27000",
"health" : 1,
"state" : 1,
"stateStr" : "PRIMARY",
"uptime" : 575,
"optime" : {
"ts" : Timestamp(1523418353, 1),
"t" : NumberLong(1)
},
"optimeDate" : ISODate("2018-04-11T03:45:53Z"),
"infoMessage" : "could not find member to sync from",
"electionTime" : Timestamp(1523418352, 1),
"electionDate" : ISODate("2018-04-11T03:45:52Z"),
"configVersion" : 1,
"self" : true
},
{
"_id" : 1,
"name" : "10.168.17.202:27000",
"health" : 1,
"state" : 2,
"stateStr" : "SECONDARY",
"uptime" : 41,
"optime" : {
"ts" : Timestamp(1523418353, 1),
"t" : NumberLong(1)
},
"optimeDate" : ISODate("2018-04-11T03:45:53Z"),
"lastHeartbeat" : ISODate("2018-04-11T03:46:22.768Z"),
"lastHeartbeatRecv" : ISODate("2018-04-11T03:46:23.221Z"),
"pingMs" : NumberLong(0),
"syncingTo" : "10.168.17.201:27000",
"configVersion" : 1
},
{
"_id" : 2,
"name" : "10.168.17.203:27000",
"health" : 1,
"state" : 2,
"stateStr" : "SECONDARY",
"uptime" : 41,
"optime" : {
"ts" : Timestamp(1523418353, 1),
"t" : NumberLong(1)
},
"optimeDate" : ISODate("2018-04-11T03:45:53Z"),
"lastHeartbeat" : ISODate("2018-04-11T03:46:22.768Z"),
"lastHeartbeatRecv" : ISODate("2018-04-11T03:46:23.221Z"),
"pingMs" : NumberLong(0),
"syncingTo" : "10.168.17.201:27000",
"configVersion" : 1
}
],
"ok" : 1
}
replset:PRIMARY> rs.isMaster()
{
"hosts" : [
"10.168.17.201:27000",
"10.168.17.202:27000",
"10.168.17.203:27000"
],
"setName" : "replset",
"setVersion" : 1,
"ismaster" : true,
"secondary" : false,
"primary" : "10.168.17.201:27000",
"me" : "10.168.17.201:27000",
"electionId" : ObjectId("7fffffff0000000000000001"),
"maxBsonObjectSize" : 16777216,
"maxMessageSizeBytes" : 48000000,
"maxWriteBatchSize" : 1000,
"localTime" : ISODate("2018-04-11T03:46:39.233Z"),
"maxWireVersion" : 4,
"minWireVersion" : 0,
"ok" : 1
}
2.只想做分片
-
一台机器上做分片配置即可
-
[root@mysql04 etc]# ll
-
总用量 16
-
-rw-r--r-- 1 root root 208 4月 11 13:42 config.cnf
-
-rw-r--r-- 1 root root 169 4月 11 13:48 mongos.cnf
-
-rw-r--r-- 1 root root 227 4月 11 13:41 shard1.cnf
-
-rw-r--r-- 1 root root 227 4月 11 13:42 shard2.cnf
-
[root@mysql04 etc]# more *.cnf
-
::::::::::::::
-
config.cnf
-
::::::::::::::
-
logpath=/home/mongodb/logs/mongo_config.log
-
logappend=true # need logrotae scripts
-
fork=true
-
journal=true
-
port=27000
-
dbpath=/home/mongodb/config
-
pidfilepath=/home/mongodb/logs/mongo_config.pid
-
configsvr=true
-
::::::::::::::
-
mongos.cnf
-
::::::::::::::
-
logpath=/home/mongodb/logs/mongos.log
-
logappend=true # need logrotae scripts
-
fork=true
-
port=30000
-
pidfilepath=/home/mongodb/logs/mongos.pid
-
configdb=10.168.17.204:27000
-
::::::::::::::
-
shard1.cnf
-
::::::::::::::
-
logpath=/home/mongodb/logs/mongo_shard1.log
-
logappend=true # need logrotae scripts
-
fork=true
-
journal=true
-
port=27019
-
dbpath=/home/mongodb/shard1
-
pidfilepath=/home/mongodb/logs/mongo_shard1.pid
-
shardsvr=true
-
directoryperdb=true
-
::::::::::::::
-
shard2.cnf
-
::::::::::::::
-
logpath=/home/mongodb/logs/mongo_shard2.log
-
logappend=true # need logrotae scripts
-
fork=true
-
journal=true
-
port=27018
-
dbpath=/home/mongodb/shard2
-
pidfilepath=/home/mongodb/logs/mongo_shard2.pid
-
shardsvr=true
-
directoryperdb=true
和分片加复制集的区别不大!
- 一台机器上做分片配置即可
-
[root@mysql04 etc]# ll
-
总用量 16
-
-rw-r--r-- 1 root root 208 4月 11 13:42 config.cnf
-
-rw-r--r-- 1 root root 169 4月 11 13:48 mongos.cnf
-
-rw-r--r-- 1 root root 227 4月 11 13:41 shard1.cnf
-
-rw-r--r-- 1 root root 227 4月 11 13:42 shard2.cnf
-
[root@mysql04 etc]# more *.cnf
-
::::::::::::::
-
config.cnf
-
::::::::::::::
-
logpath=/home/mongodb/logs/mongo_config.log
-
logappend=true # need logrotae scripts
-
fork=true
-
journal=true
-
port=27000
-
dbpath=/home/mongodb/config
-
pidfilepath=/home/mongodb/logs/mongo_config.pid
-
configsvr=true
-
::::::::::::::
-
mongos.cnf
-
::::::::::::::
-
logpath=/home/mongodb/logs/mongos.log
-
logappend=true # need logrotae scripts
-
fork=true
-
port=30000
-
pidfilepath=/home/mongodb/logs/mongos.pid
-
configdb=10.168.17.204:27000
-
::::::::::::::
-
shard1.cnf
-
::::::::::::::
-
logpath=/home/mongodb/logs/mongo_shard1.log
-
logappend=true # need logrotae scripts
-
fork=true
-
journal=true
-
port=27019
-
dbpath=/home/mongodb/shard1
-
pidfilepath=/home/mongodb/logs/mongo_shard1.pid
-
shardsvr=true
-
directoryperdb=true
-
::::::::::::::
-
shard2.cnf
-
::::::::::::::
-
logpath=/home/mongodb/logs/mongo_shard2.log
-
logappend=true # need logrotae scripts
-
fork=true
-
journal=true
-
port=27018
-
dbpath=/home/mongodb/shard2
-
pidfilepath=/home/mongodb/logs/mongo_shard2.pid
-
shardsvr=true
- directoryperdb=true
和分片加复制集的区别不大!