標籤:mongodb
一、Mongdb3.0安裝
官網下載最新穩定版本的mongodb軟體
https://www.mongodb.org/downloads
解壓軟體
[[email protected] service]# tar zxvf mongodb-linux-x86_64-rhel62-3.0.3.tgz mongodb-linux-x86_64-rhel62-3.0.3/READMEmongodb-linux-x86_64-rhel62-3.0.3/THIRD-PARTY-NOTICESmongodb-linux-x86_64-rhel62-3.0.3/GNU-AGPL-3.0mongodb-linux-x86_64-rhel62-3.0.3/bin/mongodumpmongodb-linux-x86_64-rhel62-3.0.3/bin/mongorestoremongodb-linux-x86_64-rhel62-3.0.3/bin/mongoexportmongodb-linux-x86_64-rhel62-3.0.3/bin/mongoimportmongodb-linux-x86_64-rhel62-3.0.3/bin/mongostatmongodb-linux-x86_64-rhel62-3.0.3/bin/mongotopmongodb-linux-x86_64-rhel62-3.0.3/bin/bsondumpmongodb-linux-x86_64-rhel62-3.0.3/bin/mongofilesmongodb-linux-x86_64-rhel62-3.0.3/bin/mongooplogmongodb-linux-x86_64-rhel62-3.0.3/bin/mongoperfmongodb-linux-x86_64-rhel62-3.0.3/bin/mongodmongodb-linux-x86_64-rhel62-3.0.3/bin/mongosmongodb-linux-x86_64-rhel62-3.0.3/bin/mongo
建立mongdb資料存放路徑及日誌存放路徑
[[email protected] service]# mkdir -p /date/{mongodbdata,mongodb_logs}
建立mongod帳號,授權資料目錄
[[email protected] date]# useradd mongod[[email protected] date]# chown -R mongod.mongod /date/mongodbdata/
建立mongod.conf設定檔,只需要以下幾個選項即可
[[email protected] date]#cat /etc/mongod.conf dbpath = /data/mongodata #mongodb資料存放路徑logpath = /data/mongodb_logs/mongodb.log #mongodb日誌存放路徑httpinterface = true #mongodb管理連接埠預設+1000:280fork = true #後台啟動
二、啟動Mongodb初始化資料
(1)第一種直接在命令列中指定路徑和日誌
/usr/local/service/mongodb-linux-x86_64-rhel62-3.0.3/bin/mongod --dbpath=/date/mongodbdate/ --logpath=/date/mongodb_logs/mongodb.log --forkabout to fork child process, waiting until server is ready for connections.forked process: 5238child process started successfully, parent exiting連接埠已經起來了:[[email protected] mongodb_logs]# lsof -i :27017COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAMEmongod 5238 root 6u IPv4 41939 0t0 TCP *:27017 (LISTEN)初始化由於要同步資料,建立本地的一些資料檔案。會啟動比較慢。
(2)第二種方式啟動:通過載入設定檔啟動(推薦)
[[email protected] mongodbdate]# /usr/local/service/mongodb-linux-x86_64-rhel62-3.0.3/bin/mongod -f /etc/mongod.conf about to fork child process, waiting until server is ready for connections.forked process: 5382child process started successfully, parent exiting
進入終端查看資料庫
[[email protected] mongodb_logs]# /usr/local/service/mongodb-linux-x86_64-rhel62-3.0.3/bin/mongoMongoDB shell version: 3.0.3connecting to: testWelcome to the MongoDB shell.For interactive help, type "help".For more comprehensive documentation, seehttp://docs.mongodb.org/Questions? Try the support grouphttp://groups.google.com/group/mongodb-userServer has startup warnings: 2015-06-30T17:37:53.882+0800 I CONTROL [initandlisten] ** WARNING: You are running this process as the root user, which is not recommended.2015-06-30T17:37:53.882+0800 I CONTROL [initandlisten] 2015-06-30T17:37:53.905+0800 I CONTROL [initandlisten] 2015-06-30T17:37:53.905+0800 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is ‘always‘.2015-06-30T17:37:53.905+0800 I CONTROL [initandlisten] ** We suggest setting it to ‘never‘2015-06-30T17:37:53.905+0800 I CONTROL [initandlisten] 2015-06-30T17:37:53.905+0800 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is ‘always‘.2015-06-30T17:37:53.906+0800 I CONTROL [initandlisten] ** We suggest setting it to ‘never‘2015-06-30T17:37:53.906+0800 I CONTROL [initandlisten] > show dbs;local 0.078GB
啟動報錯會出現以下:
[[email protected] mongodbdate]# /usr/local/service/mongodb-linux-x86_64-rhel62-3.0.3/bin/mongod -f /etc/mongod.conf about to fork child process, waiting until server is ready for connections.forked process: 5298
檢查原因:
第一:由於之前沒有正常的退出Mongodb服務,需要刪除mongod.lock檔案,再次啟動恢複正常。
第二:設定檔有問題,需要檢查設定檔是否有特殊字元,導致無法解析
三、mongodb複本集配置
配置mongodb的複本集務必要做好以下幾點:
1、各個節點能夠正常訪問mongodb的socket連接埠,iptables要允許存取
2、SELINUX必須要關閉掉,以免禁止連接埠複製
3、各個伺服器節點要做好解析/etc/hosts
4、由於複本集是通過Heartbeat心跳線串連到,務必同步好各個節點的時間
小註:本人由於之前沒有注意到這些,被坑了好久。哈哈!!!
mongodb複製過程及概念
(1)主節點將資料修改操作儲存至oplog,oplog:大小固定的檔案,儲存在local資料庫
(2)首次同步處理(inital sync)
節點沒有任何資料
節點丟失副本複製曆史
:複製所有的資料庫
:應用資料集的所有改變:複製oplog並應用於本地
:為所有collection的構建索引
(3)復原後追趕(post-rollback catch-up)
(4)切分塊遷移(shareding chunk migrations)
local:存放了複本集的所有元素和oplog;用於儲存oplog的是一個名為oplog.rs的collection;
oplog.rs的大小依賴於OS及檔案系統;但可以自訂其大小oplogsize
環境實驗
本文出自 “奮鬥中的老兵” 部落格,請務必保留此出處http://jiaxu201.blog.51cto.com/4569604/1669504
mongodb安裝配置及複本集的操作