mongodb检查点_Mongodb 日志原理和操作

日志原理:

WiredTiger使用检查点在磁盘上提供一致性数据视图,并允许MongoDB从上一个检查点恢复。 但是,如果MongoDB在检查点之间意外退出,则需要使用日志记录来恢复上次检查点之后发生的信息。

通过日志记录,恢复过程如下:

查看数据文件以查找上一个检查点的标识符。

在日志文件中搜索与上一个检查点的标识符相匹配的记录。

自上次检查点以来,在日志文件中应用这些操作。

MongoDB WiredTiger 首先使用内存缓冲来存储日志记录,直到超过128 kB,才写入磁盘。根据以下时间间隔或条件,WiredTiger将缓冲的日记记录同步到磁盘:

3.2版新增功能:每50毫秒。

版本3.6中:MongoDB 设置检查点以60秒的间隔执行。

如果写入操作包含 j:true 的写入指令,则WiredTiger会强制WiredTiger日志文件同步。

由于MongoDB使用的日志文件大小限制为100 MB,WiredTiger大约每隔100 MB创建一个新的日志文件。当WiredTiger创建新的日志文件时,WiredTiger将同步前一个日志文件。

注意:

在写操作之间,当日志记录保留在WiredTiger缓冲区中时,在mongod强制关闭时更新可能会丢失。

日志方式:

不开启      journal

,写入 wiredtiger      的数据,并不会立即持久化存储;而是每分钟会做一次全量的checkpoint(

storage.syncPeriodSecs

配置项,默认为1分钟),将所有的数据持久化。

开启 journal 后

,每次写入会记录一条操作日志(通过journal可以重新构造出写入的数据)。这样即使出现宕机,启动时      Wiredtiger 会先将数据恢复到最近的一次checkpoint的点,然后重放后续的 journal 操作日志来恢复数据。

MongoDB 里的 journal 行为 主要由2个参数控制,

storage.journal.enabled

决定是否开启journal,

storage.journal.commitInternalMs

决定 journal 刷盘的间隔(

journal操作的最大间隔时间。可以是2-300ms之间的值,低的值有助于持久化,但是会增加磁盘的额外负担。

如果journal和数据文件在同一磁盘上,默认为100ms。如果在不同的磁盘上为30ms。

如果强制mongod提交日志文件,可以指定j:true,指定后,时间变为原来的三分之一

),默认为100ms,用户也可以通过写入时指定 writeConcern 为 {j: ture} 来每次写入时都确保 journal 刷盘。

日志切换:

use admin

db.runCommand( { logRotate : 1 } )

后者:

1 3 * * * killall -SIGUSR1 mongod

3 3 * * * killall -SIGUSR1 mongos

15 3 * * * /usr/bin/find /data/mongodb/data/prod_shard2_1/log/ -name "mongodb.log.*" -mtime +30 -exec rm -fr {} \;

19 3 * * * /usr/bin/find /data/mongodb/data/prod_configdb2/log/ -name "mongodb.log.*" -mtime +30 -exec rm -fr {} \;

21 3 * * * /usr/bin/find /data/mongodb/data/prod_mongos/log/ -name "mongodb.log.*" -mtime +30 -exec rm -fr {} \;

日志级别在配置文件中的加入:

use admin

db.runCommand( {

setParameter: 1,

logComponentVerbosity: {

verbosity: 1,

query: {

verbosity: 2

},

storage: {

verbosity: 2,

journal: {

verbosity: 1

}

}

}

} )

或者:

verbose&&quiet

mongodb默认情况下日志文件非常大,每秒都会记录大量的connection等调试信息,这对于我们管理日志和定位        错误有很大影响,需要修改它的默认日志级别。

mongodb的日志级别在配置文件中的verbose和quiet参数决定。verbose表示会打印debug信息,范例配置如下

verbose=true

vv=true

注:这里的vv表示debug级别,有vv-vvvvv,v越多则记录的日志信息越详细。

