千家信息网

MongDB 副本集

发表于:2025-01-21 作者:千家信息网编辑
千家信息网最后更新 2025年01月21日,官方网站:https://docs.mongodb.com/v3.4/reference/replication/中文网站:http://www.mongodb.org.cn/manual/metho
千家信息网最后更新 2025年01月21日MongDB 副本集

官方网站:https://docs.mongodb.com/v3.4/reference/replication/
中文网站:http://www.mongodb.org.cn/manual/method-replication/
权限表参考:https://blog.csdn.net/kk185800961/article/details/45619863
副本集搭建参考:https://www.cnblogs.com/ranjiewen/p/5928994.html

测试环境搭建mongo监控
监控mongodb使用的用户,在不指定数据库名称的情况下,一般是admin库,所以监控用户要在admin下创建,同时授权的权限为clusterMonitor,执行serverStatus

use admindb.createUser({user:"monitor_mongo",pwd:"monitor_mongo@123",roles:[{role:"clusterMonitor",db:"admin"}]})

查看所有用户:

use admin;db.system.users.find()

删除用户:

db.dropUser("")

删除数据库:

> use monitor_mongo;switched to db monitor_mongo> show users;> db.dropDatabase(){ "dropped" : "monitor_mongo", "ok" : 1 }

搭建副本集

===auth启动服务
保证所有节点使用相同的秘钥

echo "this is rs1 super secret key" > /opt/mongodb/keyFilechmod 600 /opt/mongodb/keyFile

使用配置文件auth启动服务时,先进行集群初始化后,在设置密码

config={_id:"rs0",members:[{_id:0,host:"192.168.1.221:23183"}]}rs.initiate(config)db.createUser({user:"root",pwd:"ops2017!2#",roles:[{role:"root",db:"admin"}]})rs.add("20.10.1.31:27018")

如果第一次config写错了,那么可以使用相应命令修改

config={_id:"rs0",members:[{_id:0,host:"192.168.1.221:11111"}]}rs.reconfig(config)

查看集群状态:

rs.status()

查看配置情况:

db._adminCommand({getCmdLineOpts:1})

==========集群测试:节点数量必须>=3,在主库故障时才可以选举剩余节点为主;宕机节点数超过总数一半,也无法选举新的主。
Primary:

rs0:PRIMARY> use testswitched to db testrs0:PRIMARY> db.test.insert({1:1})WriteResult({ "nInserted" : 1 })rs0:PRIMARY> db.test.find(){ "_id" : ObjectId("5c80bfa19d287f61d98d24b5"), "1" : 1 }

SECONDARY:默认客户端不可以从Secondary成员获取数据,必须执行slaveOk后才可以读取数据。

rs0:SECONDARY> rs.slaveOk()rs0:SECONDARY> db.test.find(){ "_id" : ObjectId("5c80bfa19d287f61d98d24b5"), "1" : 1 }

==集群重要参数说明:

 rs.conf(){    "_id" : "rs0",    "version" : 4,    "protocolVersion" : NumberLong(1),    "members" : [        {            "_id" : 0,            "host" : "192.168.1.221:23183",            "arbiterOnly" : false,            "buildIndexes" : true,            "hidden" : false,            "priority" : 1,            "tags" : {            },            "slaveDelay" : NumberLong(0),            "votes" : 1        },

其中:
arbiterOnly:0或1,标识一个仲裁(arbiter),Arbiter的唯一作用是参与Primary的选举,Arbiter不保存数据,不会为client提供服务,它存在的意义就是为了选举Primary。
hidden:0或1,表示该成员是不是隐藏成员,Hidden成员的主要作用是备份数据,可以使用性能较差的服务器作为Hidden成员。Hidden成员不会接收Client的请求,也不会成为Primary。在设置Hidden成员时,必须设置members[n].priorty属性为0。
priority:数值类型,用于设置成员成为Primary的优先级。priority越高的成员,越有机会成为Primary。如果priority=0,那么该成员永远不会成为Primary。
votes:1或0,表示该成员的投票的数量,在每个Replica Set中,最多有7个成员,其votes属性值是1。votes 属性是1的成员(voting members)拥有选举Primary的权利。一个成员要想成为一个Primary,那么必须获得voting members的大多成员的支持。
在Replica Set中,如果voting members的数量是5,那么一个成员成为Primary的条件是:获得超过2个voting members的支持,并且没有任何voting members 反对。只要有任意一个voting member 反对该成员成为Primary,那么该成员就不能成为Primary。

成员 数据 选举 用户 集群 服务 属性 数量 节点 监控 副本 作用 情况 数据库 权限 网站 参考 支持 测试 配置 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 郭大舰网络安全竞赛 plsql数据库权限最高 没有web界面的服务器如何访问 魔力宝贝单机 数据库修改器 移动 白名单 代理服务器 英雄联盟服务器断开链接怎么回事 茂名网络安全教育平台 职校大专计算机网络技术 数据库运维人员密码管理问题 网络安全教育主题班会图片初中生 sql代码创建hsc数据库 山西本地软件开发预算 快速配置win云服务器 魔兽世界3.35数据库多玩 计算机网络技术项目教程论文 网络安全法讲述什么内容 衡水市瑞腾软件开发有限公司 什么是记算机网络技术 服务器可以开服吗 桥西区硕科智云软件开发工作室 服务器怎么找到网页文件 网络安全保密标语 币印服务器 解码管理服务器不可用怎么办 河北霸州网络安全讲座 长宁区网络技术服务销售方法 凡人修真一键端数据库密码 沈阳凯捷软件开发 3d游戏一般用那些软件开发 数据库和图形学
0