mongodb oplog和journal

The oplog (operations log) 就是数据库中发生的所有数据修改记录
journal指的是WiredTiger 存储引擎的write-ahead log

要统计 MongoDB Oplog 中各表项数据,可以使用以下步骤: 1. 连接到 MongoDB 数据库,并打开 Oplog。 2. 执行一个聚合查询来获取 Oplog 中所有操作的列表。可以使用 `$match` 过滤出指定时间范围内的操作。 3. 对于每一个操作,获取操作的名称和操作涉及的表格名称。可以从操作的 `op` 字段中获取操作名称,从操作的 `ns` 字段中获取表格名称。 4. 对于每一个表格,统计其涉及的操作数量。可以使用 `$group` 聚合操作来实现。 以下是一个示例代码,可以帮助你实现这个过程: ```python from pymongo import MongoClient # 连接到 MongoDB 数据库 client = MongoClient('mongodb://localhost:27017/') # 打开 Oplog oplog = client.local.oplog.rs # 聚合查询,获取 Oplog 中所有操作的列表 query = [ {"$match": {"ts": {"$gt": 1614556800, "$lt": 1617158400}}}, {"$project": {"_id": 0, "op": 1, "ns": 1}} ] cursor = oplog.aggregate(query) # 统计每一个表格涉及的操作数量 table_ops = {} for doc in cursor: op = doc["op"] table = doc["ns"].split(".", 1)[1] if table not in table_ops: table_ops[table] = {} if op not in table_ops[table]: table_ops[table][op] = 0 table_ops[table][op] += 1 # 打印结果 for table, ops in table_ops.items(): print(table) for op, count in ops.items(): print(f" {op}: {count}") ``` 在上面的代码中,我们首先连接到 MongoDB 数据库,并打开 Oplog。然后执行了一个聚合查询,获取指定时间范围内 Oplog 中所有操作的列表。接下来,我们对每一个操作,获取操作的名称和操作涉及的表格名称,并统计每一个表格涉及的操作数量。最后,我们打印了结果,以便查看每一个表格的操作数量。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值