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.pswp.cn/news/258370.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/258370.shtml
英文地址,請注明出處:http://en.pswp.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…