MongoDB安裝副本集配置

2018年10月13日09:58:28 發(fā)表評(píng)論 4,616 ℃

一、yum安裝

1、到阿里云源下載最新rpm安裝包到服務(wù)器安裝

#wget https://mirrors.aliyun.com/mongodb/yum/redhat/7/mongodb-org/4.0/x86_64/RPMS/mongodb-org-server-4.0.1-1.el7.x86_64.rpm

#rpm -ivh mongodb-org-*.rpm

#systemctl start mongod #啟動(dòng)mongod服務(wù)

#systemctl enable mongod  #設(shè)置開(kāi)機(jī)啟動(dòng)

相關(guān)文件路徑

MongoDB安裝副本集配置

 

二、二進(jìn)制安裝

1、下載二進(jìn)制安裝包解壓安裝

#wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.0.1.tgz

#tar -zxvf mongodb-linux-x86_64-rhel70-4.0.1.tgz

#mv mongodb-linux-x86_64-rhel70-4.0.1 /usr/local/mongodb

#cd /usr/local/mongodb

#mkdir -pv {conf,log,data/db1}  #創(chuàng)建配置文件、日志、數(shù)據(jù)目錄

# echo "export PATH=$PATH:/usr/local/mongodb/bin" > /etc/profile.d/mongodb.sh #設(shè)置環(huán)境變量

#source /etc/profile #讓環(huán)境變量生效

#useradd mongod  -s /bin/false #新建MongoDB運(yùn)行賬戶

#chown -R mongod:mongod /usr/local/mongodb/ #更改mongod目錄用戶和屬組

 

2、新建配置文件mongodb.conf

#vim /usr/local/mongodb/conf/mongodb.conf

 

# mongod.conf

 

# for documentation of all options, see:

#   http://docs.mongodb.org/manual/reference/configuration-options/

 

# where to write logging data.

systemLog:

  destination: file

  logAppend: true

  path: /usr/local/mongodb/log/mongod-log-1.log

 

# Where and how to store data.

storage:

  dbPath: /usr/local/mongodb/data/db1

  journal:

    enabled: true

#  engine:

#  mmapv1:

#  wiredTiger:

 

# how the process runs

processManagement:

  fork: true  # fork and run in background

  pidFilePath: /usr/local/mongodb/mongod.pid  # location of pidfile

  timeZoneInfo: /usr/share/zoneinfo

 

# network interfaces

net:

  port: 27017

  bindIp: master  # Enter 0.0.0.0,:: to bind to all IPv4 and IPv6 addresses or, alternatively, use the net.bindIpAll setting.

 

 

#security:

 

#operationProfiling:

 

#replication:

 

#sharding:

 

## Enterprise-Only Options

 

#auditLog:

 

#snmp:

 

3、新建service服務(wù)文件

#vim /usr/lib/systemd/system/mongod.service

[Unit]

Description=MongoDB Database Server

After=network.target

Documentation=https://docs.mongodb.org/manual

 

[Service]

User=mongod

Group=mongod

Environment="OPTIONS=-f /usr/local/mongodb/conf/mongodb.conf"

ExecStart=/usr/local/mongodb/bin/mongod $OPTIONS

PermissionsStartOnly=true

PIDFile=/usr/local/mongodb/mongod.pid

Type=forking

# file size

LimitFSIZE=infinity

# cpu time

LimitCPU=infinity

# virtual memory size

LimitAS=infinity

# open files

LimitNOFILE=64000

# processes/threads

LimitNPROC=64000

# locked memory

LimitMEMLOCK=infinity

# total threads (user+kernel)

TasksMax=infinity

TasksAccounting=false

# Recommended limits for for mongod as specified in

# http://docs.mongodb.org/manual/reference/ulimit/#recommended-settings

 

[Install]

WantedBy=multi-user.target

 

4、設(shè)置內(nèi)核參數(shù)

#echo 0 > /proc/sys/vm/zone_reclaim_mode

#sysctl -w vm.zone_reclaim_mode=0    #永久設(shè)置

#echo never > /sys/kernel/mm/transparent_hugepage/enabled

