標籤:
主從動作記錄oplog
MongoDB的Replica Set架構是通過一個日誌來儲存寫操作的,這個日誌就叫做"oplog"。oplog.rs是一個固定長度的capped collection,它存在於"local"資料庫中,用於記錄Replica Sets動作記錄。在預設情況下,對於64位的MongoDB,oplog是比較大的,可以達到5%的磁碟空間。oplog的大小是可以通過mongod的參數“--oplogSize”來設定。
rs1:PRIMARY> use localswitched to db localrs1:PRIMARY> show collectionsoplog.rssystem.replsetrs1:PRIMARY> db.oplog.rs.find(){ "ts" : { "t" : 1338457763000, "i" : 1 }, "h" : NumberLong(0), "op" : "n", "ns" : "", "o" : { "msg" :"initiating set" } }{ "ts" : { "t" : 1338459114000, "i" : 1 }, "h" : NumberLong("5493127699725549585"), "op" : "i","ns" : "test.c1", "o" : { "_id" : ObjectId("4fc743e9aea289af709ac6b5"), "age" : 29, "name" :"Tony" } }rs1:PRIMARY>View Code
欄位說明
ts: 某個操作的時間戳記
op: 操作類型,如下:
i: insert
d: delete
u: update
ns: 命名空間,也就是操作的collection name
o: document 的內容
查看master 的oplog 中繼資料資訊:
rs1:PRIMARY> db.printReplicationInfo()configured oplog size: 47.6837158203125MBlog length start to end: 1351secs (0.38hrs)oplog first event time: Thu May 31 2012 17:49:23 GMT+0800 (CST)oplog last event time: Thu May 31 2012 18:11:54 GMT+0800 (CST)now: Thu May 31 2012 18:21:58 GMT+0800 (CST)rs1:PRIMARY>
View Code
configured oplog size: 配置的oplog 檔案大小
log length start to end: oplog 日誌的啟用時間段
oplog first event time: 第一個交易記錄的產生時間
oplog last event time: 最後一個交易記錄的產生時間
now: 現在的時間
查看slave 的同步狀態
rs1:PRIMARY> db.printSlaveReplicationInfo()source: localhost:28011syncedTo: Thu May 31 2012 18:11:54 GMT+0800 (CST)= 884secs ago (0.25hrs)source: localhost:28012syncedTo: Thu May 31 2012 18:11:54 GMT+0800 (CST)= 884secs ago (0.25hrs)rs1:PRIMARY>
View Code
欄位說明
source: 從庫的IP 及連接埠
syncedTo: 目前的同步情況,延遲了多久等資訊
主從配置資訊
在local庫中不僅有主從日誌oplog集合,還有一個集合用於記錄主從配置資訊,即:system.replset
rs1:PRIMARY> use localswitched to db localrs1:PRIMARY> show collectionsoplog.rssystem.replsetrs1:PRIMARY> db.system.replset.find(){ "_id" : "rs1", "version" : 1, "members" : [{"_id" : 0,"host" : "localhost:28010"},{"_id" : 1,"host" : "localhost:28011"},{"_id" : 2,"host" : "localhost:28012"}] }rs1:PRIMARY>View Code
從這個集合中可以看出,Replica Sets 的配置資訊,也可以在任何一個成員執行個體上執行rs.conf()來查看配置資訊。
MongoDB整理筆記のReplica oplog