MongoDB集群部署搭建(三)

MongoDB集群部署搭建(二)

config server 集群配置

根据之前的服务器规划,需要在三台机器上部署config server 副本集,首先在该三台服务器上分别添加一下配置文件:

  vi /application/component/mongodb/conf/config.conf

加入以下内容:

# log日志路径
systemLog:
  destination: file
  logAppend: true
  path: /application/component/mongodb/config/logs/config.log

 # data目录
storage:
  dbPath: /application/component/mongodb/config/data/
  journal:
    enabled: true

 # 运行pid文件
processManagement:
  fork: true
  pidFilePath: /application/component/mongodb/config/logs/configsrv.pid

 # network配置
net:
  port: 21000
  bindIp: 0.0.0.0

 # 集群名称
replication:
  replSetName: configs

 # 声明集群的配置数据服务
sharding:
  clusterRole: configsvr

保存并退出并启动三台服务器的config server:

mongod -f /application/component/mongodb/conf/config.conf

登录任意一台配置服务器(注意是配置端口),初始化配置副本集,输入命令

mongo --port 21000

控制台输入并执行

#定义副本集配置(键“_id”对应的值必须与配置文件中的replicaction.replSetName一致)  
config = {
        _id : "configs",
        members : [
            {_id : 0, host : "192.168.0.120:21000" },
            {_id : 1, host : "192.168.0.121:21000" },
            {_id : 2, host : "192.168.0.122:21000" }
        ]
}

#初始化副本集
 rs.initiate(config)
#查看分区状态
 rs.status();

输出结果如下:

注:rs.initiate(config)初始化,若不成功的话,路由服务器与配置服务器连接不上。其中”_id”:”configs” 应与配置文件中配置的replicaction:replSetName一致,”members”中的”host”为三个节点的ip和配置port。

shard server 分片服务器集群配置

配置第一个分片副本集

根据服务器规划:

192.168.0.120:27001 – 主节点

192.168.0.121:27001 – 副节点

192.168.0.122:27001 – 仲裁节点

 

192.168.0.120:27001 – 副节点

192.168.0.121:27001 – 仲裁节点

192.168.0.122:27001 – 主节点

 

192.168.0.120:27001 – 仲裁节点

192.168.0.121:27001 – 主节点

192.168.0.122:27001 – 副节点

三台服务器上分别添加以下配置文件:

 进入配置文件:

vi /application/component/mongodb/conf/shard1.conf #分片配置文件

加入如下文件内容:

# where to write logging data.
systemLog:
    destination: file
    logAppend: true
    path: /application/component/mongodb/shard1/logs/shard1.log
# Where and how to store data.
storage:
    dbPath: /application/component/mongodb/shard1/data
    journal:
        enabled: true
# how the process runs
processManagement:
    fork: true
    pidFilePath: /application/component/mongodb/shard1/logs/shard1.pid
# network interfaces
    net:
    port: 27001
    bindIp: 0.0.0.0
# 副本集名称
replication:
    replSetName: shard1
# 声明这是一个集群的分片服务;
sharding:
    clusterRole: shardsvr

启动三台服务器的shard1 server:

mongod -f /application/component/mongodb/conf/shard1.conf

登录任意一台服务器(注意是分片端口),初始化副本集。

mongo --port 27001

执行:

#定义副本集配置
config = {
       _id : "shard1",
        members : [
            {_id : 0, host : "192.168.0.120:27001", priority : 2 },
            {_id : 1, host : "192.168.0.121:27001", arbiterOnly :true },
            {_id : 2, host : "192.168.0.122:27001", priority : 1 }
        ]
}
#初始化副本集:
 rs.initiate(config)

如下结果:

#查看分区状态:
 rs.status();

 

其他副本集都按照以上方式进行配置

第二个副本集在第二台机器上执行,第三个副本集在第三个机器上执行

第二台机器执行内容如下:

#定义副本集配置
config = {
       _id : "shard2",
        members : [
            {_id : 0, host : "192.168.0.120:27002", priority : 1 },
            {_id : 1, host : "192.168.0.121:27002", priority : 2 },
            {_id : 2, host : "192.168.0.122:27002", arbiterOnly :true }
        ]
}
#初始化副本集
rs.initiate(config)
#查看分区状态
rs.status()

第三台机器执行内容如下:

#定义副本集配置
config = {
       _id : "shard3",
        members : [
            {_id : 0, host : "192.168.0.120:27003", arbiterOnly :true },
            {_id : 1, host : "192.168.0.121:27003", priority : 1 },
            {_id : 2, host : "192.168.0.122:27003", priority : 2 }
        ]
}
#初始化副本集
rs.initiate(config)
#查看分区状态
rs.status()

mongos server 路由服务器集群配置

注意启动mongodb时,需要先启动配置服务器,再启动分片服务器,最后启动路由服务器。

根据服务器规划,在每台服务器都配置了mongos:

192.168.0.120: 20000 - mongos

192.168.0.121: 20000 - mongos

192.168.0.122: 20000 – mongos

三台服务器上分别添加一下配置文件:

进入配置文件:

vi /application/component/mongodb/conf/mongos.conf

加入如下配置文件内容:

# where to write logging data.
systemLog:
  destination: file
  logAppend: true
  path: /application/component/mongodb/mongos/logs/mongos.log
# how the process runs
processManagement:
  fork: true
 # pidFilePath: /var/log/nginx/mongos.pid
 # network interfaces
