真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Mongodb日志原理和操作

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

日志原理:

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

 

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

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

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

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

 

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

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

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

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

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

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

日志方式:

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

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

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

如果強(qiáng)制mongod提交日志文件,可以指定j:true,指定后,時(shí)間變?yōu)樵瓉淼娜种?),默認(rèn)為100ms,用戶也可以通過寫入時(shí)指定 writeConcern 為 {j: ture} 來每次寫入時(shí)都確保 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默認(rèn)情況下日志文件非常大,每秒都會記錄大量的connection等調(diào)試信息,這對于我們管理日志和定位        錯(cuò)誤有很大影響,需要修改它的默認(rèn)日志級別。

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

     verbose=true

     vv=true

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

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

     #verbose=true

     quiet=true


網(wǎng)頁標(biāo)題:Mongodb日志原理和操作
網(wǎng)頁地址:http://weahome.cn/article/pesioe.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部