#echo never > /sys/kernel/mm/transparent_hugepage/defrag

 

5、啟動(dòng)測(cè)試

#systemctl start mongod  #啟動(dòng)服務(wù)

#systemctl enable mongod #設(shè)置開(kāi)機(jī)啟動(dòng)

 

三、副本集配置

Master 192.168.133.128

Node1 192.168.133.129

Node2 192.168.133.130


1、三節(jié)點(diǎn)分別設(shè)置hosts

#cat <<EOF >> /etc/hosts

192.168.133.128 master

192.168.133.129 node1

192.168.133.130 node2

EOF


2、編輯配置文件

#Vim /etc/mongod.conf #所有節(jié)點(diǎn)配置文件添加如下兩行

replication:

  replSetName: rs1

#systemctl restart mongod  #重啟服務(wù)讓配置生效


3、連接master節(jié)點(diǎn)MongoDB

# mongo --host=master

>use admin

>rs.initiate()   #初始化副本集

>rs.conf()     #確認(rèn)設(shè)定

>rs.add(node1:27017)  #添加node1rs1副本集

>rs.add({host:node2:27017,priority:5})  #添加node2rs1副本集,并設(shè)置priority優(yōu)先級(jí)為5

>rs.conf()   #確認(rèn)設(shè)定

>rs.status()   #查看狀態(tài)

 

設(shè)置priority優(yōu)先級(jí)

>var config = rs.config()

>config.members[0].priority=6

>rs.reconfig(config)  //重新更新配置

MongoDB安裝副本集配置

刪除節(jié)點(diǎn)

>rs.remove(node1:27017)


4、數(shù)據(jù)同步測(cè)試

a. 在主庫(kù)插入數(shù)據(jù)

rs1:PRIMARY> db.user.insert({"姓名":"張三","年齡":20,"性別":""})

rs1:PRIMARY> db.user.find()

{ "_id" : ObjectId("5b7bca2a40d8bd576c4e3c54"), "姓名" : "張三", "年齡" : 20, "性別" : "" }

b.登陸從節(jié)點(diǎn)查詢數(shù)據(jù)

# mongo --host=node1

rs1:SECONDARY>use admin

rs1:SECONDARY>rs.slaveOk()  #開(kāi)啟從庫(kù)讀取

rs1:SECONDARY> db.user.find()

{ "_id" : ObjectId("5b7bca2a40d8bd576c4e3c54"), "姓名" : "張三", "年齡" : 20, "性別" : "" }


5、故障轉(zhuǎn)移測(cè)試

a.關(guān)閉master MongoDB服務(wù)

# systemctl stop mongod

b.登陸任意從節(jié)點(diǎn)數(shù)據(jù)庫(kù),查看狀態(tài)

# mongo --host=node2

>use admin

>rs.status()

MongoDB安裝副本集配置

MongoDB安裝副本集配置

可以看到priority優(yōu)先級(jí)為5的節(jié)點(diǎn)已經(jīng)變成了主節(jié)點(diǎn)。

c.在新的主節(jié)點(diǎn)添加數(shù)據(jù)。

rs1:PRIMARY> db.user2.insert({"姓名":"李四","年齡":25,"性別":""})

WriteResult({ "nInserted" : 1 })

rs1:PRIMARY> db.user2.find()

{ "_id" : ObjectId("5b7bd44c6129560c71cc22e0"), "姓名" : "李四", "年齡" : 25, "性別" : "" }

d.啟動(dòng)故障節(jié)點(diǎn)的MongoD服務(wù)

#systemctl start mongod

#mongo --host=master

> use admin

>rs.stauts()

MongoDB安裝副本集配置

可以看到故障服務(wù)器上線以后,又變成了主庫(kù)。

> db.user2.find()  #查詢剛才添加的數(shù)據(jù)

{ "_id" : ObjectId("5b7bd44c6129560c71cc22e0"), "姓名" : "李四", "年齡" : 25, "性別" : "" }

【騰訊云】云服務(wù)器、云數(shù)據(jù)庫(kù)、COS、CDN、短信等云產(chǎn)品特惠熱賣(mài)中

發(fā)表評(píng)論

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: