close

MongoDB Replica Set 安裝SOP 3.2.4版  

OS = RHEL 6.2

(請在三台Primary ,Secondary1 ,Secondary2機器上面安裝)

 

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) 即可


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

設定 MongoDB Replica

1.先到在Primary 那台

輸入mongo 進入資料庫

接著

輸入use admin

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

貼上
db.createUser( {
    user: "mongoUser",
    pwd: "password",
    roles: [ { role: "dbOwner", db: "social" } ]
  });
  
輸入 exit 離開  
-----------------------------------------------
2.建立資料安全性 (Key)

請在Primary機器

輸入 openssl rand -base64 741 > /var/lib/mongo/mongodb-keyfile  (產生金鑰)

輸入 chmod 600 /var/lib/mongo/mongodb-keyfile

輸入 chown mongodb.mongodb /var/lib/mongo/mongodb-keyfile

記得要把 剛剛產生的 mongodb-keyfile 放到 Secondary1 ,Secondary2這兩台


3.連線到Secondary1 (複製金鑰)

輸入 scp -p -r root@primary(hostname or IP):/var/lib/mongo/mongodb-keyfile /var/lib/mongo/
輸入 chown mongodb.mongodb /var/lib/mongo/mongodb-keyfile

4.連線到Secondary2 (複製金鑰)

輸入 scp -p -r root@primary(hostname or IP):/var/lib/mongo/mongodb-keyfile /var/lib/mongo/
輸入 chown mongodb.mongodb /var/lib/mongo/mongodb-keyfile

5.回到 primary 

輸入 vim /etc/mongod.conf

新增下面四行

security:
  keyFile: /var/lib/mongo/mongodb-keyfile
 
replication:
  replSetName: rs0
  
輸入:wq! 離開

輸入service mongod restart (重啟服務)

6.連線到Secondary1

輸入 vim /etc/mongod.conf

新增下面四行

security:
  keyFile: /var/lib/mongo/mongodb-keyfile
 
replication:
  replSetName: rs0
  
輸入:wq! 離開

輸入service mongod restart (重啟服務)


7.連線到Secondary2
輸入 vim /etc/mongod.conf

新增下面四行

security:
  keyFile: /var/lib/mongo/mongodb-keyfile
 
replication:
  replSetName: rs0
  
輸入wq! 離開

輸入service mongod restart (重啟服務)

8.連線到Primary

輸入mongo

輸入use admin

輸入 db.auth("mongoRootAdmin","password")

回傳1 表示正常

-----------------------------------------------
接著輸入
rs.initiate()

輸入
rs.conf()

畫面類似如下

> rs.initiate()
{
        "info2" : "no configuration specified. Using a default configuration for the set",
        "me" : "mongodb324prim:27017",
        "ok" : 1
}
rs0:OTHER> rs.conf()
{
        "_id" : "rs0",
        "version" : 1,
        "protocolVersion" : NumberLong(1),
        "members" : [
                {
                        "_id" : 0,
                        "host" : "mongodb324prim:27017",
                        "arbiterOnly" : false,
                        "buildIndexes" : true,
                        "hidden" : false,
                        "priority" : 1,
                        "tags" : {

                        },
                        "slaveDelay" : NumberLong(0),
                        "votes" : 1
                }
        ],
        "settings" : {
                "chainingAllowed" : true,
                "heartbeatIntervalMillis" : 2000,
                "heartbeatTimeoutSecs" : 10,
                "electionTimeoutMillis" : 10000,
                "getLastErrorModes" : {

                },
                "getLastErrorDefaults" : {
                        "w" : 1,
                        "wtimeout" : 0
                },
                "replicaSetId" : ObjectId("56f3ae3562814f2e49aa3b38")
        }
}
-----------------------------------------------

輸入rs.add("secondary1(hostname):27017")  (新增secondary1機器)

輸入rs.add("secondary2(hostname):27017")  (新增secondary2機器)

輸入rs.status() 查看狀態

畫面類似如下

rs0:PRIMARY> rs.add("mongodb324sec1:27017")
{ "ok" : 1 }
rs0:PRIMARY> rs.add("mongodb324sec2:27017")
{ "ok" : 1 }
rs0:PRIMARY> rs.conf()
{
        "_id" : "rs0",
        "version" : 3,
        "protocolVersion" : NumberLong(1),
        "members" : [
                {
                        "_id" : 0,
                        "host" : "mongodb324prim:27017",
                        "arbiterOnly" : false,
                        "buildIndexes" : true,
                        "hidden" : false,
                        "priority" : 1,
                        "tags" : {

                        },
                        "slaveDelay" : NumberLong(0),
                        "votes" : 1
                },
                {
                        "_id" : 1,
                        "host" : "mongodb324sec1:27017",
                        "arbiterOnly" : false,
                        "buildIndexes" : true,
                        "hidden" : false,
                        "priority" : 1,
                        "tags" : {

                        },
                        "slaveDelay" : NumberLong(0),
                        "votes" : 1
                },
                {
                        "_id" : 2,
                        "host" : "mongodb324sec2:27017",
                        "arbiterOnly" : false,
                        "buildIndexes" : true,
                        "hidden" : false,
                        "priority" : 1,
                        "tags" : {

                        },
                        "slaveDelay" : NumberLong(0),
                        "votes" : 1
                }
        ],
        "settings" : {
                "chainingAllowed" : true,
                "heartbeatIntervalMillis" : 2000,
                "heartbeatTimeoutSecs" : 10,
                "electionTimeoutMillis" : 10000,
                "getLastErrorModes" : {

                },
                "getLastErrorDefaults" : {
                        "w" : 1,
                        "wtimeout" : 0
                },
                "replicaSetId" : ObjectId("56f3ae3562814f2e49aa3b38")
        }
}
rs0:PRIMARY> exit
bye


這樣就完成了設定囉 ~~

arrow
arrow
    全站熱搜

    DavidLeE 發表在 痞客邦 留言(0) 人氣()