MongoDB3.0新版本幾點介紹

chenfeng發表於2016-02-22

2015年3月3號,MongoDB新版本3.0釋出了,和以前版本相比,這次改動較大,主要有以下幾個方面:

 

1. 引入了外掛式的儲存引擎架構,允許第三方根據實際專案的需要開發儲存引擎,類似於MySql中的分層儲存引擎架構。隨同這種架構釋出的新的儲存引擎為WiredTiger,老的儲存引擎更名為MMAPv1,也是目前預設的儲存引擎。

   WiredTiger儲存引擎主要特點有:

   (1)目前只支援64位的MongoDB。

(2)支援文件級別的鎖,相當於MySql中的行級別鎖,多個客戶端能夠同時修改同一個集合中的多個文件,相比以前版本,WiredTiger儲存引擎帶來了更細粒度的鎖,因此MongoDB的併發效能得到了大大的提高。

(3)支援集合和索引的壓縮儲存,這樣能減少儲存的消耗而只需要較少的CPU開支。

 

2. 不同儲存引擎對應的資料檔案不能相容,也就是說以前版本對應的資料檔案不能直接被WiredTiger儲存引擎所支援,如果要升級到3.0的WiredTiger儲存引擎,必須先將版本升級到2.6,然後再升級到3.0,下面介紹一個單例項升級步驟:

Step1:下載最新的3.0版本的mongod二進位制檔案,取代2.6版本的二進位制。

Step2:啟動3.0版本的mongod程式,確保使用的是預設儲存引擎MMAPv1。

Step3:利用mongodump匯出資料檔案。

Step4:建立新的資料目錄為WiredTiger儲存引擎。

Step5:重啟mongod例項用WiredTiger儲存引擎選項,如下:

   mongod –storageEngine wiredTiger –dbpath ‘Step4建立的新目錄’

Step6:使用mongorestore恢復資料檔案。

關於mongodump,mongorestore命令的使用方法可以參考《大資料儲存MongoDB實戰指南》一書。

 

3. 預設的儲存引擎MMAPv1在3.0版本中也有所改進,支援了集合級別的鎖,相當於MySql中的表級別鎖,以前版本都是資料庫級別和全域性例項級別的鎖,鎖的粒度有所降低。

 

4.複製集的也發生了一點改變,在3.0版本中,首先允許的成員最大數量增加了,可以達到50個;其次複製集中primary節點關閉時,複製集的行為也有所變化,在3.0版本中,複製集會終止耗時較長的操作,例如索引的構造,map-reduce作業等,複製集會等到有新的priamry節點選出後原來的primary節點才會關閉,而以前的版本只是簡單的等待10秒,不管是否選出了新的primary節點,同時現在也可以指定引數secondaryCatchUpPeriodSecs值,明確指定等待多少秒。

 

5. 工具的改變,mongodump,mongorestore,mongoexport,mongoimport,mongofiles以及mongooplog工具必須連線到正在執行的mongod例項上進行操作,不能像以前版本那樣直接透過—dbpath選項運算元據檔案。

 

6. 本地連線許可權的改變,本地連線只能建立第一個使用者在admin資料庫中,不像以前版本,本地連線沒有許可權限制,能在例項上做任何操作。同時db.addUser()命令被廢棄了,用db.createUser()和db.updateUser()來代替。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/15498/viewspace-1992258/,如需轉載,請註明出處,否則將追究法律責任。

相關文章