之前的blog 学习了 MongoDB 主从搭建,以及节点管理的内容,接下来学习实现主从复制一个重要角色,即 Oplog。
MongoDB 的复制集是通过 Oplog 来实现的,主库的更改操作会被记录到主库的 Oplog 日志中,然后从库通过异步方式复制主库的 Oplog 文件并且将 Oplog 日志应用到从库,从而实现了与主库的同步。
关于 Oplog 的大小
创建 mongod 服务时可以指定 –oplogSize 参数指定 oplog 大小,如果不指定,不同操作系统上的 oplog 默认大小不同,具体为以下:
- For 64-bit Linux, Solaris, and FreeBSD systems:可以分配 5% 的剩余空间。如果分配的值仍小于 1GB,那么会分配 1GB。
- For 64-bit OS X systems:分配 183MB。
- For 32-bit systems:分配 48MB。
查看 Oplog 的内容
1 |
rs0:PRIMARY> show dbs; |
备注:local 库中的集合 oplog.rs 记录了oplog 操作日志内容。
查看 Oplog 的状态
通过 db.printReplicationInfo() 命令查看 oplog 状态。
1 |
[mongo@redhatB ~]$ mongo 127.0.0.1:27018 |
备注:输出信息包括 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