qq群:465614686
1. 環境建構步驟
(1)線上環境
都是副本集模式 3個業務通路節點+1個隐藏節點 (隐藏節點做hadoop、spark資料同步使用以及資料報表查詢等)
(2)主機以及配置說明
10.21.18.22 secondary節點 優先級為90
10.21.18.23 secondary節點 優先級為80
10.21.18.24 隐藏節點 優先級為0
系統配置:128g記憶體,64core cpu,2tb ssd硬碟
(3)mongodb版本
percona-server-mongodb-3.0.12-1.8
(4)資料量
目前該副本集資料量為1.3tb;
單個集合最大資料量目前為6.7億+,超過5億+的集合有11張,超過2億+的集合有27個;
沒有做sharding叢集,副本集支撐現有業務;
(5)參數配置
幾台伺服器配置完全一樣
# fordocumentation of all options, see:
# http://docs.mongodb.org/manual/reference/configuration-options/
# where to writelogging data.
systemlog:
destination: file
logappend: true
logrotate: reopen
path: /data/users/mgousr01/mongodb/logs/userinfo01.log
# where and howto store data.
storage:
dbpath: /data/users/mgousr01/mongodb/dbdata
journal:
enabled: true
directoryperdb: true
engine: wiredtiger
#########storage.wiredtigeroptions
wiredtiger:
engineconfig:
cachesizegb: 64
directoryforindexes: true
indexconfig:
prefixcompression: true
##########operationprofilingoptions
operationprofiling:
slowopthresholdms: 50
mode: "all"
########processmanagementoptions
processmanagement:
fork: true
pidfilepath:/data/users/mgousr01/mongodb/dbdata/userinfo01.pid
# networkinterfaces
net:
port: 28010
#bindip:
maxincomingconnections: 27600
#operationprofiling:
##########replicationoptions
replication:
oplogsizemb: 95360
secondaryindexprefetch: all
#sharding:
#clusterrole: shardsvr #configsvr or shardsvr
##enterprise-only options
#auditlog:
#snmp:
setparameter:
enablelocalhostauthbypass: true
#replwriterthreadcount: 32
#wiredtigerconcurrentreadtransactions: 1000
#wiredtigerconcurrentwritetransactions: 1000
注意說明:
keyfilers0.key表示認證檔案,需要自己生成;權限為 600 否則啟動失敗,幾台key也都是一樣。
先将security和keyfile參數注釋,待如下(6)(7)(8)操作完畢後,在将security和keyfile參數注釋去掉即可。
(6)啟動
mongod –f mguserinfo.conf
(7)配置副本集的方法
a. 登陸10.21.18.21主機操作
>config={_id:"userrs",members:[{_id:1,host:"10.21.18.21:28010",priority:100,tags:{'use':'usersinfo-01-312'}}]}
> rs.initiate(config)
b. 添加節點
userrs:primary>rs.add({_id:3, host:"10.21.18.23:28010", priority:80,tags:{'use':'usersinfo-03-312'}})
userrs:primary>rs.add({_id:5, host:"10.21.18.24:28010", priority:0,hidden:true,tags:{'use':'usersinfo-03-312-hidden'}})
(8)建立使用者
use admin
db.createuser(
{
user: "admin",
pwd: "123456",
roles:
[
{role: "useradminanydatabase",db: "admin"},
{ role: "readanydatabase", db:"admin" },
{ role: "dbowner", db:"admin" },
{ role: "useradmin", db:"admin" },
{ role: "root", db: "admin"},
{ role: "clustermonitor", db:"admin" },
{ role: "dbadmin", db:"admin" },
]
}
)
使用者名為admin,密碼為123456
2. 如何實作增量備份
(1)上述環境是我們線上的生産環境
(2)将其中一個secondary節點關閉
我選擇了10.21.18.22:28010主機節點
a. 登陸主節點操作如下
rs.remove("10.21.18.22:28010");
從現有叢集中移除該節點
b. shutdownmongod程序
登陸10.21.18.22主機将mongod程序shutdown
mongod –f mguserinfo.conf --shutdown
(3)參數調整
啟動:
(4)登陸到該節點做如下操作
a. mongo10.21.18.22:28010
> use admin
{ "_id" : "authschema", "currentversion" :5 }
b. 目前認證級别為5,将其修改為3
>db.system.version.update({ "_id" : "authschema"},{$set: {"currentversion" : 3} })
c. 重新開機
mongod –f mguserinfo.conf –shutdown
mongod–f mguserinfo.conf
這樣該節點又加入到該叢集中
(5)切換primary節點
a. 調整優先級
将10.21.18.21主機mongodb primary節點的優先級修改為85即可
b. 操作指令
cfg =rs.conf()
cfg.members[1].priority= 85
rs.reconfig(cfg)