我最近开始使用MongodDb,我正在尝试探索副本集和崩溃恢复.
我已经读过像日志文件那样写一个头重做日志文件.oplog文件是将写入每个写入活动的文件.
这两个有什么区别......?我们在主设备和从设备上都有oplog吗?请发布任何有关该领域的网站链接.
mil*_*lan 14
Oplog存储修改数据库的高级事务(例如,不存储查询),例如插入此文档,更新等等.Oplog保留在主服务器上,从服务器将定期轮询主服务器以获取新执行的操作(因为最后的民意调查)操作有时会在存储到oplog之前进行转换,以便它们是幂等的(并且可以安全地应用多次).
另一方面,Journal可以在任何节点(主站或从站)上打开/关闭,并且是用于崩溃恢复和单个mongo实例的持久性的操作的低级日志.您可以读取低级操作,例如"在此位置将这些字节写入此文件".
小智 7
Oplog 只是一个有上限的集合,MongoDB 会在其中跟踪其集合中的所有更改(插入、更新、删除)。它不跟踪读取操作。MongoDB 使用 oplog 来传播副本集中所有节点内的所有更改。辅助节点复制并应用此更改。
日志是底层存储引擎的一个特性。由于 MongoDB 3.2 默认存储引擎是 WiredTiger,并且自 MongoDB 4.0 起,您无法禁用 WiredTiger 的日志功能。所有操作都在日志文件中进行跟踪。WiredTiger 使用检查点在崩溃时恢复数据。每 60 秒创建一次检查点。如果在检查点之间发生崩溃,一些数据可能会丢失。为了防止这种情况,WiredTiger 使用日志文件在最后一个检查点之后应用所有更改。
一般来说,MongoDB 中的写入流程是这样的:
归档时间: |
|
查看次数: |
5417 次 |
最近记录: |