replication 复制集架构模式配置

本文介绍MongoDB中复制集的基本配置项,包括oplog大小、复制集名称等,并详细说明了复制集的初始化过程及如何添加成员节点、仲裁节点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

mongod有关replication 的基本配置项:

replication:
   oplogSizeMB: <int>				#oplog大小,单位MB,默认10240
   replSetName: <string>			#复制集名称,所有node都必须配置一致
   secondaryIndexPrefetch: <string> #is only available with the mmapv1 storage engine.
   enableMajorityReadConcern: <boolean> # New in version 3.2. default:false   Enables read concern level of "majority".

初试化复制集

用mongo连接上配并已启动的mongod实例,执行复制集初始化命令:

>rs.initiate();

验证复制集初试配置

> rs.conf();
{
   "_id" : "rs0",
   "version" : 1,
   "members" : [
      {
         "_id" : 1,
         "host" : "mongodb0.example.net:27017"
      }
   ]
}

添加node

预先启动好mongo实例,node数必须为奇数,mongod系提供了纯仲裁节点来解决偶数数据节点问题,仲裁节点不同步数据,仅参与选举投票
>rs.add("mongodb1.example.net:3009")
>rs.add("mongodb2.example.net:3010")

检测复制集状态

>rs.status()

添加仲裁(纯投票)node

投票节点不储存数据,但是一旦其加入到复制集中,投票节点将像其他节点一样开始建立自己的数据文件和 journal 
为了让其占用的空间尽可能的小,可将
journal.enabled 选项设置我为false,切勿将数据节点设置为false
smallFiles  设置为true
加入复制集:
> rs.addArb("xx.xx.xx.xx:3008")







### 配置MongoDB复制集和分片在头歌平台的方法 #### 1. 安装MongoDB 为了在头歌平台上配置MongoDB复制集和分片,首先需要安装MongoDB。以下是具体的步骤: 解压并移动MongoDB压缩包至目标路径: ```bash tar -zxvf mongodb-linux-x86_64-3.2.10.tgz sudo mv mongodb-linux-x86_64-3.2.10 /usr/local/mongodb ``` 完成以上操作后即可确认MongoDB已成功安装[^1]。 --- #### 2. 创建必要的文件夹结构 在头歌平台上运行MongoDB复制集和分片前,需先创建所需的目录结构来存储数据日志和其他必要信息。具体命令如下: ```bash mkdir -p /data/test2/shard1/db mkdir -p /logs/test2/shard1/log mkdir -p /data/test2/shard2/db mkdir -p /logs/test2/shard2/log mkdir -p /data/test2/shard3/db mkdir -p /logs/test2/shard3/log mkdir -p /data/test2/config/db mkdir -p /logs/test2/config/log mkdir -p /logs/test2/mongs/log mkdir -p /etc/test2 ``` 这些指令用于建立各分片的数据目录以及对应的日志记录位置[^4]。 --- #### 3. 启动Config Server (CSRS) Config server 是整个分片架构中的核心组件之一,负责保存元数据信息。可以按照以下方式启动它: ```bash mongod --replSet csrs \ --dbpath /data/test2/config/db \ --logpath /logs/test2/config/log/mongodb.log \ --port 21004 \ --bind_ip localhost \ --fork ``` 此命令会以`csrs`名称初始化副本集,并绑定到端口 `21004` 上工作。 --- #### 4. 初始化Replica Set 对于每一个 Shard 和 Config Server 的实例都需要单独执行初始化过程。例如,在第一个 shard 中可以通过下面的方式实现: ```javascript // 连接到该节点 mongo --host localhost --port 21001 // 执行初始化脚本 rs.initiate({ _id: "shardA", members: [ { _id : 0, host : "localhost:21001" } ] }); ``` 重复上述流程针对其他 shards (`shardB`, `shardC`) 及其对应成员列表进行相同处理[^5]。 --- #### 5. 启动Route Node (Mongos) 最后一步就是部署路由服务器(即 Mongos),它是客户端访问分布式系统的入口点。通过下列参数定义它的行为模式: ```bash mongos --configdb csrs/localhost:21004 \ --logpath /logs/test2/mongs/log/mongodb.log \ --port 21005 \ --fork ``` 这里指定了 config db 地址为 `localhost:21004` 并监听于 `21005` 端口号之上[^2]。 连接到刚启动好的 mongos 实例之后就可以继续添加各个实际存在的物理 shards 到逻辑上的全局视图里去了: ```javascript use admin; sh.addShard("localhost:21001"); sh.addShard("localhost:21002"); sh.addShard("localhost:21003"); ``` 至此为止已经完成了基本的 MongoDB Sharding 架构搭建[^3]。 --- #### 6. 设置读写偏好 当应用层面对副本集中不同角色间如何分配请求流量有所需求时,则可通过调整 readPreference 参数达成目的。可选值包括但不限于以下几个选项:primary、secondary、nearest等等[^5]。 例如如果希望优先从次级节点获取查询结果的话可以在驱动程序或者 shell 命令行工具里面这样设定: ```javascript db.getMongo().setReadPref('secondary'); ``` 这使得后续所有的只读型操作都会被导向可用的 Secondary 成员上去执行从而减轻 Primary 的负担。 --- ### 总结 综上所述,本文介绍了基于头歌环境下的 MongoDB Replication Sets and Sharding Configuration 方法论及其实践指南。涵盖了从基础软件准备到最后高级功能调优等多个方面内容。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值