话说在
虚拟机中会报各种错误,在真实的环境中就不会那么痛苦了。
想了一下虚拟机中报错的原因有。机器卡,处理的时间长就会抛出错误
还有虚拟机如果给的空间太小,也会报异常。
此处讲讲我的大致思路。
第一,选择三台服务器,最好不是虚拟的
第二,设计三台服务器的IP,端口,和各自的角色
第三,检查防火墙有没有关闭,时间是不是同步
如果上面都可以了,那你就可以操作了。
当然,mongodb版本和mongodb前提搭建就建在前面吧
wget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.0.4.tgz
解压mongodb文件
主机1 版本号不一样。我的是2.0.4
[root@mongodb40 ~]# tar zxvfmongodb-linux-x86_64-2.4.7.tgz
[root@mongodb40 ~]# mvmongodb-linux-x86_64-2.4.7 /home/mongodb
主机2
[root@mongodb41~]# tar zxvfmongodb-linux-x86_64-2.4.7.tgz
[root@mongodb41~]# mvmongodb-linux-x86_64-2.4.7 /home/mongodb
主机3
[root@mongodb250 ~]# tar zxvfmongodb-linux-x86_64-2.4.7.tgz
[root@mongodb250~]# mvmongodb-linux-x86_64-2.4.7 /home/mongodb
mongo集群分片实战
服务器三台
主机1(172.16.0.40) 主机2(172.16.0.41) 主机3(172.16.0.250)
第一片(11731) 主 副本 仲裁
第二片(11732) 仲裁 主 副本
第三片(11733) 副本 仲裁 主
30000 configServer configServer config Server
60000 RouteProcess RouteProcess Route Process
创建数据库目录
主机1(172.16.0.40)配置文件
[root@mongodb115 ~]# mkdir -p/home/data/shard1_1
[root@mongodb115 ~]# mkdir -p/home/data/shard2_1
[root@mongodb115 ~]# mkdir -p/home/data/shard3_1
[root@mongodb115 ~]# mkdir -p/home/data/config #config server目录
[root@mongodb115 ~]# mkdir -p/home/config #放配置文件
[root@mongodb115 ~]# mkdir -p/home/data/logs
这个地方的所有配置目录都放在/home/config目录下,切记切记啊,因为我在这里吃过亏,不知一次。
分片1
[root@mongodb40 config]# catshard1_1.conf
port=11731
dbpath=/home/data/shard1_1
logpath=/home/data/logs/shard1_1.log
directoryperdb=true
logappend=true
replSet=shard1
#bind_ip=172.16.0.40
shardsvr=true
fork=true
pidfilepath=/home/data/shard1_1.pid
maxConns=20000
oplogSize=5000
noprealloc=true
nohttpinterface=true
分片2
[root@mongodb40 config]# catshard2_1.conf
port=11732
dbpath=/home/data/shard2_1
logpath=/home/data/logs/shard2_1.log
directoryperdb=true
logappend=true
replSet=shard2
#bind_ip=172.16.0.40
shardsvr=true
fork=true
pidfilepath=/home/data/shard2_1.pid
maxConns=20000
oplogSize=5000
noprealloc=true
nohttpinterface=true
分片3
[root@mongodb40 config]# catshard3_1.conf
port=11733
dbpath=/home/data/shard3_1
logpath=/home/data/logs/shard3_1.log
directoryperdb=true
logappend=true
replSet=shard3
#bind_ip=172.16.0.40
shardsvr=true
fork=true
pidfilepath=/home/data/shard3_1.pid
maxConns=20000
oplogSize=5000
noprealloc=true
nohttpinterface=true
config server 配置文件
[root@mongodb40 config]# catconfig.conf
port=30000
dbpath=/home/data/config
logpath=/home/data/logs/config.log
directoryperdb=true
configsvr=true
logappend=true
#bind_ip=172.16.0.40
fork=true
pidfilepath=/home/data/config.pid
maxConns=20000
oplogSize=5000
noprealloc=true
nohttpinterface=true
RouteProces 配置文件
[root@mongodb40 config]# catmongos.conf
port=60000
logpath=/home/data/logs/mongos.log
logappend=true
configdb=172.16.0.40:30000,172.16.0.41:30000,172.16.0.250:30000
#bind_ip=172.16.0.40
fork=true
pidfilepath=/home/data/mongos.pid
chunkSize=5
maxConns=20000
nohttpinterface=true
主机2(172.16.0.41)配置文件
[root@mongodb114 ~]# mkdir -p/home/data/shard1_2
[root@mongodb114 ~]# mkdir -p/home/data/shard2_2
[root@mongodb114 ~]# mkdir -p/home/data/shard3_2
[root@mongodb114 ~]# mkdir -p/home/data/config #config serv