mongodb主从复制 副本集(六)
主从复制
副本集
8888.conf
dbpath = D:\software\MongoDBDATA\07\8888 #主数据库地址
port = 8888 #主数据库端口号
bind_ip = 127.0.0.1 #主数据库所在服务器
master = true #确定我是主服务器
8888mangodb.bat
mongod --config 8888.conf
8888shell.bat
mongo 127.0.0.1:8888
7777.conf
dbpath = D:\software\MongoDBDATA\07\7777 #从数据库地址
port = 7777 #从数据库端口号
bind_ip = 127.0.0.1 #从数据库所在服务器
#source = 127.0.0.1:8888 #确定我数据库端口
#这个配置项(source)可以用shell动态添加
slave = true #确定自己是从服务器
7777mangodb.bat
mongod --config 7777.conf
7777shell.bat
mongo 127.0.0.1:7777
1.主从复制是一个简单的数据库同步备份的集群技术.
1.1在数据库集群中要明确的知道谁是主服务器,主服务器只有一台.
1.2从服务器要知道自己的数据源也就是对于的主服务是谁.
1.3--master用来确定主服务器,--slave 和 –source 来控制曾服务器
1.主从复制集群案例
dbpath = D:\sortware\mongod\01\8888 主数据库地址
port = 8888 主数据库端口号
bind_ip = 127.0.0.1 主数据库所在服务器
master = true 确定我是主服务器
dbpath = D:\sortware\mongod\01\7777 从数据库地址
port = 7777 从数据库端口号
bind_ip = 127.0.0.1 从数据库所在服务器
source = 127.0.0.1:8888 确定我数据库端口
slave = true 确定自己是从服务器
2.主从复制的其他设置项
--only 从节点指定复制某个数据库,默认是复制全部数据库
--slavedelay 从节点设置主数据库同步数据的延迟(单位是秒)
--fastsync 从节点以主数据库的节点快照为节点启动从数据库
--autoresync 从节点如果不同步则从新同步数据库
--oplogSize 主节点设置oplog的大小(主节点操作记录存储到local的oplog中)
3.利用shell动态添加和删除从节点
不难看出从节点中关于主节点的信息全部存到local的sources的集合中
我们只要对集合进行操作就可以动态操作主从关系
挂接主节点:操作之前只留下从数据库服务
db.sources.insert({“host”:”127.0.0.1:8888”})
删除已经挂接的主节点:操作之前只留下从数据库服务
db.sources.remove({“host”:”127.0.0.1:8888”})
1.副本集概念
1.1第一张图表明A是活跃的B和C是用于备份的
1.2第二张图当A出现了故障,这时候集群根据权重算法推选出B为活跃的数据库
1.3第三张图当A恢复后他自动又会变为备份数据库
1.副本集概念
dbpath = D:\sortware\mongod\02\A
port = 1111 #端口
bind_ip = 127.0.0.1 #服务地址
replSet = child/127.0.0.1:2222 #设定同伴
dbpath = D:\sortware\mongod\02\B
port = 2222
bind_ip = 127.0.0.1
replSet = child/127.0.0.1:3333
dbpath = D:\sortware\mongod\02\C
port = 3333
bind_ip = 127.0.0.1
replSet = child/127.0.0.1:1111
2.初始化副本集
use admin
db.runCommand({"replSetInitiate":
{
"_id":'child',
"members":[{
"_id":1,
"host":"127.0.0.1:1111"
},{
"_id":2,
"host":"127.0.0.1:2222"
},{
"_id":3,
"host":"127.0.0.1:3333"
}]
}
})
2.查看副本集状态
rs.status()
2.Shell展示
2.关掉127.0.0.1:2222再查看状态
3.节点和初始化高级参数
standard 常规节点:参与投票有可能成为活跃节点
passive 副本节点:参与投票,但是不能成为活跃节点
arbiter 仲裁节点:只是参与投票不复制节点也不能成为活跃节点
4.高级参数
Priority 0到1000之间 ,0代表是副本节点 ,1到1000是常规节点
arbiterOnly : true 仲裁节点
用法
members":[{
"_id":1,
"host":"127.0.0.1:1111“,
arbiterOnly : true
}]”
5.优先级相同时候仲裁组建的规则
6.读写分离操作扩展读
6.1一般情况下作为副本的节点是不能进行数据库读操作的
但是在读取密集型的系统中读写分离是十分必要的
6.2设置读写分离
slaveOkay : true
很遗憾他在shell中无法掩饰,这个特性是被写到mongoDB的
驱动程序中的,在java和node等其他语言中可以完成
7.Oplog
他是被存储在本地数据库local中的,他的每一个文档保证这一个节点操作
如果想故障恢复可以更彻底oplog可已经尽量设置大一些用来保存更多的操作
信息
改变oplog大小
主库 --master --oplogSize size
副本集
mongo 127.0.0.1:1111
mongo 127.0.0.1:2222
mongo 127.0.0.1:3333
dbpath = D:\software\MongoDBDATA\07\1111
port = 1111 #端口
bind_ip = 127.0.0.1 #服务地址
replSet = child/127.0.0.1:2222 #设定同伴
dbpath = D:\software\MongoDBDATA\07\2222
port = 2222
bind_ip = 127.0.0.1
replSet = child/127.0.0.1:3333
dbpath = D:\software\MongoDBDATA\07\3333
port = 3333
bind_ip = 127.0.0.1
replSet = child/127.0.0.1:1111
use admin
db.runCommand({"replSetInitiate":
{
"_id":'child',
"members":[{
"_id":1,
"host":"127.0.0.1:1111"
},{
"_id":2,
"host":"127.0.0.1:2222"
},{
"_id":3,
"host":"127.0.0.1:3333"
}]
}
})
rs.status()
mongod --config A.conf
mongod --config B.conf
mongod --config C.conf
mongodb主从复制 副本集(六)的更多相关文章
- Mongodb主从复制/ 副本集/分片集群介绍
前面的文章介绍了Mongodb的安装使用,在 MongoDB 中,有两种数据冗余方式,一种 是 Master-Slave 模式(主从复制),一种是 Replica Sets 模式(副本集). Mong ...
- [DataBase] MongoDB (8) 副本集
MongoDB 创建副本集 MongoDB复制是将数据同步在多个服务器的过程. 复制提供了数据的冗余备份,并在多个服务器上存储数据副本,提高了数据的可用性, 并可以保证数据的安全性. 复制还允许您从 ...
- mongodb创建副本集命令
mongodb创建副本集命令 ./mongod --replSet spock --dbpath ../data --smallfiles > config ={... "_id&qu ...
- MongoDB之副本集
MongoDB之副本集 一.简介 MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写.旨在为 WEB 应用提供可扩展的高性能数据存储解决方案. MongoDB 是一个介于关系数据库 ...
- MongoDB 复制(副本集)
MongoDB复制是将数据同步在多个服务器的过程. 复制提供了数据的冗余备份,并在多个服务器上存储数据副本,提高了数据的可用性, 并可以保证数据的安全性. 复制还允许您从硬件故障和服务中断中恢复数据. ...
- MongoDB集群-主从复制(副本集)、failover
1.概念 主从复制的目的:数据冗余.备份.读写分离 主从方式:一主一从(不推荐,只能实现复制,主节点挂掉且未重新启动的时候,无法提升从节点为master),一主一从一裁判,一主多从 复制方式:主节点记 ...
- MongoDB 搭建副本集
副本集(Replica Set)是一组MongoDB实例组成的集群,由一个主(Primary)服务器和多个备份(Secondary)服务器构成.通过Replication,将数据的更新由Primary ...
- mongodb系列~mongodb的副本集(1)
一 简介: mongodb副本集 二 复制方式: 1 全量复制 2 增量复制三 同步检测过程: 一 正常情况下: 1 master执行语句,并将所有的修改数据库的操作以日志Oplog ...
- mongodb之 3.4.0 mongodb sharing 副本集群搭建
系统系统 centos6.5三台服务器:10.100.25.42/43/44安装包: mongodb-linux-x86_64-rhel62-3.4.0.tgz 服务器规划:mongos mongos ...
随机推荐
- Spring之基础
Spring之目的 Spring致力于简化企业级Java开发,促进代码的松散耦合.成功的关键在于依赖注入(DI)和面向切面编程(AOP) Spring之DI DI是组装应用对象的一种方 ...
- MarkDown初学
什么是MarkDown? 第一次用这个MarkDown,感觉很好,界面友好,使用简洁而又使用,最主要的是此园支持这个语法,欣慰欣慰!先这么多,看看效果如何 推荐个不错的学习网站 Markdown 语法 ...
- Luogu 3806 点分治1
Luogu 3806 点分治 要分清楚各个函数的作用及互相调用的关系. 因为是无根树,找重心的时候,父亲一边的所有节点也可以看做是一颗子树. #include<bits/stdc++.h> ...
- Codeforces 15E Triangles 【组合计数】
Codeforces 15E Triangles Last summer Peter was at his granny's in the country, when a wolf attacked ...
- Adobe Acrobat 9 Pro破解方法
首先安装Adobe Acrobat 9 Pro,默认安装在C盘. 如果你的系统盘是C盘,那么就删除:c:/Documents and Settings/All Users/Application Da ...
- 重温CLR(十三) 定制特性
利用定制特性,可宣告式为自己的代码构造添加注解来实现特殊功能.定制特性允许为几乎每一个元数据表记录项定义和应用信息.这种可扩展的元数据信息能在运行时查询,从而动态改变代码的执行方式.使用各种.NET技 ...
- MySQL数据库命名规范及约定
一.[操作规范]1. 如无备注,则表中的第一个id字段一定是主键且为自动增长:2. 如无备注,则数值类型的字段请使用UNSIGNED属性:3. 如无备注,排序字段order_id在程序中默认使用降序排 ...
- Scrapy源码研究前戏
一.Twisted的使用 在 Twisted 中,有一种特殊的对象用于实现事件循环.这个对象叫做 reactor.可以把反应器(reactor)想象为 Twisted 程序的中枢神经.除了分发事件循环 ...
- UNIX简化路径
Given an absolute path for a file (Unix-style), simplify it. For example, path = “/home/”, => “/h ...
- 如何将angular-ui-bootstrap的图片轮播组件封装成一个指令
在项目开发中我们经常会遇到图片轮播的功能点: 如果我们开发人员自己原生手写,将会花费很多的时间,最终得不偿失. 接下来就详细说说如何使用angular-ui发热图片轮播模块,并且将它写成一个指令(便于 ...