做了MongoDB分片,贴出自己的配置。并且把需要注意的问题和大伙聊聊,不恰当的地方希望大家指正。 也同时希望让后来者能绕过这些

现在网上很多教程都在讲MongoDB分片配置,但大多都没有经过实战,胡乱转载。而且用的MongoDB版本不同各种配置眼花寮乱,让入门者莫衷一是。

最近我也做了MongoDB分片,贴出自己的配置。并且把需要注意的问题和大伙聊聊,,不恰当的地方希望大家指正。 也同时希望让后来者能绕过这些问题。

正式环境为了保证数据安全都要进行备份的,关于分片复制请见alibaba教程:

我配置的集群是测试用的,没有复制。只是简单的分片存储数据进行测试。在测试的时候又分片,又复制,那么多机器也麻烦。这一点网上的很多例子都是错误的,为此我也花了很多时间。

我配置完成后的结构图为:

【数据库】配置MongoDB集群分片

我的Mongo版本为:mongodb-linux-x86_64-2.0.8,计算机为普通Pc。

在这里我要特别说明:

1.大数据情况下最好是64位机器,32位机器不能创建大于2GB的单个文件。 小数据量无所谓

2.集群中的每台计算机的系统最好都是一样的,不要32位,64位搭配

-- 我在开始做测试就是这样,2台64,2台32.当注入300W左右的数据,索引大于3-4G时32位机器出错了,32位系统上不能创建大于2GB的单个文件。整个集群瘫痪,我为此找了很长时间的原因

让我们开始吧!

mongo从下载后解压后的目录结构如下:我们视安装目录为:${MONGO_INSTALL}

【数据库】配置MongoDB集群分片

先在第一台计算机上在${MONGO_INSTALL}下分别执行:

mkdir -p /data/shard11

bin/mongod -shardsvr -port 27017 -dbpath=/data/shard11/ -logpath=/data/shard11.log --fork

【数据库】配置MongoDB集群分片