安裝
1.解壓mongodb安裝包
【輸入】tar -zxvf mongodb-linux-x86_64-rhel70-3.6.4.tgz
2.修改解壓後的mongodb名稱
【輸入】mv mongodb-linux-x86_64-rhel70-3.6.4 mongodb
3.進入mongodb文件夾,新建data和logs兩個文件夾,進入data文件夾新建db文件夾。在logs文件夾新建文件!mongodb.log
4.進入mongodb的bin目錄下,新建文件mongodb.conf。
#mongodb綁定的地址
bind_ip = 0.0.0.0
#數據文件存放目錄
dbpath = /usr/local/mongodb/data/db
#日誌文件存放目錄
logpath = /usr/local/mongodb/data/logs/mongodb.log
#mongodb默認端口
port = 27017
#以守護程序的方式啓用,即在後臺運行
fork = true
#以追加的方式記錄日誌
logappend=true
5.測試啓動mongodb服務,進入mongodb的bin目錄下執行
【輸入】./mongod -f mongodb.conf
6.設置mongodb.service啓動服務,設置開機啓動
【輸入】 cd /lib/systemd/system
【輸入】 vi mongodb.service
[Unit]
Description=mongodb
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
ExecStart=/usr/local/mongodb/bin/mongod -f /usr/local/mongodb/bin/mongodb.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/usr/local/mongodb/bin/mongod --shutdown -f /usr/local/mongodb/bin/mongo
db.conf
PrivateTmp=true
[Install]
WantedBy=multi-user.target
7.設置mongodb.service權限
【輸入】chmod 754 mongodb.service
8.系統mongodb.service的操作命令如下:
【輸入】#啓動服務
systemctl start mongodb.service
#關閉服務
systemctl stop mongodb.service
#開機啓動
systemctl enable mongodb.service
集羣搭建
Mongodb Replica Set方式集羣搭建。
1.建立配置文件【mongodb.conf】,添加replSet
#mongodb綁定的地址
bind_ip = 172.17.97.139
#數據文件存放目錄
dbpath = /usr/local/mongodb/data/db
#日誌文件存放目錄
logpath = /usr/local/mongodb/data/logs/mongodb.log
#mongodb默認端口
port = 27017
#以守護程序的方式啓用,即在後臺運行
fork = true
#以追加的方式記錄日誌
logappend=true
#replica set的名字
replSet=testrs
maxConns=5000
2.重啓mongodb服務
【輸入】systemctl restart mongodb.service
3.配置主、備、仲裁節點,在三個節點中選擇一個連接mongodb。
【輸入】./mongo 220.20.20.101:27017 #ip和port是某個節點的地址
【輸入】>use admin
【輸入】>cfg={ _id:"testrs", members:[ {_id:0,host:'220.20.20.101:27017',priority:2}, {_id:1,host:'220.20.20.102:27017',priority:1},
{_id:2,host:'220.20.20.103:27017',arbiterOnly:true}] };
【輸入】>rs.initiate(cfg) #使配置生效
#優先級最高的即成爲主節點,即這裏的220.20.20.101:27017。特別注意的是,對於仲裁節點,需要有個特別的配置——arbiterOnly:true。這個不能少,不然主備模式就不生效。
執行rs.status()命令。如果配置生效,會顯示以下信息:
{
"set" : "testrs",
"date" : ISODate("2013-01-05T02:44:43Z"),
"myState" : 1,
"members" : [
{
"_id" : 0,
"name" : "220.20.20.101:27017",
"health" : 1,
"state" : 1,
"stateStr" : "PRIMARY",
"uptime" : 200,
"optime" : Timestamp(1357285565000, 1),
"optimeDate" : ISODate("2013-01-04T07:46:05Z"),
"self" : true
},
{
"_id" : 1,
"name" : "220.20.20.102:27017",
"health" : 1,
"state" : 2,
"stateStr" : "SECONDARY",
"uptime" : 200,
"optime" : Timestamp(1357285565000, 1),
"optimeDate" : ISODate("2013-01-04T07:46:05Z"),
"lastHeartbeat" : ISODate("2013-01-05T02:44:42Z"),
"pingMs" : 0
},
{
"_id" : 2,
"name" : "220.20.20.103:27017",
"health" : 1,
"state" : 7,
"stateStr" : "ARBITER",
"uptime" : 200,
"lastHeartbeat" : ISODate("2013-01-05T02:44:42Z"),
"pingMs" : 0
}
],
"ok" : 1
}
4.可以進行測試,基本上已經完成了集羣的所有搭建工作。