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)