转载地址:http://francs3.blog.163.com/blog/static/4057672720121133328120/

之前的blog  学习了 MongoDB 主从搭建,以及节点管理的内容,接下来学习
实现主从复制一个重要角色,即 Oplog。

MongoDB 的复制集是通过 Oplog 来实现的,主库的更改操作会被记录到主库的 Oplog
日志中,然后从库通过异步方式复制主库的 Oplog 文件并且将 Oplog 日志应用到从库,从而
实现了与主库的同步。

--1 关于 oplog 的大小
       创建 mongod 服务时可以指定 --oplogSize  参数指定 oplog 大小,如果不指定,不同
操作系统上的 oplog 默认大小不同,具体为以下:

1 For 64-bit Linux, Solaris, and FreeBSD systems:可以分配 5% 的剩余空间。
    如果分配的值仍小于 1GB,那么会分配 1GB。
    
  2 For 64-bit OS X systems:分配 183MB。
    
  3 For 32-bit systems:分配 48MB。    
  
  
--2 查看 oplog 的内容

 rs0:PRIMARY> show dbs;
local   0.125GB
test    0.0625GB

rs0:PRIMARY> use local;
switched to db local

rs0:PRIMARY> show collections;
me
oplog.rs
replset.minvalid
slaves
system.indexes
system.replset

rs0:PRIMARY> db.oplog.rs.find();
{ "ts" : Timestamp(1354037833000, 1), "h" : NumberLong("-190625176257847918"), "v" : 2, "op" : "i", "ns" : "test.test_3", "o" : { "_id" : ObjectId("50b4fa49f2d598e740e3ee7a"), "id" : 1 } }
{ "ts" : Timestamp(1354038811000, 1), "h" : NumberLong("6383516783459941672"), "v" : 2, "op" : "i", "ns" : "test.test_4", "o" : { "_id" : ObjectId("50b4fe1b15747af472f54831"), "id" : 1 } }

备注:local 库中的集合 oplog.rs 记录了oplog 操作日志内容。

--3 查看 oplog 的状态
   通过 db.printReplicationInfo() 命令查看 oplog 状态。

 [mongo@redhatB ~]$ mongo 127.0.0.1:27018
MongoDB shell version: 2.2.1
connecting to: 127.0.0.1:27018/test

rs0:PRIMARY> db.printReplicationInfo();
configured oplog size
:   47.6837158203125MB
log length start to end: 978secs (0.27hrs)
oplog first event time:  Wed Nov 28 2012 01:37:13 GMT+0800 (CST)
oplog last event time:   Wed Nov 28 2012 01:53:31 GMT+0800 (CST)
now:                     Wed Nov 28 2012 20:58:52 GMT+0800 (CST)

备注:输出信息包括 oplog 日志大小,操作日志记录的起始时间。

--4 查看从库同步状态

 rs0:PRIMARY> db.printSlaveReplicationInfo();
source:   redhatB.example.com:27019
         syncedTo: Wed Nov 28 2012 01:53:31 GMT+0800 (CST)
                 = 69673 secs ago (19.35hrs)
source:   redhatB.example.com:27020
         syncedTo: Wed Nov 28 2012 01:53:31 GMT+0800 (CST)
                 = 69673 secs ago (19.35hrs)

备注:输出信息包括从库的主机名,port 信息等。             
                 
--5 参考
http://docs.mongodb.org/manual/core/replication/#replica-set-oplog-sizing
http://docs.mongodb.org/manual/reference/local-database/

 
 
 

