MongoDB安裝及複製集搭建

安裝linux

wget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.2.6.tgzmongodb

tar zxvf mongodb-linux-x86_64-2.2.6.tgzshell

mv mongodb-linux-x86_64-2.2.6 mongodb數據庫

cd mongodbapp

mkdir log           # 添加日誌文件目錄ide

mkdir data        # 添加數據目錄字體

mkdir conf        # 添加配置文件目錄ui

mkdir arbiter   # 添加仲裁服務目錄spa

配置文件rest

進入mongodb下的conf目錄

新建mongod.conf

編輯mongod.conf,在其中添加以下內容:

# mongod.conf

logpath = /data/mongodb/log/mongod.log    # 日誌輸出目錄

logappend = true                                                    # 若是爲false日誌會覆蓋

fork = true                                                                # true爲後臺運行

quiet = true                                                              # 安靜輸出

port = 27017                                                            # 端口

maxConns = 1024                                                   # 最大鏈接數

directoryperdb = true                                            # 是否按數據庫分目錄存放數據

dbpath = /data/mongodb/data                          # 數據目錄

autoresync = true                                                   # 若是從庫與主庫同步數據差得多,自動從新同步

oplogSize = 1024                                                     # 日誌大小(單位M

replSet = replSet1                                                   # 複製集名稱

rest = true                                                                # 開啓簡單的rest API

journal = true                                                           # 啓用日誌選項,MongoDB的數據操做將會寫入到journal文件夾的文件裏

fastsync=true                                                          # 從一個dbpath裏啓用從庫複製服務,該dbpath的數據庫是主庫的快照,可用於快速啓用同步

權限和分組

chown -R root.root mongodb

chmod -R 755 mongodb

啓動服務

cd mongodb/bin/

./mongod -f /data/mongodb/conf/mongod.conf

啓動仲裁服務

若是一個複製集裏節點數小於3個則須要經過添加仲裁節點的方式使節點總數保持在3個或3個以上,不然當有節點掉電時沒法競選新的PRIMARY

cd mongodb/bin/

./mongod -replSet replSet1 -port 27018 -dbpath /data/mongodb/arbiter/ -logpath /data/mongodb/arbiter/arbiter.log -logappend -quiet -fork

中止服務

關閉MongoDB服務請進入mongo shell執行以下命令:

配置複製集

例如,已經按上述方法部署了3MongoDB服務:220.181.154.204220.181.154.205220.181.154.206

則打開任意一個MongoDB的客戶端,按下述紅色字體部分進行配置,其中'replSet1'爲複製集名稱,host對應複製集中各節點的地址和端口

cd mongodb/bin/

./mongo

cfg={_id:'replSet1',members:[

{_id:1,host:'220.181.154.204:27017'},

{_id:2,host:'220.181.154.205:27017'},

{_id:3,host:'220.181.154.206:27017'}]

};

rs.initiate(cfg);

出現下面信息則配置成功:

{

         "info" : "Config now saved locally.  Should come online in about a minute.",

         "ok" : 1

}

添加節點:

rs.add("220.181.154.204:27017");

添加仲裁節點:

rs.addArb("220.181.154.204:27018");

查看複製集狀態:

rs.status();

設置從庫可查詢

 

經過shell查詢從庫可在從庫shell中執行以下命令:

rs.slaveOk()

注:複製集中默認從庫不可讀寫,想要查詢從庫必須對每一個會話進行如上設置後才能查詢

經過代碼查詢從庫需在mongodb鏈接配置中進行以下配置:

<mongo:mongo

replica-set="220.181.154.204:27017,220.181.154.205:27017, 220.181.154.204:27018">

<mongo:options slave-ok="true"/>

</mongo:mongo>

注:以上全部紅色字體部分請根據實際狀況進行修改

相關文章
相關標籤/搜索