这篇文章将为大家详细讲解有关mongodb副本集指的是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
<强>一、什么是mongodb副本集? 强>
副本集是一组mongod维护相同数据集的实例,它提供了数据的冗余备份,并在多个服务器上存储数据副本,提高了数据的可用性,并可以保证数据的安全性;还允许您从硬件故障和服务中断中恢复数据,实现自动故障转移,还可以采用分布式方式读取数据。
<强>二,mongodb副本集的原理? 强>
mongodb的复制至少需要两个节点。其中一个是主节点,负责处理客户端请求,其余的都是从节点,负责复制主节点上的数据.mongodb各个节点常见的搭配方式为:一主一从,一主多从。
主节点记录在其上的所有操作oplog,从节点定期轮询主节点获取这些操作,然后对自己的数据副本执行这些操作,从而保证从节点的数据与主节点一致。
通过在不同数据库服务器上提供多个数据副本,复制可提供一定级别的容错功能,以防止丢失单个数据库服务器。
<强>三,mongodb副本集同步? 强>
1。克隆除本地数据库之外的所有数据库。要克隆mongod扫描每个源数据库中的每个集合,并将所有数据插入到这些集合的自己的副本中。版本3.4中已更改:初始同步会在为每个集合复制文档时构建所有集合索引。在早期版本的mongodb中,仅_id在此阶段构建索引。初始同步在数据复制期间提取新添加的oplog记录。确保目标成员在当地数据库中有足够的磁盘空间,以便在此数据复制阶段的持续时间内临时存储这些oplog记录。
2。将所有更改应用于数据集。使用源中的oplog, mongod更新其数据集以反映副本集的当前状态。
初始同步完成后,成员从转换STARTUP2为次要的。
<强>四、部署MongoDB副本集的注意事项强>
如果可能,请使用逻辑DNS主机名而不是IP地址,尤其是在配置副本集成员或分片集群成员时。逻辑DNS主机名的使用避免了由于IP地址更改而导致的配置更改。
IP绑定3.6版本之后才默认绑定地址为localhost,所以最好还是配置——bind-ip参数,如若绑定的非本地计算机,请确保已保护您的群集免受未经授权的访问,最好考虑启用身份验证和强化网络基础架构。
确保网络流量可以在集合的所有成员和网络中的所有客户端之间安全地传递。
1。建立虚拟专用网络。确保您的网络拓扑通过局域网路由单个站点内的成员之间的所有流量。
2。配置访问控制以防止从未知客户端到副本集的连接。
3。配置网络和防火墙规则,以便仅在默认的MongoDB端口上允许传入和传出的数据包,并且仅在部署中允许。
最好部署具有已启用访问控制的副本集。
备份数据库在备份时会出现一定的延迟。
启动MongoDB需以副本集模式启动。
备份数据库必须设置票值为1才拥有选举成为主要服务器的可能。
<强>五,MongoDB副本集的需要哪些资源配置? 强>
一台安装好MongoDB的服务器192.168.1.1
或者
三台安装好MongoDB的服务器192.168.1.1 192.168.1.2 192.168.1.3
网络处于可使用状态
<强>六、部署MongoDB副本集强>
1。设置配置文件
通过——replSet和bind_ip命令行选项指定副本集名称和ip绑定
语法:mongod——replSet“rs0"——bind_ip localhost, & lt;主机名(s) | ip地址(es)在
或者使用配置文件指定副本集名称和ip地址
systemLog ,,,路径:,/var/log/mongodb/mongodb.log 存储 ,,,dbPath:/var/lib/mongo-res1 ,,,杂志:, ,,,,,,,启用:真实 复制: ,,replSetName : rs0 net : ,才能bindIp :, localhost, & lt;主机名(s) |, ip 地址(es)在
<强>配置参数含义:强>
replSet:设置复制集的名称,在各个配置文件中,其值必须相同。
dbpath: MongoDB用于存储数据的目录,默认值是C: \ data \ db
bind_ip:指定ip
路径:用于记录mongod的日志数据
端口:指定MongoDB监听的端口,默认值是27017
然后要使用配置文件启动MongoDB实例,使用,配置选项指定配置文件的路径。
mongod ——config & lt; path-to-config>
三个实例启动完毕后,查看p ef | grep mongo
2。使用mongoDB shell连接到其中一个mongod实例