标签:02 rs MongoDB 27017 192.168 笔记 mongodb rs0 id
MongoDB副本集配置
一、安装MongoDB
部署说明:三台机器192.168.1.100,192.168.1.101,192.168.1.102
配置副本集(一个Master节点+两个个SECONDARY节点)+用户认证
每台机器安装好mongodb,mongodb.conf配置文件内容相同,如下
systemLog:
destination: file
path: /usr/local/mongodb/logs
logAppend: true
storage:
dbPath: /usr/local/mongodb/data
replication:
replSetName: "rs0"
net:
bindIp: 0.0.0.0
port: 27017
processManagement:
fork: true
setParameter:
enableLocalhostAuthBypass: false
maxTransactionLockRequestTimeoutMillis: 3600
transactionLifetimeLimitSeconds: 600
#security:
# authorization: enabled
# clusterAuthMode: "keyFile"
# keyFile: /usr/local/mongodb/keyfile
二、配置副本集
# 在192.168.1.100上执行rs.initiate() (也可以选择其他机器)
rs.initiate({id:'rs0',members:[{id:1,host:'192.168.1.100:27017'}]});
# 创建admin用户
use admin;
db.createUser({
user:"root",pwd:"123456",
roles: [{role:"userAdminAnyDatabase",db:"admin"},{role:"clusterAdmin",db:"admin"},{role:"root",db:"admin"}, "readWriteAnyDatabase" ]
});
db.auth("root","123456");
注意:副本集需要clusterAdmin角色权限,如果之前没有配置,可以后面追加授权db.grantRolesToUser("admin",[{role:"clusterAdmin",db:"admin"}]);
# 配置副本集keyFile认证文件
[root@localhost mongodb]# openssl rand -base64 666 > /usr/local/mongodb/keyfile
[root@localhost mongodb]# chmod 600 keyfile
[root@localhost mongodb]# scp keyfile root@192.168.1.101:/usr/local/mongodb
[root@localhost mongodb]# scp keyfile root@192.168.1.102:/usr/local/mongodb
# 关闭mongodb 修改配置文件mongodb.conf打开security认证,然后重启mongodb
# 通过rs.add增加SECONDARY节点
(也可以通过rs.addArb()增加仲裁节点,主要区别是:仲裁节点不存储数据,可少了数据复制的压力)
rs0:PRIMARY> rs.add("192.168.1.101:27017");
rs0:PRIMARY> rs.add("192.168.1.102:27017");
rs0:PRIMARY> rs.isMaster() --查看状态
rs0:PRIMARY> rs.status() --查看状态
登录SECONDARY节点查看状态
rs0:SECONDARY> db.getMongo().setSlaveOk(); --或rs.slaveOk()
rs0:SECONDARY> rs.isMaster()
三、其他相关操作
# 查看复制集相关命令帮助
rs.help()
# 副本集也可以这样初始化
rs.initiate(
{
_id : 'rs0',
members: [
{_id:0, host:'192.168.1.100:27017',priority:6},
{_id:1, host:'192.168.1.101:27017',priority:4},
{_id:2, host:'192.168.1.102:27017',priority:2}
]
}
)
或
rs.initiate(
{
_id : 'rs0',
members: [
{_id:0, host:'192.168.1.100:27017',priority:6},
{_id:1, host:'192.168.1.101:27017',priority:4},
{_id:2, host:'192.168.1.102:27017',arbiterOnly:true}
]
}
)
# 移除节点
rs.remove("192.168.1.102:27017");
# 关闭当前示例
db.shutdownServer()
# 将当前主库“降级”
rs0:PRIMARY>rs.stepDown(30)
rs0:SECONDARY>
# 冻结Secondary节点(PRIMARY维护时,可让Secondary不参与PRIMARY选举)
rs0:SECONDARY> rs.freeze(100)
# 查看复制集情况
db.printSlaveReplicationInfo()
其中:
source:从库的ip和端口
syncedTo:目前的同步情况,以及最后一次同步的时间
# rs.add 所有参数
{
_id: <int>,
host: <string>, // required
arbiterOnly: <boolean>,
buildIndexes: <boolean>,
hidden: <boolean>,
priority: <number>,
tags: <document>,
slaveDelay: <int>,
votes: <number>
}
hidden:这样设置后此机器在读写中都不可见,并且不会被选举为Primary,但是可以投票,一般用于备份数据。
slaveDelay:可以指定一个时间延迟从primary节点同步数据。主要用于处理误删除数据马上同步到从节点导致的不一致问题。
四、相关参考
-
Linux下MongoDB副本集搭建 https://www.cnblogs.com/s6-b/p/11288583.html
-
MongoDB副本集的常用操作及原理 https://www.cnblogs.com/ivictor/p/6804408.html
-
mongodb副本集高可用架构 https://www.cnblogs.com/littleatp/p/8562842.html
-
MongoDB 副本集的原理、搭建、应用 https://www.cnblogs.com/zhoujinyi/p/3554010.html
标签:02,rs,MongoDB,27017,192.168,笔记,mongodb,rs0,id 来源: https://www.cnblogs.com/huligong1234/p/12727691.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。