0

0

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

php中文网

php中文网

发布时间:2016-06-07 17:29:05

|

1268人浏览过

|

来源于php中文网

原创

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

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

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

系统:

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:

eShop公众号商城
eShop公众号商城

项目介绍: eShop是基于eFrameWork低代码开发平台搭建的微信公众号商城系统,主要功能包括:产品、订单、购物车、收藏、收货地址。已集成微信登录、微信支付、分享等接口。更多功能可自行二次开发实现。 当前发布的数据库有两个版本,SQLServer和SQLite(无需安装数据库),默认为SQLite,根据实际需要切换。 项目版本:VS2012+, 数据库版本:S

下载

/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 --replSet 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",      --表明此机器是主库

linux

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
java连接字符串方法汇总
java连接字符串方法汇总

本专题整合了java连接字符串教程合集,阅读专题下面的文章了解更多详细操作。

7

2026.02.05

java中fail含义
java中fail含义

本专题整合了java中fail的含义、作用相关内容,阅读专题下面的文章了解更多详细内容。

8

2026.02.05

控制反转和依赖注入区别
控制反转和依赖注入区别

本专题整合了控制反转和依赖注入区别、解释、实现方法相关内容。阅读专题下面的文章了解更多详细教程。

11

2026.02.05

钉钉脑图插图教程合集
钉钉脑图插图教程合集

本专题整合了钉钉脑图怎么插入图片、钉钉脑图怎么用相关教程,阅读专题下面的文章了解更多详细内容。

24

2026.02.05

python截取字符串方法汇总
python截取字符串方法汇总

本专题整合了python截取字符串方法相关合集,阅读专题下面的文章了解更多详细内容。

2

2026.02.05

Java截取字符串方法合集
Java截取字符串方法合集

本专题整合了Java截取字符串方法汇总,阅读专题下面的文章了解更多详细操作教程。

1

2026.02.05

java 抽象方法
java 抽象方法

本专题整合了java抽象方法定义、作用教程等内容,阅读专题下面的文章了解更多详细内容。

2

2026.02.05

Eclipse创建jsp文件教程合集
Eclipse创建jsp文件教程合集

本专题整合了Eclipse创建jsp文件、创建jsp项目等等内容,阅读专题下面的文章了解更多详细教程。

26

2026.02.05

java 字符串转数字
java 字符串转数字

本专题整合了java如何字符串转数字相关内容,阅读专题下面的文章了解更多详细教程。

4

2026.02.05

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
TypeScript 教程
TypeScript 教程

共19课时 | 2.7万人学习

Go语言实战之 GraphQL
Go语言实战之 GraphQL

共10课时 | 0.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号