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/ ...
随机推荐
- bzoj5127[Lydsy12月赛]数据校验
多少年不写题解了 题目描述: 著名出题人小 Q 出了一道题,这个题给定一个正整数序列 a1, a2, ..., an,并保证输入数据中,对于 a 的任意一个非空连续子区间 [l, r],该区间内出现过 ...
- asp.net core 登录身份认证(Cookie)
asp.net core 2最简单的登录功能 源代码在此 创建asp.net core Web Mvc项目 配置下选项 项目目录结构 在Models文件夹下新建两个实体类 public class T ...
- WordPress忘记密码找回登录密码的四种行之有效的方法
WordPress忘记密码找回登录密码的四种行之有效的方法 PS:20170214更新,感谢SuperDoge同学提供的方法,登入phpMyAdmin后,先从左边选自己的数据库,然后点上面的 SQL ...
- HN2018省队集训
HN2018省队集训 Day1 今天的题目来自于雅礼的高二学长\(dy0607\). 压缩包下载 密码: 27n7 流水账 震惊!穿着该校校服竟然在四大名校畅通无阻?霸主地位已定? \(7:10\)从 ...
- MSF下ms17_010_psexec模块使用技巧
0x01 前言 MS17-010 的psexec是针对Microsoft Windows的两款最受欢迎的漏洞进行攻击. CVE-2017-0146(EternalChampion / EternalS ...
- 【linux】/dev/null与/dev/zero详解
引用别人的资源,收藏: http://www.cnblogs.com/xianghang123/archive/2012/03/23/2413381.html
- 批量修改历史commit的用户名user.name邮箱user.email
配置当前的用户名邮箱可以当前项目配置或者全局配置. 仅当前项目配置: git config user.name 'your-user-name' git config user.email 'your ...
- hibernate实现数据实体复制保存
hibernate实现数据实体复制保存 2013年12月16日 11:57:22 Hardy008 阅读数:3474 描述:需要将数据的一条记录进行复制保存为一条新记录. 思路:从数据库中取得一条 ...
- Hdu3022 Sum of Digits
Sum of Digits Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Tot ...
- 6.UiWatcher API 详细介绍
Tip: 1.监听器不是完能的,所以若用例需要设置监听器防止用例被打断,最好把延迟时间调高一点 2.UiDevice是不会触发监听功能的 3.监听器在方法体或者循环体中是程序还是会被打断的 4.监听器 ...