k8s伸缩excel副本是什么意思集 啥意思

环境 操作系统:win7 64位 MongoDB version: 2.6.5 配置mongodb实例 配置了三个实例,用的都是同一台机器,分别使用,47017端口 启动实例 &!-- 启动mongodb实例 --& C:\Users\admin&mongod -f E:\mongodb\mongo.confg C:\Users\admin&mongod -f E:\mongodb1\mongo.confg C:\Users\admin&mongod -
之前的副本集中,每个人的权利都一样: 这个权利指: 1)每个成员都只能选择自己为主节点. 2)每个成员只能为别人的请求投票. ------------------------------------ 但是我们可能希望多点角色. 可以的角色如下: 1)仲裁者:唯一作用就是参与投票,不保存数据,不提供服务,只是为了帮助某些场合下满足大多数这个条件 好生成一个主节点! 这种成员,既然作用不大,就给它一个破机器用着吧,反正也不提供服务,平时睡觉去吧,关键时候拉出来投投票就行了! 如何启动仲裁者角色? 1
本节主要讲解MongoDB的副本集, 掌握这个知识点将大幅度提高你对MongoDB的掌握程度! ------------------------------------------------------ 1 关于副本集: 一组服务器,其中一个是主服务器---处理客户端请求, 还有多个备份服务器,用于保存服务器的数据副本. 如果主服务器挂了,备份服务器会自动将其中一个成员升级为新的主服务器! 2 rs.status() fubenji:PRIMARY& rs.status() { &set
在上一篇文章&搭建高可用mongodb集群(二)-- 副本集& 介绍了副本集的配置,这篇文章深入研究一下副本集的内部机制.还是带着副本集的问题来看吧! 副本集故障转移,主节点是如何选举的?能否手动干涉下架某一台主节点. 官方说副本集数量最好是奇数,为什么? mongodb副本集是如何同步的?如果同步不及时会出现什么情况?会不会出现不一致性? mongodb的故障转移会不会无故自动发生?什么条件会触发?频繁触发可能会带来系统负载加重? Bully算法 mongodb副本集故障转移功能得益于它的选
在上一篇文章&搭建高可用MongoDB集群(一)--配置MongoDB& 提到了几个问题还没有解决. 主节点挂了能否自动切换连接?目前需要手工切换. 主节点的读写压力过大如何解决? 从节点每个上面的数据都是对数据库全量拷贝,从节点压力会不会过大? 数据压力大到机器支撑不了的时候能否做到自动扩展? 这篇文章看完这些问题就可以搞定了.NoSQL的产生就是为了解决大数据量.高扩展性.高性能.灵活数据模型.高可用性.但是光通过主从模式的架构远远达不到上面几点,由此MongoDB设计了副本集和分片的功能
Copyright (C) , All Rights Reserved.
版权所有 闽ICP备号
processed in 0.042 (s). 11 q(s)扫一扫体验手机阅读
深入玩转K8S之简单的业务弹性伸缩和滚动更新操作
每一份赞赏源于懂得
0人进行了赞赏支持
<span type="1" blog_id="2135955" userid='
144篇文章,48W+人气,35粉丝
2018年中国开源云超级人物奖获得者
掌握主流虚拟化技术
¥51.0037人订阅在MongoDB副本集中,主节点负责处理客户端的读写请求,备份节点则负责映射主节点的数据。
备份节点的工作原理过程可以大致描述为,备份节点定期轮询主节点上的数据操作,然后对自己的数据副本进行这些操作,从而保证跟主节点的数据同步。
至于主节点上的所有数据库状态改变的操作,都会存放在一张特定的系统表中。备份节点则是根据这些数据进行自己的数据更新。
上面提到的数据库状态改变的操作,称为oplog(operation log,主节点操作记录)。oplog存储在local数据库的"oplog.rs"表中。副本集中备份节点异步的从主节点同步oplog,然后重新执行它记录的操作,以此达到了数据同步的作用。
关于oplog有几个注意的地方:
oplog只记录改变数据库状态的操作
存储在oplog中的操作并不是和主节点执行的操作完全一样,例如"$inc"操作就会转化为"$set"操作
oplog存储在固定集合中(capped collection),当oplog的数量超过oplogSize,新的操作就会覆盖就的操作
下面来看下oplog的一些具体内容,首先删除上一篇的node1-node3文件夹,重新建立副本集,但是这次限制oplogSize为5MB。
mongod.exe --dbpath="c:\mongodb\db\node1" --port=11111 --replSet myReplSet --oplogSize=5
mongod.exe --dbpath="c:\mongodb\db\node2" --port=22222 --replSet myReplSet --oplogSize=5
mongod.exe --dbpath="c:\mongodb\db\node3" --port=33333 --replSet myReplSet --oplogSize=5
然后通过MongoDB shell(连接主节点)插入一些数据
db.person.insert({ "name" : "Will0", "gender" : "Female", "age" : 22 })
db.person.insert({ "name" : "Will1", "gender" : "Female", "age" : 20 })
通过一些命令就可以查看主节点的oplog了,通过oplog可以看到前面两条数据插入操作,备份节点接可以根据这两条记录更新自己的数据集。
show collections
db.oplog.rs.find()
查看oplog表的状态,当前oplog有3条记录,oplog表是一个capped collection(固定大小集合),oplog表的大小是MB。
oplog数据结构
下面来分析一下oplog中字段的含义,通过下面的命令取出一条oplog:
db.oplog.rs.find().skip(1).limit(1).toArray()
ts: 8字节的时间戳,由4字节unix timestamp + 4字节自增计数表示。这个值很重要,在选举(如master宕机时)新primary时,会选择ts最大的那个secondary作为新primary
op:1字节的操作类型
"i": insert
"u": update
"d": delete
"c": db cmd
"db":声明当前数据库 (其中ns 被设置成为=&数据库名称+ '.')
"n": no op,即空操作,其会定期执行以确保时效性
ns:操作所在的namespace
o:操作所对应的document,即当前操作的内容(比如更新操作时要更新的的字段和值)
o2: 在执行更新操作时的where条件,仅限于update时才有该属性
oplog的大小
capped collection是MongoDB中一种提供高性能插入、读取和删除操作的固定大小集合,当集合被填满的时候,新的插入的文档会覆盖老的文档。
所以,oplog表使用capped collection是合理的,因为不可能无限制的增长oplog。MongoDB在初始化副本集的时候都会有一个默认的oplog大小:
在64位的Linux,Solaris,FreeBSD以及Windows系统上,MongoDB会分配磁盘剩余空间的5%作为oplog的大小,如果这部分小于1GB则分配1GB的空间
在64的OS X系统上会分配183MB
在32位的系统上则只分配48MB
oplog的大小设置是值得考虑的一个问题,如果oplog size过大,会浪费存储空间;如果oplog size过小,老的oplog记录很快就会被覆盖,那么宕机的节点就很容易出现无法同步数据的现象。
比如,基于上面的例子,我们停掉一个备份节点(port=33333),然后通过主节点插入以下记录,然后查看oplog,发现以前的oplog已经被覆盖了。
for(var i=0;i&10000;i++){
var randAge = parseInt(5*Math.random()) + 20;
var gender = (randAge%2)?"Male":"Female";
db.school.students.insert({"name":"Will"+i, "gender": gender, "age": randAge});
接下来重新启动上面停掉的备份节点(port=33333),从server的输出中可以看到,oplog已经太新了,备份节点无法进行同步了。
通过MongoDB shell连接上这个节点,会发现这个节点一直处于RECOVERING状态。
在副本集中,有两种数据同步方式:
initial sync(初始化):这个过程发生在当副本集中创建一个新的数据库或其中某个节点刚从宕机中恢复,或者向副本集中添加新的成员的时候,默认的,副本集中的节点会从离它最近的节点复制oplog来同步数据,这个最近的节点可以是primary也可以是拥有最新oplog副本的secondary节点。
该操作一般会重新初始化备份节点,开销较大
replication(复制):在初始化后这个操作会一直持续的进行着,以保持各个secondary节点之间的数据同步。
initial sync
当遇到上面例子中无法同步的问题时,只能使用以下两种方式进行initial sync了
第一种方式就是停止该节点,然后删除目录中的文件,重新启动该节点。这样,这个节点就会执行initial sync
注意:通过这种方式,sync的时间是根据数据量大小的,如果数据量过大,sync时间就会很长
同时会有很多网络传输,可能会影响其他节点的工作
第二种方式,停止该节点,然后删除目录中的文件,找一个比较新的节点,然后把该节点目录中的文件拷贝到要sync的节点目录中
通过上面两种方式中的一种,都可以重新恢复"port=33333"的节点。不在进行截图了。
副本集管理
查看oplog的信息
通过"db.printReplicationInfo()"命令可以查看oplog的信息
字段说明:
configured oplog size: oplog文件大小
log length start to end: oplog日志的启用时间段
oplog first event time: 第一个事务日志的产生时间
oplog last event time: 最后一个事务日志的产生时间
now: 现在的时间
查看slave状态
通过"db.printSlaveReplicationInfo()"可以查看slave的同步状态
当我们插入一条新的数据,然后重新检查slave状态时,就会发现sync时间更新了
在这篇文章中介绍了副本集的工作原理,通过oplog以及数据同步进一步了解了副本集。
另外,实践中难免会碰到需要修改oplog size的情况,本篇文章没有进行介绍,请参考MongoDB文档中的步骤,&
Ps:例子中所有的命令都可以参考以下链接
http://files.cnblogs.com/wilber2013/oplog.js
阅读(...) 评论()该文档大量谈及元数据管理和单独副本集对它的实现方式。
The documentation talks a lot about
metadata management and ways in which individual replica sets can implement it.
监控副本集任务:监控检查的进程和结果、检查和修复、为副本集同步任务。
Monitoring replicate set tasks: Monitor the progress and results of check, check and repair, and synchronize tasks for replicate sets.
也就是说,MongoDB可以在任何时候使用副本集将某个节点定义为主节点,在故障时另一节点担负起主节点的任务。
Alternatively, MongoDB can use replica sets to define a node as a primary at any one time, with another node taking over as the primary in the event of a failure.
监控任务状态:监控检查的进程和结果、检查和修复、为副本和副本集同步任务。
Monitoring task status: Monitor the progress and results of check, check and repair, and synchronize tasks for replicates and replicate sets.
副本集包含几个可以构成一个集的副本,这个集可以作为一个单元管理。
A replicate set combines several replicates to form a set that can be administered together as a unit.
在大多数这样的系统中,更新以一种“懒”方式传播到副本集内的其它节点上。
In most of these systems the updates are propagated in a lazy manner to the remaining nodes in the replica's set.
模板使用关于数据库的模式信息、一组表、列和主键定义一组主副本和一个副本集。
A template uses schema information about a database, a group of tables, columns, and primary keys to define a group of master replicates and a replicate set.
模板定义一组主副本和一个副本集。
A template defines a group of master replicates and a replicate set.
两个来自不同副本集的副本不能同步。
The two replicas are from different replica sets and cannot be synchronized.
您想将哪个媒体副本集与媒体原件集同步?。
Which media copy set do you want to synchronize with the media master set?
常用于组合的图有:事件图,区域图,副本集状态图,散点图。
Plot types that are often used for overlays are: event, range, rsstate, and scatter.
如果两台服务器都发生了故障,就使用到第三个灾难恢复服务器集的副本将应用程序引导至复制节点。
If both servers fail, the applications are directed to the replica nodes using replication to a third disaster recovery server set.
在这样的情况下,如果您有任何可用的文件说,你现在停止代销,烦请延长我们的处理没有任何进一步拖延的情况,其中01集的副本。
With such a case, if you have any available documents of the said consignment at your end now, please kindly extend us 01 set copy of them for handling the case without any further delays.
从SP1 开始,模板加载程序集的副本,以便不锁定原始程序集。
From SP1, the template loads a copy of the assembly, so that the original assembly is not locked.
但是,如果现有附属程序集已足够并且与产品的新版本兼容,则通常无需提供附属程序集的新副本。
However, you might not want to ship new copies of your satellite assemblies if the existing ones are sufficient and compatible with the newer version of your product.
该多维数据集可以为空、为 }tp_application_state多维数据集的一个副本,或为一个注释多维数据集(如在本样例中),或包含针对审批层次结构的任何信息。
This cube could be empty, a copy of the }tp_application_state cube or, as in the sample, a commentary cube or contain any information for the approval hierarchy.
创建命名的权限集的等效副本。
Creates an equivalent copy of the named permission set.
但是,JIT编译程序集的每个副本都可以与其他具有相同授权集的应用程序域共享。
However, each copy of the JIT-compiled assembly can be shared with other application domains that have the same grant set.
对于在全局程序集缓存中签名并安装的互操作程序集,多个.NET客户端可以访问该程序集的同一副本。
NET clients can access the same copy of the interop assembly, which is signed and installed in the global assembly cache.
进程A有属于自己的数据、程序的副本、打开的文件集,以及自己的环境变量集,当进程A刚出现时,会对它们进行初次捕捉。
Process A has its own data, its own copy of the program, its set of open files, and its own collection of environment variables, which were initially captured when Process A sprang into existence.
从操作角度来看,当属于多个规则集中所用决策点的一个规则被更新时,使用规则副本的所有规则集需要重新部署。
From an operations point of view, when a rule that belongs to a decision point used in multiple rulesets is updated, all the rulesets that are using a copy of the rule need to be redeployed.
您将变更集从存储库工作区交付到流,以将变更合并到主副本中;这些变更集是传出变更集。
You Deliver change sets from your repository workspace to the stream to incorporate your changes into the master copy; these are Outgoing change sets.
您将 签入(Check-in)自己的变更集,以将修改后的文件副本从 Eclipse工作区上载到存储库工作区。
You Check-in your change sets to upload copies of the modified files from your local workspace to the repository workspace.
不用节点集函数避免了出现树的两个副本的弊端,一个RTF和一个节点集容易造成混乱。
Avoidance of the node-set function eliminates bugs where two copies of the tree, one RTF and one node-set, get confused.
单一副本群集 (SCC)SCC是一种群集解决方案,它使用存储器(在群集中的节点之间共享)上存储组的单一副本。
Single Copy Clusters (SCC) SCC is a clustered solution that uses a single copy of a storage group on storage that is shared between the nodes in the cluster.
因部分特性集内发生更改,此邻居处于正在重新生成此副本内容的状态。
This neighbor is in a state where it is rebuilding the contents of this replica because of a change in the partial attribute set.
访问该程序集的每一应用程序域都必须具有静态数据的单独副本,以避免跨域边界引用静态字段中的对象。
Each application domain that accesses the assembly must have a separate copy of the static data, to prevent references to objects in static fields from crossing domain boundaries.
群集连续复制(CCR)CCR是一种群集解决方案,它使用内置异步日志传送技术,在另一个服务器上创建并维护存储组副本。
Cluster Continuous Replication (CCR) CCR is a clustered solution that uses built-in asynchronous log shipping technology to create and maintain a storage group copy on a second server.
群集连续复制(CCR)CCR是一种群集解决方案,它使用内置异步日志传送技术,在另一个服务器上创建并维护存储组副本。
Cluster Continuous Replication (CCR) CCR is a clustered solution that uses built-in asynchronous log shipping technology to create and maintain a storage group copy on a second server.
$firstVoiceSent
- 来自原声例句
请问您想要如何调整此模块?
感谢您的反馈,我们会尽快进行适当修改!
请问您想要如何调整此模块?
感谢您的反馈,我们会尽快进行适当修改!

我要回帖

更多关于 副本什么意思 的文章

 

随机推荐