Mongodb主从架构

原创 2013年12月03日 21:05:29

Mongodb主从架构

一、介绍:

主从复制是Mongodb最常用的复制方式。这种方式非常灵活,可用于备份、故障恢复、读扩展等。


从上面的图形中我们可以分析出这种架构有如下的好处:

     <1> 数据备份。

     <2> 数据恢复。

     <3> 读写分离。

最基本的方式就是建立一个主节点和一个或者多个从节点,每个从节点要知道主节点的地址。主节点服务器使用mongod --master方式启动,而从节点服务器则使用mongod --slave --sourcemaster_address方式启动。其中master_address指的是主节点服务器的地址。

二、工作原理:

总的来说,mongodb的复制至少需要两个服务器或者节点。其中一个是主节点,负责处理客户端请求,其他的都是从节点,负责映射主节点的数据。主节点记录在其上执行的所有操作(oplog)。从节点定期轮询主节点获得这些操作,然后对自己的数据副本执行这些操作。由于和主节点执行了相同的操作,从节点就能保持与主节点的数据同步。

2.1Oplog:

主节点的操作记录成为oplog(operation log)。Oplog存储在一个特殊的数据库中,叫做local。Oplog就在其中的oplog.$main集合里面。Oplog中的每个文档都代表主节点上执行的一个操作。文档包含的键如下:

Ts: 操作的时间戳。用于跟踪操作执行的时间。

Op:操作类型,(“i”代表插入)

Ns:执行操作的命名空间(集合名)

O:进一步指定要执行的操作的文档。对插入来说,就是要插入的文档。

需要强调的是oplog只记录改变数据库状态的操作。如查询就不存了。

另外,oplog存储在固定的集合中。由于新操作也会存储在oplog中,它们会自动替换旧的操作。这样就能保证oplog不超过预先设定的大小。可通过启动服务器时指定--oplogSize来设定大小,单位为MB。默认情况下,64位实例将使用oplog 5%的可用空间。这个空间将在local数据库中分配,并在服务器启动时预先分配。

2.2同步

从节点第一次启动时,会对主节点数据进行完成的同步。从节点复制主节点上的每个文档,比较耗时。同步完成后,从节点开始查询主节点的oplog并执行这些操作,以保证数据是最新的。

 

三、实例

准备:

两台服务器:

192.168.192.68:master


192.168.229.79:slave

 

 

开启主服务器:

 

开启从服务器:

 

主服务器分配完空间:可以看到预分配了local.ns,local.0.local.1.local.2,全部以0填充

 

68等待slave:


79等待master:

 

查看从库(79)初始值:只有一个local

 

主库(68)插入一条记录:

 

从库(79)开始了拷贝:


查看从库(79)的数据:可以看到,数据已经同步过来了

 

客户端可以通过指定读取secondary来做读写分离

ds.getMongo().setReadPreference(ReadPreference.SECONDARY);

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

MongoDb主从配置清单

mongoDB——主从复制介绍及简单实现

mongoDB有一个主要特性就是复制,有多种复制形式,其中,主从复制是比较常用的一种。       主从复制的工作原理:首先要有两个或更多的服务器,其中一个是主节点,负责处理客户端的请求,其他的...

zend框架里架构mysql主从

  • 2013-01-17 16:06
  • 3.61MB
  • 下载

mongodb主从同步及备份还原

主从同步: 1.建立数据库目录 mkdir  /mongodb/masterdb mkdir /mongodb/slavedb_1 mkdir /mongodb/slavedb_2 2....

8天学通MongoDB——第五天 主从复制

8天学通MongoDB——第五天 主从复制      从这一篇开始我们主要讨论mongodb的部署技术。     我们知道sql server能够做到读写分离,双机热备份和集群部署,当然m...

MongoDB主从复制实践

mongodb主从复制配置实践: mongodb的主从复制是一种常用的复制方式,即为一个数据库同步备份的集群技术。 基本结构:一个主节点和一个或者多个从节点:

Mongodb源码分析--Replication之主从模式--Slave

Mongodb源码分析--Replication之主从模式--Slave 收藏     在上文中介绍了主从(master-slave)模式下的一些基本概念及master的执行流程。今天接着介绍一下从(...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)