通過Yum更新MongoDB 2.6 to 3.0
由于之前使用的是yum安裝的MongoDB 2.6(根據官網提示,如果你準備從2.4更新起來,需要先行更新至2.6版本,再進行3.0的更新),為了使用MongoDB多個新特性,如WiredTiger引擎,中文檢索等,而根據MongoDB版本劃分可知,雙數為穩定版本,是以決定更新至最新的MongoDb 3.2(筆者寫這篇文時MongoDB 3.3為最新版本)。
其實根據官網所給文檔就能正常更新了,本文也是參考官網文檔做更新,如果你準備參考本文進行操作,希望能在測試環境下測試沒問題再上線以免出現問題。
更新開始:
退出MongoDB 2.6服務
<code>service mongod stop</code>
關于退出的方法有很多種,比如使用netstat -nltp找到程序号,使用然後殺死程序(不建議使用-9直接強退);
又比如進入Mongo用戶端,使用db.shutdownServer()關閉;
亦或者使用官網推薦方法等等,這裡就不一一列出來,請自行選擇使用。
<code>mongod --dbpath </code><code>/var/mongod/data</code> <code>--</code><code>shutdown</code>
2.新增yum源
<code>vim </code><code>/etc/yum</code><code>.repos.d</code><code>/mongodb-org-3</code><code>.0.repo</code>
編輯内容:
<code>[mongodb-org-3.0]</code>
<code>name=MongoDB Repository</code>
<code>baseurl=https:</code><code>//repo</code><code>.mongodb.org</code><code>/yum/redhat/</code><code>$releasever</code><code>/mongodb-org/3</code><code>.0</code><code>/x86_64/</code>
<code>gpgcheck=1</code>
<code>enabled=1</code>
<code>gpgkey=https:</code><code>//www</code><code>.mongodb.org</code><code>/static/pgp/server-3</code><code>.0.asc</code>
3.Yum更新開始
檢視下yum資訊
<code>yum info mongodb-org</code>
<a href="http://s3.51cto.com/wyfs02/M00/83/5B/wKioL1dxH2-jIAa7AADsaQTe-SA354.png-wh_500x0-wm_3-wmp_4-s_70486962.png" target="_blank"></a>
開始更新,等待更新完成
<code>yum upgrade mongodb-org</code>
4.嘗試啟動服務
<code>service mongod start</code>
發現啟動失敗?不要着急,讓我們檢視日志(本日志路徑為預設路徑,日志路徑可以使用配置檔案修改)
<code>tail</code> <code>-f </code><code>/var/log/mongodb/mongod</code><code>.log</code>
<code>2016-06-27T02:53:32.961-0700 E NETWORK [initandlisten] Failed to unlink socket </code><code>file</code> <code>/tmp/mongodb-27017</code><code>.sock errno:1 Operation not permitted</code>
<code>2016-06-27T02:53:32.961-0700 I - [initandlisten] Fatal Assertion 28578</code>
<code>2016-06-27T02:53:32.961-0700 I - [initandlisten]</code>
<code>***aborting after fassert() failure</code>
<a href="http://s3.51cto.com/wyfs02/M00/83/5C/wKiom1dxH2_RDkK2AAA-3FFGpR0947.png-wh_500x0-wm_3-wmp_4-s_1997126223.png" target="_blank"></a>
根據日志提示,是無法unlink sock檔案,需要我們手動删除sock檔案,删除後運作即可。
最後,更新3.0到3.2的方法重複之前步驟即可,把MongDB的YUM源修改成3.2即可完成更新。
注:根據官網提示,3.2預設開啟WiredTiger引擎
本文轉自 leyex 51CTO部落格,原文連結:http://blog.51cto.com/leyex/1793436