欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

Mongodb日志原理和操作

創(chuàng)新互聯(lián)建站秉承實(shí)現(xiàn)全網(wǎng)價(jià)值營(yíng)銷的理念,以專業(yè)定制企業(yè)官網(wǎng),成都做網(wǎng)站、成都網(wǎng)站設(shè)計(jì),微信平臺(tái)小程序開(kāi)發(fā),網(wǎng)頁(yè)設(shè)計(jì)制作,移動(dòng)網(wǎng)站建設(shè)營(yíng)銷型網(wǎng)站幫助傳統(tǒng)企業(yè)實(shí)現(xiàn)“互聯(lián)網(wǎng)+”轉(zhuǎn)型升級(jí)專業(yè)定制企業(yè)官網(wǎng),公司注重人才、技術(shù)和管理,匯聚了一批優(yōu)秀的互聯(lián)網(wǎng)技術(shù)人才,對(duì)客戶都以感恩的心態(tài)奉獻(xiàn)自己的專業(yè)和所長(zhǎng)。

日志原理:

WiredTiger使用檢查點(diǎn)在磁盤(pán)上提供一致性數(shù)據(jù)視圖,并允許MongoDB從上一個(gè)檢查點(diǎn)恢復(fù)。 但是,如果MongoDB在檢查點(diǎn)之間意外退出,則需要使用日志記錄來(lái)恢復(fù)上次檢查點(diǎn)之后發(fā)生的信息。

 

通過(guò)日志記錄,恢復(fù)過(guò)程如下:

查看數(shù)據(jù)文件以查找上一個(gè)檢查點(diǎn)的標(biāo)識(shí)符。

在日志文件中搜索與上一個(gè)檢查點(diǎn)的標(biāo)識(shí)符相匹配的記錄。

自上次檢查點(diǎn)以來(lái),在日志文件中應(yīng)用這些操作。

 

MongoDB WiredTiger 首先使用內(nèi)存緩沖來(lái)存儲(chǔ)日志記錄,直到超過(guò)128 kB,才寫(xiě)入磁盤(pán)。根據(jù)以下時(shí)間間隔或條件,WiredTiger將緩沖的日記記錄同步到磁盤(pán):

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

版本3.6中:MongoDB 設(shè)置檢查點(diǎn)以60秒的間隔執(zhí)行。

如果寫(xiě)入操作包含 j:true 的寫(xiě)入指令,則WiredTiger會(huì)強(qiáng)制WiredTiger日志文件同步。

由于MongoDB使用的日志文件大小限制為100 MB,WiredTiger大約每隔100 MB創(chuàng)建一個(gè)新的日志文件。當(dāng)WiredTiger創(chuàng)建新的日志文件時(shí),WiredTiger將同步前一個(gè)日志文件。

注意: 在寫(xiě)操作之間,當(dāng)日志記錄保留在WiredTiger緩沖區(qū)中時(shí),在mongod強(qiáng)制關(guān)閉時(shí)更新可能會(huì)丟失。

日志方式:

  1. 不開(kāi)啟      journal ,寫(xiě)入 wiredtiger      的數(shù)據(jù),并不會(huì)立即持久化存儲(chǔ);而是每分鐘會(huì)做一次全量的checkpoint( storage.syncPeriodSecs 配置項(xiàng),默認(rèn)為1分鐘),將所有的數(shù)據(jù)持久化。
  2. 開(kāi)啟 journal 后 ,每次寫(xiě)入會(huì)記錄一條操作日志(通過(guò)journal可以重新構(gòu)造出寫(xiě)入的數(shù)據(jù))。這樣即使出現(xiàn)宕機(jī),啟動(dòng)時(shí)      Wiredtiger 會(huì)先將數(shù)據(jù)恢復(fù)到最近的一次checkpoint的點(diǎn),然后重放后續(xù)的 journal 操作日志來(lái)恢復(fù)數(shù)據(jù)。 

MongoDB 里的 journal 行為 主要由2個(gè)參數(shù)控制, storage.journal.enabled  決定是否開(kāi)啟journal, storage.journal.commitInternalMs  決定 journal 刷盤(pán)的間隔( journal操作的最大間隔時(shí)間。可以是2-300ms之間的值,低的值有助于持久化,但是會(huì)增加磁盤(pán)的額外負(fù)擔(dān)。

如果journal和數(shù)據(jù)文件在同一磁盤(pán)上,默認(rèn)為100ms。如果在不同的磁盤(pán)上為30ms。

如果強(qiáng)制mongod提交日志文件,可以指定j:true,指定后,時(shí)間變?yōu)樵瓉?lái)的三分之一 ),默認(rèn)為100ms,用戶也可以通過(guò)寫(xiě)入時(shí)指定 writeConcern 為 {j: ture} 來(lái)每次寫(xiě)入時(shí)都確保 journal 刷盤(pán)。

日志切換:

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 {} \;

日志級(jí)別在配置文件中的加入:  

use admin
db.runCommand( {
   setParameter: 1,
   logComponentVerbosity: {
      verbosity: 1,
      query: {
         verbosity: 2
      },
      storage: {
         verbosity: 2,
         journal: {
            verbosity: 1
         }
      }
   }
} )

或者:

verbose&&quiet

     mongodb默認(rèn)情況下日志文件非常大,每秒都會(huì)記錄大量的connection等調(diào)試信息,這對(duì)于我們管理日志和定位        錯(cuò)誤有很大影響,需要修改它的默認(rèn)日志級(jí)別。

     mongodb的日志級(jí)別在配置文件中的verbose和quiet參數(shù)決定。verbose表示會(huì)打印debug信息,范例配置如下

     verbose=true

     vv=true

     注:這里的vv表示debug級(jí)別,有vv-vvvvv,v越多則記錄的日志信息越詳細(xì)。

     而如果設(shè)置了quiet=true參數(shù),表示安靜地輸出,即不會(huì)再有debug信息,日志中只會(huì)打印一些關(guān)鍵的信息,比如        自動(dòng)故障切換,系統(tǒng)錯(cuò)誤等信息,相當(dāng)于error log。這時(shí)需要注釋掉verbose參數(shù)。范例配置如下:

     #verbose=true

     quiet=true

網(wǎng)站標(biāo)題:Mongodb日志原理和操作
鏈接地址:http://www.chinadenli.net/article4/pesioe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站制作網(wǎng)站設(shè)計(jì)公司網(wǎng)站導(dǎo)航外貿(mào)建站小程序開(kāi)發(fā)App設(shè)計(jì)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

小程序開(kāi)發(fā)