转载地址: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. 关于sql where id in 转换成数据类型 int 时失败(转)

    有执行sql条件语句where id in(@参数)的时候,如果处理不当,就会出现问题:如下面这个存储过程: alter proc Web_gettwtwgoldgameserverGoldSell@ ...

  2. Java动物声音模拟器

    abstract class Animal{ abstract void cry(); abstract String getAnimalName(); } class Simulator{ void ...

  3. POJ 1043 What's In A Name?(唯一的最大匹配方法)

                                                            What's In A Name? Time Limit: 1000MS   Memor ...

  4. mysql修改列名和列类型

    MySQL中修改列名或列的数据类型 (2012-04-03 08:59:25) 转载▼ 标签: mysql 修改列名 修改列数据类型 it 分类: 数据库 参考下面链接中的语法 http://dev. ...

  5. Unity Shader _Time

    _Time是个4维向量,跟Unity3D中的deltaTime(这是个一维的,数值)不同. float4 _Time : Time (t/20, t, t*2, t*3), use to animat ...

  6. VC线程中操作控件,引起程序卡死的问题。

    [问题还原] 线程中操作控件,具体为控制一个按键的使能,使能后结束线程. 主程序中有一个死循环,等待线程结束. 然后,就没有然后了-- [解决方案] 在主程序死循环中,如果检测到界面消息,优先处理掉.

  7. 《FreeSWITCH: VoIP实战》:SIP 模块 - mod_sofia

    SIP 模块是 FreeSWITCH 的主要模块,所以,值得拿出专门一章来讲解. 在前几章时里,你肯定见过几次 sofia 这个词,只是或许还不知道是什么意思.是这样的,Sofia-SIP 是由诺基亚 ...

  8. 我今天也学习了做jquery插件

    先贴代码 (function ( $ ) { var id=33; $.fn.validate=function(options){ // This is the easiest way to hav ...

  9. Android Studio导入GitHub上的项目常见问题(有例子)

    前言:github对开发者而言无疑是个宝藏,但想利用它可不是件简单的事,用Android studio导入开源项目会遇到各种问题,今天我就以github上的一个图片轮播项目为例,解决导入过程中的常见问 ...

  10. ABBYY FineReader 12双十一特价来袭

    大家似乎都知道:好的办公软件,只要对自己有用,再贵都值得. 可偏偏有人不以为然,几百块钱也是肉啊.也对,毕竟不是人人都能做到"舍得".但没有舍,哪来的得呢? 作为优秀的光学字符识别 ...