net:
  port: 20000
  bindIp: 0.0.0.0
 #监听的配置服务器,只能有1个或者3个,configs为配置服务器的副本集名字,ip:configs配置服务器的端口
sharding:
  configDB: configs/192.168.0.120:21000,192.168.0.121:21000,192.168.0.122:21000

启动三台服务器的mongo server

mongos -f /application/component/mongodb/conf/mongos.conf

目前已经搭建好配置服务器、数据分片服务器、路由服务器,下面进行分片启用,是的应用程序连接到路由服务器时可以使用分片机制。

串联路由服务器与分配副本集

登录任意一台mongos

mongo --port 20000

使用admin 数据库

 use admin

串联路由服务器与分片副本集

#串联路由服务器与分片副本集

sh.addShard("shard1/192.168.0.120:27001,192.168.0.121:27001,192.168.0.122:27001")

 #sh.addShard("shard2/192.168.0.120:27002,192.168.0.121:27002,192.168.0.122:27002")

 #sh.addShard("shard3/192.168.0.120:27003,192.168.0.121:27003,192.168.0.122:27003")

执行结果如下:

查看集群状态:

sh.status()

注:执行sh.status()命令可能报如下错误

解决方案:

给admin用户赋予集群管理的权限:

db.grantRolesToUser(“admin”,[“clusterAdmin”])

下一节:分片的使用 

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要搭建MongoDB集群,可以按照以下步骤进行操作: 1. 安装MongoDB:在每个节点上都需要安装MongoDB数据库。 2. 配置MongoDB:在每个节点上创建一个MongoDB配置文件,并根据需要进行修改。 3. 启动MongoDB:在每个节点上启动MongoDB实例。 4. 设置复制集:在其中一个节点上执行rs.initiate(),然后将其他节点添加到复制集中。 5. 配置分片:在至少一个节点上启动mongos进程,并将分片添加到集群中。 6. 添加分片数据:将数据添加到分片集合中。 7. 测试集群:确保集群可以正常工作并处理负载。 以上是MongoDB集群的基本搭建步骤,具体的操作可以参考MongoDB的官方文档。 ### 回答2: 要搭建MongoDB集群,首先需要了解MongoDB集群架构。MongoDB集群通常由多个节点组成,其中一个节点被选为主节点,负责处理所有的写操作和部分读操作,其他节点被称为从节点,负责处理读操作。 搭建MongoDB集群的步骤如下: 1. 准备服务器:需要准备一台或多台服务器来作为MongoDB节点,确保每台服务器都能够访问互联网。 2. 安装MongoDB:在每台服务器上安装MongoDB软件,确保所有服务器的版本相同。 3. 配置主节点:选择其中一台服务器作为主节点,在主节点上进行配置。打开配置文件,设置`replication`以启用复制功能,并指定集群的名称和副本集的成员。保存配置文件并重启MongoDB服务。 4. 配置从节点:在其他服务器上进行配置。打开配置文件,设置`replication`以启用复制功能,并指定主节点的地址和端口号。保存配置文件并重启MongoDB服务。 5. 初始化主节点:连接到主节点的MongoDB实例,并在Mongo Shell中执行`rs.initiate()`命令来初始化主节点。 6. 添加从节点:连接到从节点的MongoDB实例,并在Mongo Shell中执行`rs.add()`命令来添加从节点到集群。 7. 验证集群状态:在Mongo Shell中执行`rs.status()`命令来验证集群的状态。如果所有节点都成功加入集群,即表示集群搭建成功。 8. 测试读写操作:使用各种读写操作测试集群的性能和可靠性,确保数据能够正确地在各个节点之间同步和访问。 通过以上步骤,我们就可以成功搭建MongoDB集群。值得注意的是,集群的规模和配置可能因应用需求而有所不同,需要根据实际情况进行调整和优化。 ### 回答3: 搭建MongoDB集群是为了实现高可用性、水平扩展以及容错能力。下面是搭建MongoDB集群的步骤: 1. 安装MongoDB:首先,在每个待部署的节点上安装MongoDB,确保版本一致,并为每个节点配置正确的IP地址和端口号。 2. 启用验证和授权:为了增加安全性,可以在MongoDB集群中启用认证和授权机制。创建管理员用户,并给予合适的权限。 3. 配置副本集:MongoDB集群使用副本集来实现数据复制和高可用性。选择一个节点作为primary节点,其他节点作为secondary节点,每个副本集都有一个唯一的名称。在每个节点上启动MongoDB,并将其添加到副本集中。 4. 设置仲裁节点(可选):仲裁节点用于解决副本集中选举主节点时出现的平局情况。可以选择一个节点作为仲裁节点,将其添加到副本集中。 5. 配置分片集群(可选):如果需要进行水平扩展,可以将MongoDB集群配置为分片集群。定义一个或多个分片键,并将数据按照分片键进行划分,存储在不同的分片上。 6. 配置路由器节点(可选):在分片集群中,需要配置一个或多个路由器节点来接收客户端的请求,并将请求路由到正确的分片。 7. 测试集群:启动集群之后,可以使用MongoDB自带的客户端或第方工具连接到集群,并执行一些简单的操作来验证集群的正常运行。查看节点状态,确保主节点和次节点处于正常状态,验证数据复制是否成功。 总结来说,搭建MongoDB集群的步骤包括安装MongoDB、启用认证和授权、配置副本集、设置仲裁节点、配置分片集群、配置路由器节点以及测试集群。这样就可以实现MongoDB集群的高可用性、水平扩展和容错能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值