MongoDB做爲著名的NoSQL,早已很是流行。它的地理應用也很是成熟,被foursquare用於生產環境也已經多時。本文主要記錄今年6月份的一個地理產品中,使用MongoDB的過程和遇到的一些問題以及解決方案。咱們在原型系統搭建時候,使用了三臺機器,搭建MongoDB ReplicationSet 集羣,做爲地理數據庫以使用。mongodb
三臺操做系統爲CentOS 64bit version6.4的服務器,IP地址和域名shell
192.168.2.22 mongodb0.ventlam.com 192.168.2.23 mongodb1.ventlam.com 192.168.2.24 mongodb2.ventlam.com
下載並安裝mongo 2.4.5版本,(3臺機器分別執行)數據庫
vim /etc/yum.repos.d/10gen.repo
[10gen] name=10gen Repository baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/x86_64 gpgcheck=0 enabled=1
vim
* 安裝MongoDB
yum install mongo-10gen mongo-10gen-server
部署生產環境下的MongoDB ReplicationSet ,須要數據庫部署在儘量隔離的機器上(每一個數據庫部署在不一樣的物理機器,使用不一樣的網絡和不一樣的電源)。服務器
修改/etc/host或者配置DNS實現(3臺機器分別執行)網絡
vim /etc/host
添加以下命令tcp
192.168.2.22 mongodb0.ventlam.com 192.168.2.23 mongodb1.ventlam.com 192.168.2.24 mongodb2.ventlam.com
修改數據庫配置文件(3臺機器分別執行)url
vim /etc/mongod.conf
在配置文件加入如下參數:spa
port = 27017 dbpath = /mnt/mongo replSet = rs0
啓動數據庫 (3臺機器分別執行) 建立數據目錄 mkdir /mnt/mongodb/,並修改配置文件啓動mongodb操作系統
vim /etc/rc.d/init.d/mongod
啓動
mongod service mongod start
添加開機啓動
chkconfig mongod on
首先開放27017端口 (3臺機器分別執行)
/sbin/iptables -I INPUT -p tcp --dport 27017 -j ACCEPT
/etc/rc.d/init.d/iptables save
而後分別檢查鏈接狀況,在全部機器輸入如下命令:
mongo --host mongodb1.ventlam.com --port 27017 mongo --host mongodb2.ventlam.com --port 27017
若是均可以進入mongo shell界面,便可。不然,請檢查防火牆規則。
進入mongo shell mongo 輸入如下配置命令(只須要在任意一臺機器執行)
rsconf = { \_id: "rs0",
members: [ { _id: 0, host: "mongodb0.ventlam.com" },
{ _id: 1, host: "mongodb1.ventlam.com" },
{ _id: 2, host: "mongodb2.ventlam.com" } ] }
rsconf rs.initiate(rsconf)
查看rsconf配置狀況
rs.conf()
若是返回下列值,證實mongodb集羣搭建成功
{ "_id" : "rs0", "version" : 1,
"members" : [ { "\_id" : 0, "host" : "mongodb0.ventlam.com:27017" },
{ "\_id" : 1, "host" : "mongodb1.ventlam.com:27017" },
{ "\_id" : 2, "host" : "mongodb2.ventlam.com:27017" } ] }
rs.add("<hostname>:27017")
rs.remove("<hostname>:27017")
本做品由VentLam創做,採用知識共享署名-非商業性使用-相同方式共享 2.5 中國大陸許可協議進行許可。