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/ ...
随机推荐
- C# 模拟串口发送接收
一.准备虚拟串口驱动工具 创建俩个虚拟串口,如图: 二.创建两个控制台程序 模拟串口的发送接收数据 1. 接收数据,代码如下: //遍历串行端口名称数组 foreach (string port in ...
- 【bzoj1067】[SCOI2007]降雨量 倍增RMQ
题目描述 我们常常会说这样的话:“X年是自Y年以来降雨量最多的”.它的含义是X年的降雨量不超过Y年,且对于任意Y<Z<X,Z年的降雨量严格小于X年.例如2002,2003,2004和200 ...
- Day 2 while循环 编码 and or not
1.判断下列逻辑语句的True,False. 1)1 > 1 or 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6 Flas ...
- 【开发工具IDE】解决IntelliJ IDEA 创建Maven项目速度慢的问题
方法一(推荐) 在创建Maven项目时加上 archetypeCatalog=internal 参数,如下: 方法二 在maven的VM Options加上-DarchetypeCatalog=int ...
- 编写高效SQL语句(转)
转至http://blog.csdn.net/u012150457/article/details/41846299 一.编写高效SQL语句 1) 选择最有效的表名顺序(仅适用于RBO模式) ORAC ...
- C++解析(15):二阶构造模式
0.目录 1.构造函数与半成品对象 2.二阶构造 3.小结 1.构造函数与半成品对象 关于构造函数: 类的构造函数用于对象的初始化 构造函数与类同名并且没有返回值 构造函数在对象定义时自动被调用 问题 ...
- P3469 [POI2008]BLO-Blockade
题意翻译 在Byteotia有n个城镇. 一些城镇之间由无向边连接. 在城镇外没有十字路口,尽管可能有桥,隧道或者高架公路(反正不考虑这些).每两个城镇之间至多只有一条直接连接的道路.人们可以从任意一 ...
- General Sultan UVA - 11604(建图暴力)
给出n个字符串,询问是否存在一个字符串(可以是给出的几个中的 也可以是组合成的),使得用字符串(随便你用多少个)来拼凑这个串,能够至少有两种拼法 解析: 把每一个字符串的每一个位置的字符看作结点,进行 ...
- CentOS6.5上给curl安装ssl时错误解决
1 在CentOS上使用PHP的curl访问HTTPS页面时,出现错误“Protocol https not supported or disabled in libcurl”. 表示curl未启用h ...
- selenium测试 - open Firefox
环境:Python2.7+selenium3+Firefox47 问题1: 在打开火狐浏览器时报错:‘geckodriver‘ executable needs to be in PATH fro ...