mongodb安裝和副本集的搭建

CentOS 編譯安裝 Mongodb Centos 7.0 + Mongodb 2.6.6 (實測 筆記 )

環境:

系統硬件:vmware vsphere (CPU:2*4核,內存2G,雙網卡)

系統版本:CentOS-7.0-1406-x86_64-DVD.iso
安裝步驟:


1.安裝基本軟件包

[root@centos ~]# yum install vim wget lsof gcc gcc-c++ bzip2 -y

[root@centos ~]# yum install net-tools bind-utils -y
1.3 顯示IP地址 (centos7需要先安裝 net-tools bind-utils包)

[root@centos ~]# ifconfig|grep inet

inet 192.168.1.10 netmask 255.255.255.0 broadcast 192.168.1.255

 

2.編譯安裝mongodb

2.1 下載包
[root@centos ~]# cd /usr/local/src/

[root@centos ~]# wget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.6.6.tgz

[root@centos ~]# tar -zvxf mongodb-linux-x86_64-2.6.6.tgz

[root@centos ~]# mv mongodb-linux-x86_64-2.6.6 /opt/mongodb/

 

2.2 配置path環境變量,確保mongodb的bin目錄包含在path環境變量中。

[root@centos ~]# vim /etc/profile

找到export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL,在這行上面添加以下內容:

#set for mongodb
export MONGODB_HOME=/opt/mongodb
export PATH=$MONGODB_HOME/bin:$PATH

保存退出
[root@centos ~]# echo $PATH

[root@centos ~]# source /etc/profile

[root@centos ~]# echo $PATH

[root@centos ~]# mongod -version

顯示以下內容,則表示安裝成功
db version v2.6.6
2014-12-18T11:02:15.100+0800 git version: 608e8bc319627693b04cc7da29ecc300a5f45a1f
2.3 建立存儲數據及日誌的目錄:

[root@centos ~]# mkdir -p /data/mongodb/journal

[root@centos ~]# mkdir -p /data/mongodb/log

[root@centos ~]# touch /data/mongodb/log/mongodb.log
2.4 增加mongodb用戶及設置權限

[root@centos ~]# useradd mongodb -M -s /sbin/nologin

[root@centos ~]# chown -R mongodb.mongodb /data/mongodb
2.5 建立配置文件

[root@centos ~]# vim /etc/mongodb.conf

輸入以下內容

dbpath=/data/mongodb
logpath=/data/mongodb/log/mongodb.log
logappend=true
port=27017
fork=true
noauth=true
nojournal = true
smallfiles = true
noprealloc = true

httpinterface = true

replSet=rs                ==========設置副本集羣的時候的集羣名稱

bind_ip=172.16.2.117     =========== 不同的機器綁定本機ip 不同               

 

保存,退出

# **********************************************
#  mongodb的參數說明:
#
#  --dbpath 數據庫路徑(數據文件)
#  --logpath 日誌文件路徑
#  --master 指定爲主機器
#  --slave 指定爲從機器
#  --source 指定主機器的IP地址
#  --pologSize 指定日誌文件大小不超過64M.因爲resync是非常操作量大且耗時,

#    最好通過設置一個足夠大的oplogSize來避免resync(默認的 oplog大小是空閒磁盤大小的5%)。
#  --logappend 日誌文件末尾添加
#  --port 啓用端口號
#  --fork 在後臺運行
#  --only 指定只複製哪一個數據庫
#  --slavedelay 指從複製檢測的時間間隔
#  --auth 是否需要驗證權限登錄(用戶名和密碼)
2.6 將mongod服務加到開機啓動服務

[root@centos ~]# vim /lib/systemd/system/mongodb.service

輸入以下內容

[Unit]
Description=mongodb
After=network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
PIDFile=/data/mongodb/mongod.lock
ExecStart=/opt/mongodb/bin/mongod -f /etc/mongodb.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true

[Install]
WantedBy=multi-user.target
保存,退出
[root@centos ~]# systemctl enable mongodb.service

[root@centos ~]# systemctl list-unit-files|grep enabled|grep mongodb

[root@centos ~]# systemctl daemon-reload

[root@centos ~]# systemctl start mongodb.service

[root@centos ~]# systemctl status mongodb.service -l
3 測試數據庫是否正常

[root@centos ~]# ps -ef|grep mongod

[root@centos ~]# mongo admin

添加admin用戶名密碼,使用創建的用戶登錄MongoDB:

> show dbs

> use admin

> db.addUser('admin','manager')

> db.auth('admin','manager')

> show collections

> db.system.users.find()

> exit
4 防火牆添加27017端口

[root@centos ~]# iptables -L|grep ACCEPT

[root@centos ~]# firewall-cmd --zone=public --add-port=27017/tcp --permanent

[root@centos ~]# firewall-cmd --reload

[root@centos ~]# iptables -L|grep ACCEPT

 

 

5)配置服務器的副本集羣

Jenkins     172.16.2.117    (仲裁

Agent       172.16.2.134    (副本

Host        172.16.2.177    (主機

 

首先登陸host服務器

mongo --port 27017 --host 172.16.2.177

圖片1.png 

初始化副本集

 

rs.initiate()

 

rs.conf()

 

rs.add("172.16.2.134:27017")

 

rs.addArb("172.16.2.117:27017")

 

rs.status()

 圖片2.png

圖片3.png

圖片4.png

 

 

比如在主服務器上面插入10000條數據

mongo --port 27017 --host 172.16.2.177

 use copp

for(var i=0;i<100000;i++){db.userInfo.insert({"userName":"user"+i,"depart":"towngas","userNo":"no."+i})}

db.userInfo.count();

 圖片5.png

在從庫上面查詢一下

要先執行:
rs.slaveOk();

再次查詢

 

 圖片6.png

圖片7.png

如果主庫宕機之後那麼實現從庫接替主庫:

 圖片8.png

從庫的狀態

圖片9.png

圖片10.png 

 

從庫會接替主庫的位置

如果主庫啓動之後會變成從庫,那麼從庫依然是主庫

 

 圖片11.png

圖片12.png

ZHUYI :arbiter 最爲仲裁者,沒有數據副本存儲在本地,能讀取複製集的信息


http://blog.csdn.net/chris_111x/article/details/52440003

可以參考


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章