Research

Powered By Blogger

4/14/2016

MongoDB 3.2.4 install

官網MONGOD DB 安裝步驟SOP

1.      vim /etc/yum.repos.d/mongodb-org-3.2.repo

add
[mongodb-org-3.2]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/6Server/mongodb-org/3.2/x86_64/
gpgcheck=0
enabled=1

2.       vim /etc/hosts

54.239.130.9 repo.mongodb.org

3.   sudo yum install -y mongodb-org-3.2.4 mongodb-org-server-3.2.4 mongodb-org-shell-3.2.4 mongodb-org-mongos-3.2.4 mongodb-org-tools-3.2.4

4.   mongo  (進入mongodb)

5.   輸入use admin
貼上db.createUser(
  {
    user: "mongoAdmin",
    pwd: "password",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
  }
);

輸入use social
貼上db.createUser(
  {
    user: "mongoUser",
    pwd: "password",
    roles: [ { role: "dbOwner", db: "social" } ]
  }
);
6.      exit 離開
7.      service mongod stop
8.      如果你是用GUI裝的話,輸入Setup mongod 這個系統服務取消
(因為預設不是走認證模式的)
9.      接著在輸入vim /etc/rc.d/rc.local
貼上nohup mongod --auth --port 27017 --dbpath /var/lib/mongo & 
(背景執行啟動認證模式)
10.  重開機後輸入 ps -ef | grep mongo
會看到下圖


確認第9點有生效




這樣就完成安裝了




PS.反安裝指令

sudo yum erase $(rpm -qa | grep mongodb-org)
sudo rm -r /var/log/mongodb
sudo rm -r /var/lib/mongo

  

MongoDB 3.2.4 Replicate set


MongoDB 3.2.4  Replicate set 




1.先準備三台

 以下主機

 host A(Primary)
 host B(Secondary1)
 host C(Secondary2)



2.首先先在三台的 vim /etc/hosts

加上
host A(Primary)
host B(Secondary1)
host C(Secondary2)

的hosts IP 和名稱


3.登入host A(Primary)
 
  vim /etc/mongod.config

添加這條些內容
replication:
   oplogSizeMB: 100
   replSetName: rs0
  #secondaryIndexPrefetch: all
  # enableMajorityReadConcern: true

wq!: 存檔離開

接著 service mongod stop


4.登入host B(Secondary1)
 
  vim /etc/mongod.config

添加這條些內容
replication:
   oplogSizeMB: 100
   replSetName: rs0
  #secondaryIndexPrefetch: all
  # enableMajorityReadConcern: true

wq!: 存檔離開

接著 service mongod stop


5.登入host C(Secondary2)
 
  vim /etc/mongod.config

添加這條些內容
replication:
   oplogSizeMB: 100
   replSetName: rs0
  #secondaryIndexPrefetch: all
  # enableMajorityReadConcern: true

wq!: 存檔離開

接著 service mongod stop

6.接著

回到 host A(Primary)

輸入 nohup mongod --port 27017 --dbpath /var/lib/mongo/ --config /etc/mongod.conf &

啟動服務


7.接著

回到 host B(Secondary1)

輸入 nohup mongod --port 27017 --dbpath /var/lib/mongo/ --config /etc/mongod.conf &

啟動服務


8.接著

回到 host C(Secondary2)

輸入 nohup mongod --port 27017 --dbpath /var/lib/mongo/ --config /etc/mongod.conf &

啟動服務

9.回到 host A(Primary)

輸入mongo 進入資料庫

輸入rs.initiate()

輸入rs.status() 查看狀態

接下來輸入

rs.add("host B(Secondary1) hostname:27017")   <== 增加第二台機器

輸入

rs.add("host C(Secondary2) hostname:27017")   <== 增加第三台機器


10.輸入 rs.status()

成功的話應該會看到類似下面訊息
=====================================================
{
        "set" : "rs0",
        "date" : ISODate("2016-03-17T02:58:10.275Z"),
        "myState" : 1,
        "term" : NumberLong(1),
        "heartbeatIntervalMillis" : NumberLong(2000),
        "members" : [
                {
                        "_id" : 0,
                        "name" : "mongodb324prim:27017",
                        "health" : 1,
                        "state" : 1,
                        "stateStr" : "PRIMARY",
                        "uptime" : 496,
                        "optime" : {
                                "ts" : Timestamp(1458183478, 1),
                                "t" : NumberLong(1)
                        },
                        "optimeDate" : ISODate("2016-03-17T02:57:58Z"),
                        "electionTime" : Timestamp(1458183353, 2),
                        "electionDate" : ISODate("2016-03-17T02:55:53Z"),
                        "configVersion" : 3,
                        "self" : true
                },
                {
                        "_id" : 1,
                        "name" : "mongodb324sec1:27017",
                        "health" : 1,
                        "state" : 2,
                        "stateStr" : "SECONDARY",
                        "uptime" : 24,
                        "optime" : {
                                "ts" : Timestamp(1458183478, 1),
                                "t" : NumberLong(1)
                        },
                        "optimeDate" : ISODate("2016-03-17T02:57:58Z"),
                        "lastHeartbeat" : ISODate("2016-03-17T02:58:10.209Z"),
                        "lastHeartbeatRecv" : ISODate("2016-03-17T02:58:09.214Z"                   ),
                        "pingMs" : NumberLong(0),
                        "syncingTo" : "mongodb324prim:27017",
                        "configVersion" : 3
                },
                {
                        "_id" : 2,
                        "name" : "mongodb324sec2:27017",
                        "health" : 1,
                        "state" : 2,
                        "stateStr" : "SECONDARY",
                        "uptime" : 12,
                        "optime" : {
                                "ts" : Timestamp(1458183478, 1),
                                "t" : NumberLong(1)
                        },
                        "optimeDate" : ISODate("2016-03-17T02:57:58Z"),
                        "lastHeartbeat" : ISODate("2016-03-17T02:58:10.227Z"),
                        "lastHeartbeatRecv" : ISODate("2016-03-17T02:58:09.242Z"                   ),
                        "pingMs" : NumberLong(4),
                        "syncingTo" : "mongodb324prim:27017",
                        "configVersion" : 3
                }
        ],
        "ok" : 1
}

=====================================================

11. 記得把每台開機自動啟動的服務 mongod 關掉

並且在 vim /etc/rc.d/rc.local

添加此行
nohup mongod --port 27017 --dbpath /var/lib/mongo/ --config /etc/mongod.conf &

讓開機後自動啟動此行 (因為我們要吃 config 設定)


即可完成