MongoDB如何查oplog.rs集合里的操作日志
发表于:2024-09-22 作者:千家信息网编辑
千家信息网最后更新 2024年09月22日,首先需要介绍一下mongodb local库的作用local库是MongoDB的系统库,记录着时间戳和索引和复制集等信息test:PRIMARY> use localswitched to db lo
千家信息网最后更新 2024年09月22日MongoDB如何查oplog.rs集合里的操作日志首先需要介绍一下mongodb local库的作用
local库是MongoDB的系统库,记录着时间戳和索引和复制集等信息
test:PRIMARY> use local
switched to db local
test:PRIMARY> show tables;
system.replset
me
startup_log
replset.minvalid
oplog.rs
replset.election
test:PRIMARY>
local库下的每个集合分别记录的内容
local库下面的me集合保存了服务器名称
local库下面的replset.minvalid集合保存了数据库最新操作的时间戳
local库下面的startup_log集合记录这mongod每一次的启动信息
local库下面的system.indexes集合记录当前库的所有索引信息
local库下面的system.replset记录着复制集的成员配置信息rs.conf()读取这个集合
local库下面的oplog.rs集合记录着所有操作,MongoDB就是通过oplog.rs来实现数据同步的。当Primary节点插入一条数据后,oplog.rs集合中就会多一条记录
op:操作类型,插入对应i;更新对应u;删除对应d;但有一种情况是n,它表示无操作(no-op),紧紧代表一个消息信息。
例如:
查询oplog里的insert记录,对应op为i的记录:
test:PRIMARY> db.oplog.rs.find({"op" : "i"}).pretty().limit(3)
查update操作命令:
test:PRIMARY> db.oplog.rs.find({"op" : "u"}).pretty().limit(3)
test:PRIMARY>
查delete操作命令:
test:PRIMARY> db.oplog.rs.find({"op" : "d"}).pretty().limit(3)
根据时间范围查操作:
例如:
查找2017年9月1日之后的操作记录:
test:PRIMARY> db.oplog.rs.find({"o.createTime": {$gte:new Date(2017,9,1)}}).limit(3)
查2017年9月1日到10月31日之间的操作记录:
test:PRIMARY> db.oplog.rs.find({"o.createTime": {$gte:new Date(2017,9,1),$lte:new Date(2017,10,31)}}).limit(3)
我们查查对chenfeng表进行操作的所有的 oplog 记录
test:PRIMARY> db.oplog.rs.find({ns : "testdb.chenfeng"})
查操作的时间戳:
db.oplog.rs.find({"op" : "i","ns" : "testdb.chenfeng",},{ts:1}).pretty()
{ "ts" : Timestamp(1509246747, 1) }
{ "ts" : Timestamp(1509246747, 2) }
{ "ts" : Timestamp(1509246747, 3) }
{ "ts" : Timestamp(1509246747, 4) }
{ "ts" : Timestamp(1509246747, 5) }
当前操作时间点的时间戳:
test:PRIMARY> rs.status().members[0].optime.ts
Timestamp(1509247609, 3001)
如何备份oplog集合:
[root@192 new]# mongodump --host localhost --port 9336 -uadmin -padmin --authenticationDatabase=admin -d local -c oplog.rs -o /root/new
2017-10-29T12:36:45.605+0800 writing local.oplog.rs to local/oplog.rs.bson
2017-10-29T12:36:48.606+0800 [#.......................] local.oplog.rs 398917/4937240 (8.1%)
2017-10-29T12:36:51.610+0800 [###.....................] local.oplog.rs 812569/4937240 (16.5%)
2017-10-29T12:36:54.611+0800 [#####...................] local.oplog.rs 1208741/4937240 (24.5%)
2017-10-29T12:36:57.607+0800 [#######.................] local.oplog.rs 1570342/4937240 (31.8%)
2017-10-29T12:37:00.617+0800 [#########...............] local.oplog.rs 1948323/4937240 (39.5%)
2017-10-29T12:37:03.606+0800 [###########.............] local.oplog.rs 2346269/4937240 (47.5%)
2017-10-29T12:37:06.606+0800 [#############...........] local.oplog.rs 2741569/4937240 (55.5%)
2017-10-29T12:37:09.609+0800 [###############.........] local.oplog.rs 3137392/4937240 (63.5%)
2017-10-29T12:37:12.606+0800 [#################.......] local.oplog.rs 3533685/4937240 (71.6%)
2017-10-29T12:37:15.610+0800 [##################......] local.oplog.rs 3897290/4937240 (78.9%)
2017-10-29T12:37:19.672+0800 [###################.....] local.oplog.rs 3947430/4937240 (80.0%)
2017-10-29T12:37:21.609+0800 [####################....] local.oplog.rs 4147978/4937240 (84.0%)
2017-10-29T12:37:24.607+0800 [#####################...] local.oplog.rs 4518546/4937240 (91.5%)
2017-10-29T12:37:27.606+0800 [#######################.] local.oplog.rs 4910376/4937240 (99.5%)
2017-10-29T12:37:27.758+0800 writing local.oplog.rs metadata to local/oplog.rs.metadata.json
2017-10-29T12:37:27.770+0800 done dumping local.oplog.rs (4937240 documents)
用bsondump查操作记录:
查插入操作:
# bsondump oplog.rs.bson | grep "\"op\":\"i\"" | head
查删除操作:
# bsondump oplog.rs.bson | grep "\"op\":\"d\"" | head
查更新操作:
[root@192 local]# bsondump oplog.rs.bson | grep "\"op\":\"u\"" | head
恢复oplog集合命令:
mongorestore --host localhost --port 9336 -uadmin -padmin --authenticationDatabase=admin -d local -c oplog.rs /root/new/local/oplog.rs.bson
local库是MongoDB的系统库,记录着时间戳和索引和复制集等信息
test:PRIMARY> use local
switched to db local
test:PRIMARY> show tables;
system.replset
me
startup_log
replset.minvalid
oplog.rs
replset.election
test:PRIMARY>
local库下的每个集合分别记录的内容
local库下面的me集合保存了服务器名称
local库下面的replset.minvalid集合保存了数据库最新操作的时间戳
local库下面的startup_log集合记录这mongod每一次的启动信息
local库下面的system.indexes集合记录当前库的所有索引信息
local库下面的system.replset记录着复制集的成员配置信息rs.conf()读取这个集合
local库下面的oplog.rs集合记录着所有操作,MongoDB就是通过oplog.rs来实现数据同步的。当Primary节点插入一条数据后,oplog.rs集合中就会多一条记录
op:操作类型,插入对应i;更新对应u;删除对应d;但有一种情况是n,它表示无操作(no-op),紧紧代表一个消息信息。
例如:
查询oplog里的insert记录,对应op为i的记录:
test:PRIMARY> db.oplog.rs.find({"op" : "i"}).pretty().limit(3)
查update操作命令:
test:PRIMARY> db.oplog.rs.find({"op" : "u"}).pretty().limit(3)
test:PRIMARY>
查delete操作命令:
test:PRIMARY> db.oplog.rs.find({"op" : "d"}).pretty().limit(3)
根据时间范围查操作:
例如:
查找2017年9月1日之后的操作记录:
test:PRIMARY> db.oplog.rs.find({"o.createTime": {$gte:new Date(2017,9,1)}}).limit(3)
查2017年9月1日到10月31日之间的操作记录:
test:PRIMARY> db.oplog.rs.find({"o.createTime": {$gte:new Date(2017,9,1),$lte:new Date(2017,10,31)}}).limit(3)
我们查查对chenfeng表进行操作的所有的 oplog 记录
test:PRIMARY> db.oplog.rs.find({ns : "testdb.chenfeng"})
查操作的时间戳:
db.oplog.rs.find({"op" : "i","ns" : "testdb.chenfeng",},{ts:1}).pretty()
{ "ts" : Timestamp(1509246747, 1) }
{ "ts" : Timestamp(1509246747, 2) }
{ "ts" : Timestamp(1509246747, 3) }
{ "ts" : Timestamp(1509246747, 4) }
{ "ts" : Timestamp(1509246747, 5) }
当前操作时间点的时间戳:
test:PRIMARY> rs.status().members[0].optime.ts
Timestamp(1509247609, 3001)
如何备份oplog集合:
[root@192 new]# mongodump --host localhost --port 9336 -uadmin -padmin --authenticationDatabase=admin -d local -c oplog.rs -o /root/new
2017-10-29T12:36:45.605+0800 writing local.oplog.rs to local/oplog.rs.bson
2017-10-29T12:36:48.606+0800 [#.......................] local.oplog.rs 398917/4937240 (8.1%)
2017-10-29T12:36:51.610+0800 [###.....................] local.oplog.rs 812569/4937240 (16.5%)
2017-10-29T12:36:54.611+0800 [#####...................] local.oplog.rs 1208741/4937240 (24.5%)
2017-10-29T12:36:57.607+0800 [#######.................] local.oplog.rs 1570342/4937240 (31.8%)
2017-10-29T12:37:00.617+0800 [#########...............] local.oplog.rs 1948323/4937240 (39.5%)
2017-10-29T12:37:03.606+0800 [###########.............] local.oplog.rs 2346269/4937240 (47.5%)
2017-10-29T12:37:06.606+0800 [#############...........] local.oplog.rs 2741569/4937240 (55.5%)
2017-10-29T12:37:09.609+0800 [###############.........] local.oplog.rs 3137392/4937240 (63.5%)
2017-10-29T12:37:12.606+0800 [#################.......] local.oplog.rs 3533685/4937240 (71.6%)
2017-10-29T12:37:15.610+0800 [##################......] local.oplog.rs 3897290/4937240 (78.9%)
2017-10-29T12:37:19.672+0800 [###################.....] local.oplog.rs 3947430/4937240 (80.0%)
2017-10-29T12:37:21.609+0800 [####################....] local.oplog.rs 4147978/4937240 (84.0%)
2017-10-29T12:37:24.607+0800 [#####################...] local.oplog.rs 4518546/4937240 (91.5%)
2017-10-29T12:37:27.606+0800 [#######################.] local.oplog.rs 4910376/4937240 (99.5%)
2017-10-29T12:37:27.758+0800 writing local.oplog.rs metadata to local/oplog.rs.metadata.json
2017-10-29T12:37:27.770+0800 done dumping local.oplog.rs (4937240 documents)
用bsondump查操作记录:
查插入操作:
# bsondump oplog.rs.bson | grep "\"op\":\"i\"" | head
查删除操作:
# bsondump oplog.rs.bson | grep "\"op\":\"d\"" | head
查更新操作:
[root@192 local]# bsondump oplog.rs.bson | grep "\"op\":\"u\"" | head
恢复oplog集合命令:
mongorestore --host localhost --port 9336 -uadmin -padmin --authenticationDatabase=admin -d local -c oplog.rs /root/new/local/oplog.rs.bson
时间
面的
信息
命令
数据
索引
更新
之间
代表
作用
内容
名称
备份
就是
情况
成员
数据库
日到
服务器
消息
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网警加强网络安全执法检查
网络安全索罗战队
在赫网络技术
网络技术 数据库技术选哪个
什么是软件什么是软件开发
泉州软件开发社交app
天津调度服务器安装云主机云空间
网络安全手抄报图片简单无字
霍尼韦尔中心管理服务器手册
学计算机网络技术要英语好吗
专升本计算机数据库难还是编程难
数据库技术与实训2012
两地三中心网络安全方案
外省的网络安全监察是公安专业吗
菏泽游戏软件开发
易次元服务器维修
数据库配置问价加密
网络技术笔试题库
河北省学软件开发
计算机网络技术基础读书笔记
软件开发如何编写会计报表
华融融通科技 互联网化
壹町美网络技术
第四次工业革命网络安全
网络安全的辩论串词
网易邮箱提示网络安全隐患
我的世界密室杀手手机服务器下载
互联网科技导航
2b2 t服务器是什么版本
古风服务器名字大全