mongodb3.0在mmapv1的存儲引擎基礎上添加了一個新的存儲引擎wiredtiger。但是3.0的預設存儲引擎依舊是mmapv1,是以我們項目之前也就用的預設方式。
但是mongodb更新實在太快,轉眼間,從3.0直接跳到3.2,預設的存儲引擎也改成了wiredtiger。據說這個引擎具有占用磁盤空間更小,占用記憶體空間更小,查詢效率更高等一系列特點。
為了防患于未然,今天嘗試了一下把3.0的資料複制到3.2中。由于以前都是用mongovue直接複制,但是新的存儲引擎,mongovue連表都打不開,根本無法讀取資料,是以隻好在mongo shell中操作。
其中成功的操作步驟大緻如下:
1、把mmapv1存儲引擎存儲的mongodb3.0.5資料庫的資料使用mongodump的方式備份出來:
2、把資料以mongorestore的方式恢複到以wiredtiger存儲引擎存儲的mongodb3.2.7中:
注:兩個資料庫都開啟了使用者驗證,也都是以預設的存儲引擎方式啟動。不同的是,3.0.5中使用者驗證使用的是手動修改後的mongodb-cr驗證方式,而3.2.7中則是scram-sha-1預設的方式。