而如果设置了quiet=true参数,表示安静地输出,即不会再有debug信息,日志中只会打印一些关键的信息,比如        自动故障切换,系统错误等信息,相当于error log。这时需要注释掉verbose参数。范例配置如下:

#verbose=true

quiet=true

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/258370.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

UILabel 根据text的内容来调整大小

有时候,在UILabel的text过长的时候,我们需要让label进行自适应大小,之前我们必须要获得这个UILabel的size,这便是根据text的内容和性质(字体,行间距等决定的)。 在ios7中,使用boundi…

递归和分治思想及其应用

目录 递归和分治思想一些实例逆序输出字符串查找数组元祖是否存在汉诺塔问题八皇后问题更多:递归和分治思想 如果可以使用迭代,尽量别使用递归。由编译原理可以知道,每次自调用的时候,计算机都需要保存在调用,浪费时间…

AM+PM+FM基本调制原理及相关理论

总论: 调制信号: 模拟信号m(t),可以是正弦波信号、方波信号等任意信号,又称基带信号 载波信号:一般为正弦波信号 已调信号: 幅度调制AM---A(t)随m(t)成比例变化----线性调制 相位调制PM---随m(t)成比…

unix网络编程 的环境配置

<unix网络编程> 的环境配置 首先在网上下载UNP的库文件&#xff0c;然后就可以安装学了。我的系统环境&#xff1a; 2.6.32-131.0.15.el6.i686 #1 SMP Sat Nov 12 17:30:50 CST 2011 i686 i686 i386 GNU/Linux LSB Version: :base-4.0-ia32:base-4.0-noarch:core-4.0-…

win32 api 文件操作!

CreateFile打开文件要对文件进行读写等操作&#xff0c;首先必须获得文件句柄&#xff0c;通过该函数可以获得文件句柄&#xff0c;该函数是通向文件世界的大门。ReadFile从文件中读取字节信息。在打开文件获得了文件句柄之后&#xff0c;则可以通过该函数读取数据。WriteFile向…

小说里的lt什么意思_游戏cpdd网络用语是什么意思 王者荣耀里很常见

[闽南网]随着互联网的发展&#xff0c;越来越多的流行语横空出世&#xff0c;在网络上得到广泛使用。当一个网络语流行的时候&#xff0c;不管在微博上还是贴吧里&#xff0c;都会看见和流行语有关的句子和表情包。眼下在各种游戏里&#xff0c;总是能看到游戏玩家们说“cpdd”…

POJ 1637 Sightseeing tour 混合图欧拉回路存在性判断

没有想到网络流还能解决这一类问题&#xff0c;完全想不到_ 一开始把所有的无向边制定任意方向有当做有向边看&#xff0c;然后统计每个点的入度和出度。以前有向图的欧拉回路判定是每个点的入读都等于出度&#xff0c;这样可以保证可以回到起点&#xff0c;现在在一些边可以调…

linux系统 硬链接和软链接

背景&#xff1a; 当几个用户同在一个项目里工作时。经常须要共享文件。假设一个共享文件同一时候出如今属于不同用户的不同文件夹下。工作起来就非常方便。比如B和C文件夹下有一文件D是两者都能够訪问和改动的共享文件&#xff0c;这样是非常方便&#xff0c;但也会有一些问题…

jquery纯数字验证