MongoDB:Replica Set 之操作日志 Oplog的更多相关文章

  1. mongodb复制集里查看主从操作日志oplog

    MongoDB的replica set架构是通过一个日志来存储写操作的,这个日志就叫做 oplog .oplog.rs 是一个固定长度的 Capped Collection,它存在于local数据库中 ...

  2. mongodb replica set(副本集)设置步骤

    网上已经有一大堆的设置步骤的了,根据我遇到的问题,整理一下,如下: 首先先去下载一个mongodb最新版,目前最新版应该是2.6 cd /usr/local/bin wget http://fastd ...

  3. 关于MongoDb Replica Set的故障转移集群——实战篇

    如果你还不了解Replica Set的相关理论,请猛戳传送门阅读笔者的上一篇博文. 因为Replica Set已经属于MongoDb的进阶应用,下文中关于MongoDb的基础知识笔者就不再赘述了,请参 ...

  4. 关于MongoDb Replica Set的故障转移集群——理论篇

    自从10 gen用Replica Set取代Master/Slave方案后生活其实已经容易多了,但是真正实施起来还是会发现各种各样的小问题,如果不小心一样会栽跟头. 在跟Replica Set血拼几天 ...

  5. MongoDB 学习笔记(三) MongoDB (replica set) 集群配置

    MongoDB Replica Sets的结构类似于以集群,完全可以把他当成一个集群,因为他确实与集群实现的作用是一样的:如果其中一个节点出现故障,其他的节点会马上将业务接管过来.而无需停机操作 Mo ...

  6. mongodb replica set 和 nodejs中使用mongoose连接replica

    一.mongodb replication 介绍 官网上的第一句话就是Replication is the process of synchronizing data across multiple ...

  7. mongodb的mongod.lock文件及oplog文件

    在mongodb的启动时,在数据目录下,会生成一个mongod.lock文件.如果在正常退出时,会清除这个mongod.lock文件,若要是异常退出,在下次启动的时候,会禁止启动,从而保留一份干净的一 ...

  8. mongodb replica set 配置高性能多服务器详解

    mongodb的多服务器配置,以前写过一篇文章,是master-slave模式的,请参考:详解mongodb 主从配置.master-slave模式,不能自动实现故障转移和恢复.所以推荐大家使用mon ...

  9. (1)解锁 MongoDB replica set核心姿势

    副本集Replica Set是一个术语,定义具有多节点的数据库集群,这些节点具有主从复制(master-slave replication) 且节点之间实现了自动故障转移. 这样的结构通常需要具有奇数 ...

随机推荐

  1. 357. Count Numbers with Unique Digits

    Given a non-negative integer n, count all numbers with unique digits, x, where 0 ≤ x < 10n. Examp ...

  2. js confirm用法

    <script> $('.tzshanchu').click(function(){ if(confirm('是否确认删除')){ alert('删除了') } });</scrip ...

  3. uva 11020 - Efficient Solutions ——平衡BST

    链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&am ...

  4. 第一篇TC界面设计

    TC界面设计方法 第一:确定自己最终界面的大小. 第二:根据功能需要,选择相应的控价. 第三:美化界面,对界面的控件调整布局位置,设置字体颜色设置背景图片等等 脚本代码: function 按钮1_点 ...

  5. Codeforces Round #124 (Div. 2)

    A. Plate Game 如果可以放置一个圆的情况下,先手将圆放置在矩形正中心,那么根据对称性,先手只要放后手的对称的位置即可,也就是先手必胜,否则后手胜. B. Limit 讨论\(n,m\)的大 ...

  6. scala言语基础学习七

    一.将函数赋值给变量 二.匿名函数 三.高阶函数 高阶函数好像调用不打印是看不到赋值 和普通函数区别 高阶函数的类型推断 reduce操作 相当于1*2*3*4*5*6*7*8*9 def getNa ...

  7. ExtJS控件样式修改及美化

    Extjs项目对富客户端开发提供了强有力的支持,甚至改变了前端的开发方式,使得开发变得更加趋向于“面向组件”.对界面的美化而言,也是根本性的改变.普通的网页美工面对extjs项目根本无法下手,需要脚本 ...

  8. 磁盘分区、格式化、挂载[转自vbird]

    磁盘分区.格式化.挂载磁盘分区    新增分区    查询分区    删除分区磁盘格式化    mkfs    mke2fs磁盘挂载与卸载    mount    umount 磁盘的分区.格式化.挂 ...

  9. jquery插件参数传递

    当传递的参数在函数中未定义时,不会报错,但也不会发生作用,这会造成怎么传递参数不起作用的困惑.

  10. QQ登入(4)QQ分享-内容转载

    ///////////////////QQ分享///////////// public void myclick3(View v){ //shareType : SHARE_TO_QQ_TYPE_IM ...