• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

MongoDB 副本集搭建实现读写分享

mysql 搞代码 4年前 (2022-01-09) 44次浏览 已收录 0个评论

副本集就是有自动故障恢复功能的主从集群。主从集群和副本集最为明显的区别就是副本集没有固定的主节点。可以把副本集当做一个集

副本集就是有自动故障恢复功能的主从集群。主从集群和副本集最为明显的区别就是副本集没有固定的主节点。

可以把副本集当做一个集群,整个集群会选出一个主节点,当其不能正常工作时则会激活其它节点。

系统:

CentOS 5.6 x86_64

mongo版本:mongodb-linux-x86_64-2.0.6.tgz

Server1 10.0.1.121:20001

server2 10.0.1.212:20001

Arbiter 10.0.1.212:20002

目录规划:

数据目录和日志单分出来

Server1:

/mongodb

/mlogs

应用程序日志统计放到/usr/local/mongo

Server2:

/mongodb

/mlogs

/arbiter

应用程序日志统计放到/usr/local/mongo

部署:

1.防火墙开启20001端口,关闭selinux

2.分别在两台机器上安装mongo服务

tar xf mongodb-linux-x86_64-2.0.6.tgz -C /usr/local/mongo

3.创建key文件

Server1:

mkdir /etc/keys

echo “test123456” > r0

Server2:

mkdir /etc/keys

echo “test123456” > r1

Arbiter:

echo “test123456” > r2

chmod 600 r0 r1 r2

4.分别启动Server1和Server2的mongo服务

Server1:

/usr/local/mongo/bin/mongod –replSet rs1 –keyFile /usr/local/mongo/key/r0 –port 20001 –fork –dbpath=/mongodb/ –logpath /mlogs/Server1.log

–fork为后台启动

netstat -tunlp | grep mongo 查看端口是否被开启

加入到开机启动脚本 /etc/rc.local

Server2:

/usr/local/mongo/bin/mongod –replSet rs1 –keyFile /usr/local/mongo/key/r1 –port 20001 –fork –dbpath=/mongodb/ –logpath /mlogs/Server2.log

netstat -tunlp | grep mongo 查看端口是否被开启

/usr/local/mongo/bin/mongod –replS

本文来源gaodai.ma#com搞#代!码(网

et rs1 –keyFile /usr/local/mongo/key/r2 –port 20002 –fork –dbpath=/arbiter –logpath /mlogs/arbiter.log

加入到开机启动脚本 /etc/rc.local使机器重启后继续生效

选项:

–only

在从节点上指定复制某个数据库(默认复制所有数据库)

–slavedelay

用在从节点上,当应用主节点的操作时增加延时(秒)

–fastsync

以主节点的数据快照为基础启动从节点,如果数据目录一开始是主节点的数据快照,从节点用这个选项启动要比完整同步快多了

–autoresync

如果从节点与主节点不同步,则自动重新同步

–oplogSize

主节点oplog的大小(MB)

5.配置及初始化Replica Sets

> config_pongo={

…_id:’pongo’,members:[

…{_id:0,host:’10.0.1.121:20001′,priority:1}, #如果有多个节点继续往下增加

…{_id:1,host:’10.0.1.212:20001′,priority:2},

…{_id:2,host:”10.0.1.212:20002″,arbiterOnly : true}]

…}

rs.initiate(config_rs1); 初始化Replica Sets

注:关于扩展节点和添加仲裁设备请看最下方、

副本集中节点的类型

standard:常规节点,它存储一份完整的数据副本,参与选举投票可以成为活跃节点。

passive:存储了完整的数据副本,参与投票,,不能成为活跃节点。

arbiter:仲裁者只参与投票,不能接受复制数据,也不能成为活跃节点。

每个参与节点(非仲裁者)都有个优先权,优先权为0是被动的,不能成为活跃节点,优先值不为0,则按照大小选出活跃节点。

如果2个值一样,则数据最新的为活跃节点。在节点配置中修改priority键,来配置成标准节点或被动节点。

注:如果配置成功master会变成PRIMARY slave会变成SECONDARY

6.使用rs.status()查看副本集的状态信息

“health” : 1, –1表明正常; 0表明异常、

“state” : 1, — 1表明是Primary; 2 表明是Secondary;

“stateStr” : “PRIMARY”, –表明此机器是主库


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:MongoDB 副本集搭建实现读写分享

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址