mongoDB为数据库生态系统带来了很多创新。
这项创新之一是隐藏副本集成员的概念。
隐藏的副本集是保留主数据集副本的成员,但对客户端是看不见的。
这意味着当使用副本集连接字符串连接客户端时,该成员将不会收到任何读取。
隐藏副本集成员的用例
您可以从隐藏成员的生产中进行备份,而不会引起生产工作流的任何性能问题。
您可以将BI(商业智能)连接到隐藏的成员,在不损害生产工作流程的情况下进行很多重疑问。
您可以从隐藏成员中的大型集合中创建一个新索引,因此您可以更快地创建索引。
配置隐藏的副本集成员
使用mongosh
连接到mongodb节点
mongosh mongodb://mongo1:27017,mongo2:27017/db?replicaSet=rs0
运行rs.status()
查看什么节点是SECONDARY
rs.status()
示例输出:
members: [
{
_id: 0,
name: 'mongodb1:27017',
stateStr: 'PRIMARY',
},
{
_id: 1,
name: 'mongodb2.mongo-prd:27017',
stateStr: 'SECONDARY',
},
]
我们需要像这样修改副本集配置:
const config = rs.config();
config.members[1].hidden = true;
config.members[1].priority = 0;
rs.reconfig(config)
这将把成员设置为“阵列”(mongodb2)位置1为隐藏的副本集成员。
综上所述
生产环境比本地主机和分期更灵敏。
您需要设计过程以避免影响生产工作流程。
隐藏的成员非常适合备份,在BI中运行重型查询并进行数据库维护,例如为大型收藏构建新索引。
参考
https://www.mongodb.com/docs/manual/core/replica-set-hidden-member/
woi
Woovi是一家创业公司,使购物者能够按照自己的意愿付款。为了实现这一目标,Woovi为商人提供即时付款解决方案接受订单。
如果您想与我们合作,我们是hiring!