$(document).ready(function(){ //纯数字验证,只让输入数字,比如-号等都不然输入。 $(#user-defined).unbind(); $(#user-defined).bind(keyup change,function () { $(this).val($(this).val().replace(/\D/g,));}); });转载于:https://www.cnblogs.com/kuiyeit/p/47940…

闪电模型数学_最经典的数学模型

最经典的数学模型怎样得到最好的女孩子的数学模型【关键词】怎样得到最好女孩子数学模型由于老天爷在你的生命中安排的异性并不是同时出现任你挑选&#xff0c;因此无论你在何时选择结婚都是有机会成本的。人们常常希望能够获得一个最可爱的人作为自己的伴侣。但是&#xff0c;…

最近提交一个mysql5.7的bug,提醒自己以后注意写SQL要规范

最近帮朋友提交一个mysql5.7的bug , oracle mysql 的大神还回复我 , 以后注意书写sql规范 , 潜台词是不是不要给他们增加工作量 https://bugs.mysql.com/bug.php?id86610转载于:https://www.cnblogs.com/kelvin19840813/p/7052983.html

openssl 学习之从证书中提取RSA公钥N 和 E

原文链接: http://blog.csdn.net/kkxgx/article/details/19850509 通常数字证书包含很多信息&#xff0c;其中N和E值即我们称为的公钥。如何从PEM 或者DER格式的证书中提出证书呢&#xff1f;下面给出代码实现从PEM和DER编码的证书中提出N、E。 [cpp] view plaincopy #include …

获得汉字字符个数

//获得汉字字符个数function ChineseWordsCount(text:string):Integer;var i,sum,e,c,t: Integer;begin Result:0; c : 0; sum : Length(text); if Sum0 then exit; for i : 0 to sum do begin if Ord(text[i]) > 127 then begin Inc(c); end; end;…

2020湖南省技能竞赛获奖名单_2020年湖南省职业院校技能竞赛学院获奖情况通报...

由湖南省教育厅、湖南省人力资源和社会保障厅、湖南省农业农村厅等30个单位联合举办的2020年湖南省职业院校技能竞赛于2019年12月28日已经圆满结束所有竞赛项目&#xff0c;我院选派了190名选手参加了园林景观设计与施工、鸡新城疫抗体水平测定、集成电路开发及应用、农机维修、…

Web browser的发展演变

我们每天都在使用着浏览器&#xff0c;每个人使用的浏览器各不一样。在这个科技飞速发展的时代&#xff0c;一个游览器能否站住脚跟取决于使用者的数量&#xff0c;看用户是否喜欢这个产品&#xff0c;听取用户们的意见来改善。 我们这个年龄的人最初用到的浏览器肯定是IE浏览器…

nodejs简单层级结构配置文件

在NodeJS中使用配置文件&#xff0c;有几种比较不错的方案&#xff1a;第一种&#xff1a;文件格式使用json是毋容置疑的好方案。格式标准&#xff0c;易于理解&#xff0c;文件内容读取到内存之后&#xff0c;使用JSON的标准分析函数即可得到配置项。第二种&#xff1a;将配置…

C++语言基础(1)-命名空间

一个中大型软件往往由多名程序员共同开发&#xff0c;会使用大量的变量和函数&#xff0c;当有两个人都同时定义了一个名字相同的全局变量或函数的时候&#xff0c;若是把他们的代码整合在一块编译&#xff0c;此时编译器就会提示变量或函数重复定义&#xff0c;C为了解决这个问…

matlab 散点图 线性回归图_线性回归思路梳理

作者&#xff1a;夏雨骄阳 封面&#xff1a;自己想吧1简单线性回归1根据研究目的确定因变量和自变量。2判断有无异常值。通过绘制散点图直观观察&#xff1b;亦可通过线性回归的【统计】→【个案诊断】→【所有个案】进行分析&#xff0c;若标准残差超过[-3,3]&#xff0c;则…

物联网云端设计分析

物联网是世界信息产业发展的新浪潮&#xff0c;智能手表、智能手环、智能灯等物联网产品不断的改变着人们的生活方式。那这些产品是怎么设计出来的呢&#xff1f;其实物联网操作系统不光由本地物联网设备上的操作系统组成&#xff0c;还包括提供物联网终端设备支持的云端架构。…

PHP使用文件流下载文件方法(附:解决下载文件内容乱码问题)

记得高中时候做过游戏私服&#xff0c;那时候的游戏主页是用PHP写的&#xff0c;因为文件很固定&#xff0c;客户端&#xff0c;登陆器和一些小工具&#xff0c;文件数目也不是很多&#xff0c;所以都是直接把下载链接写死的&#xff0c;直接链接到本地服务器的文件目录&#x…