MongoDB:Replica Set 之操作日志 Oplog

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

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

关于 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。

查看 Oplog 的内容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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 操作日志内容。

查看 Oplog 的状态

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

1
2
3
4
5
6
7
8
9
10
[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 日志大小,操作日志记录的起始时间。

查看从库同步状态

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 信息等。

参考

http://docs.mongodb.org/manual/core/replication/#replica-set-oplog-sizing
http://docs.mongodb.org/manual/reference/local-database/

原创文章,作者:3628473679,如若转载,请注明出处:https://blog.ytso.com/237925.html

(0)
上一篇 2022年1月29日
下一篇 2022年1月29日

相关推荐

发表回复

登录后才能评论