MongoDB之主从复制和副本集(四)
简单主从复制
- 采用一主一从或一主多从的布署模式,可以将读写分离开来,提高数据库的可用性,不过mongodb的主从模式并不能在主节点崩溃后,从节点替换主节点的工作,一般可以在开发阶段使用。
实现步骤
- 设置配置文件
# mongodb.conf1 # 主节点
dbpath=/var/lib/mongodb1 # 设置数据文件
#where to log
logpath=/var/log/mongodb/mongodb1.log # 设置日志文件
logappend=true
bind_ip = 127.0.0.1,192.168.1.21 # 设置ip
port = 27018 # 设置port
journal=true
master = true # 设置主节点
# mongodb.conf2 # 从节点
dbpath=/var/lib/mongodb2 # 设置数据文件
#where to log
logpath=/var/log/mongodb/mongodb2.log # 设置日志文件
logappend=true
bind_ip = 127.0.0.1,192.168.1.21 # 设置ip
port = 27019 # 设置port
journal=true
slave = true # 设置从节点
source = 192.168.1.21:27018 # 指定主节点
- 使用配置文件启动
# 启动主节点
mongod -f /etc/mongodb.conf1 &
# 启动从节点
mongod -f /etc/mongodb.conf2 &
- 测试发现,从节点可读不可写,主节点杀死后,从节点不能代替主节点。
副本集
定义:复制提供了数据的冗余备份,并在多个服务器上存储数据副本,提高了数据的可用性,并可以保证数据的安全性。
特点:
主备节点存储数据,仲裁节点不存储数据。客户端同时连接主节点与备节点,不连接仲裁节点。
所有节点分成3类,主节点,从节点和仲裁节点。
默认设置下,主节点提供所有增删查改服务,备节点不提供任何服务。但是可以通过设置使备节点提供查询服务;
自动故障转移
自动恢复
实现步骤
- 设置三份配置文件,分别为主节点、从节点、仲裁节点配置
# mongodb.conf
dbpath=/var/lib/mongodb # 数据文件
logpath=/var/log/mongodb/mongodb.log # 日志文件
pidfilepath=/var/lib/mongodb/mongodb.pid # 进程文件
logappend=true # 添加方式
replSet=name # 设置副本集名称
bind_ip=192.168.1.21 # 绑定ip
port=27017 # port
fork=true # 后台运行
noprealloc=true
# mongodb.conf1
dbpath=/var/lib/mongodb1 # 数据文件
logpath=/var/log/mongodb/mongodb1.log # 日志文件
pidfilepath=/var/lib/mongodb/mongodb1.pid # 进程文件
logappend=true # 添加方式
replSet=name # 设置副本集名称
bind_ip=192.168.1.21 # 绑定ip
port=27018 # port
fork=true # 后台运行
noprealloc=true
# mongodb.conf2
dbpath=/var/lib/mongodb2 # 数据文件
logpath=/var/log/mongodb/mongodb2.log # 日志文件
pidfilepath=/var/lib/mongodb/mongodb2.pid # 进程文件
logappend=true # 添加方式
replSet=name # 设置副本集名称
bind_ip=192.168.1.21 # 绑定ip
port=27019 # port
fork=true # 后台运行
noprealloc=true
- 启动节点
mongo -f /etc/mongodb.conf
mongo -f /etc/mongodb1.conf
mongo -f /etc/mongodb2.conf
- 配置节点
mongo ip:port
use admin
fuben={ _id:"name", members:[ {_id:0,host:'192.168.1.21:27017',priority:2}, {_id:1,host:'192.168.1.21:27018',priority:1},
{_id:2,host:'192.168.1.21:27019',arbiterOnly:true}] };
rs.initiate(fuben)
参数:
priority:优先级
arbiterOnly:仲裁节点
- 有时报错
"errmsg" : "couldn't initiate : member 192.168.1.21:27018 has data already, cannot initiate set. All members except initiator must be empty."
# 需要清空数据库,将数据库文件都删除
- 生效后,从节点目前是不允许读写的,设置:
# 登录从节点
rs.slaveOk();
- 杀死主节点,可以看到从节点变为主节点,重新启动主节点后,主节点还是主节点,不会变为从节点(老大永远是老大);
参考:
MongoDB之主从复制和副本集(四)的更多相关文章
- MongoDB的主从复制和副本集
mongoDB的两个特性主从复制和副本集,实现了数据的同步备份 一.主从复制 主从复制是一个简单的数据库同步备份的集群技术.例如主服务器宕机了,可以直接使用从服务器,主服务器恢复后在进行同步,保证了业 ...
- MongoDB主从复制和副本集
MongoDB有主从复制和副本集两种主从复制模式,主从复制最大的问题就是无法自动故障转移,MongoDB副本集解决了主从模式无法自动故障转义的特点,因此是复制的首选.对于简单的主从复制无法自动故障转移 ...
- MongoDB 删除,添加副本集,并修改副本集IP等信息
MongoDB 删除,添加副本集,并修改副本集IP等信息 添加副本,在登录到主节点下输入 rs.add("ip:port"); 删除副本 rs.remove("ip:po ...
- MongoDB 带访问控制的副本集部署
当你需要用到一个MongoDB 副本集集群,用于开发测试时, 可以通过下面的步骤简单完成. 版本及环境 MongoDB4.4 Centos6.5 一. 下载安装 MongoDB Server 及 ...
- 8.MongoDB系列之创建副本集(一)
1. 复制简介 在MongoDB中,创建副本集后就可以使用复制功能了,副本集是一组服务器,其中一个是用于处理写操作的主节点,还有多个用于保存主节点的数据副本的从节点,如果主节点崩溃了,则从节点会从中选 ...
- Mongodb主从复制 及 副本集+分片集群梳理
转载努力哥原文,原文连接https://www.cnblogs.com/nulige/p/7613721.html 介绍了Mongodb的安装使用,在 MongoDB 中,有两种数据冗余方式,一种 是 ...
- MongoDB 3.0 常见集群的搭建(主从复制,副本集,分片....)
一.mongodb主从复制配置 主从复制是mongodb最常用的复制方式,也是一个简单的数据库同步备份的集群技术,这种方式很灵活.可用于备份,故障恢复,读扩展等. 最基本的设置方式就是建立一个主节 ...
- MongoDB 学习笔记(七):主从复制与副本集
一.主从复制 1.主从复制是一个简单的数据库同步备份的集群技术,如下图:要明确的知道主服务器与从服务器,且从服务器要明确的知道主服务器的存在. 2.在MongoDB中在启动数据库服务时,可以用mast ...
- Mongodb 主从复制与副本集实验
1.实验主从复制,并验证复制成功,抓图实验过程 Step1:创建相应的目录 Mkdir -p ./dbs/master Mkdir -p ./dbs/slave Step2:开启主服务 ./bin/ ...
随机推荐
- IIS部署时failed to execute url 解决方法
web.config中增加如下节点: <system.webServer> <validation validateIntegratedModeConfiguration=&quo ...
- 第154天:canvas基础(一)
一.canvas简介 <canvas> 是 HTML5 新增的,一个可以使用脚本(通常为JavaScript)在其中绘制图像的 HTML 元素.它可以用来制作照片集或者制作简单(也不是 ...
- wpf下使用NotifyIcon
以前在winForm下使用过NotifyIcon,到wpf找不到了,在wpf下还是直接用WinForm里的那个NotifyIcon实现最小到系统托盘 定义一个NotifyIcon成员 : Notify ...
- BZOJ 1924 所驼门王的宝藏(强连通分量缩点+DAG最长链)
思路不是很难,因为宝藏只会在给出的n个点内有,于是只需要在这n个点里面连边,一个点如果能到达另一个点则连一条有向边, 这样用强连通分量缩点后答案就是DAG的最长链. 问题在于暴力建图是O(n^2)的, ...
- Crossing Rivers HDU - 3232 (均匀分布)
题目大意:A,B相距D,A,B间有n条河,河宽Li,每条河上有一个速度为vi的船,在河山来回行驶,每条河离A的距离为pi,现在求从A到B时间的期望,步行速度始终为1 题目分析:首先如果全部步行则期望为 ...
- C# Emgu CV学习笔记二之图像读写的两种方法
http://blog.csdn.net/marvinhong/article/details/6800450 图像显示在控件loadPictureBox上 方法一 //读取图像001.jpg Int ...
- CSU 多校训练第二场 J Pinemi Puzzles
传送门:http://acm.csu.edu.cn:20080/csuoj/problemset/problem?pid=2279 题意: 代码: #include <set> #incl ...
- C++并发编程 异步任务
C++并发编程 异步任务 异步任务 std::async (1) std::async 会返回一个 std::future 对象, 这个对象持有最终计算出来的结果. 当需要这个值时, 只需要调用对象的 ...
- [ldap]slapcat/ldapsearch与ldap备份
http://serverfault.com/questions/577356/ldap-backup-with-slapcat-vs-ldapsearch Used: openldap-server ...
- xcode禁用ARC(Automatic Reference Counting)
Automatic Reference Counting,自动引用计数,即ARC,可以说是WWDC2011和iOS5所引入的最大的变革和最激动人心的变化.ARC是新的LLVM 3.0编译器的一项特性, ...