linux安装MongoDB分片集群

2023-04-14 22:02:24 浏览数 (1)

安装MongoDB

在开始部署MongoDB分片集群之前,需要在每台服务器上安装MongoDB。您可以按照MongoDB官方文档提供的指南来安装MongoDB。这里提供一个简单的步骤:

添加MongoDB软件源

代码语言:javascript复制
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10
echo "deb http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.0.list
sudo apt-get update

安装MongoDB

代码语言:javascript复制
sudo apt-get install -y mongodb-org

配置MongoDB

在安装MongoDB之后,需要进行一些配置。MongoDB分片集群需要三个配置服务器和至少两个数据分片服务器。以下是配置MongoDB的步骤:

创建数据目录和配置目录

代码语言:javascript复制
mkdir -p /data/configdb1
mkdir -p /data/configdb2
mkdir -p /data/configdb3
mkdir -p /data/shard1
mkdir -p /data/shard2

配置分片服务器

在每台数据分片服务器上启动MongoDB实例:

代码语言:javascript复制
mongod --shardsvr --replSet shard1 --dbpath /data/shard1 --port 27017 --bind_ip 192.168.1.1
mongod --shardsvr --replSet shard2 --dbpath /data/shard2 --port 27018 --bind_ip 192.168.1.2

在每个数据分片服务器上都需要执行此命令。

接下来,初始化每个副本集并添加成员:

代码语言:javascript复制
mongo --port 27017
rs.initiate()
rs.add("192.168.1.1:27017")
rs.add("192.168.1.2:27018")

配置配置服务器

在每个配置服务器上启动MongoDB实例:

代码语言:javascript复制
mongod --configsvr --replSet configReplSet --port 27019 --dbpath /data/configdb1 --bind_ip 192.168.1.3
mongod --configsvr --replSet configReplSet --port 27019 --dbpath /data/configdb2 --bind_ip 192.168.1.4
mongod --configsvr --replSet configReplSet --port 27019 --dbpath /data/configdb3 --bind_ip 192.168.1.5

接下来,初始化配置副本集并添加成员:

代码语言:javascript复制
mongo --port 27019
rs.initiate()
rs.add("192.168.1.4:27019")
rs.add("192.168.1.5:27019")

配置路由器

在单独的服务器上启动mongos::

代码语言:javascript复制
mongos --configdb configReplSet/192.168.1.3:27019,192.168.1.4:27019,192.168.1.5:27019 --port 27020 --bind_ip 192.168.1.6

mongos将运行在192.168.1.6上,该服务器必须可以访问所有数据分片和配置服务器。

配置路由规则

使用mongo shell连接到mongos:

代码语言:javascript复制
mongo --port 27020

接下来,添加数据分片:

代码语言:javascript复制
sh.addShard("shard1/192.168.1.1:27017,192.168.1.2:27018")
sh.addShard("shard2/192.168.1.1:27017,192.168.1.2:27018")

然后,定义分片键和集合:

代码语言:javascript复制
sh.enableSharding("test")
sh.shardCollection("test.users", {"_id": "hashed"})

现在,您已经完成了MongoDB分片集群的配置。您可以尝试使用mongo shell连接到mongos并执行一些基本操作。

0 人点赞