手动搭建MongoDB副本集
MongoDB作为分布式数据库,其支持复制功能,复制功能保证将数据的副本保存到多台服务器上。
在创建一个副本集之后就可以使用复制功能了。副本集是一组服务器,其中有一个主服务器(primary),用于处理客户端请求,还有多个备份服务器(secondary),用于保存主服务器的数据副本。如果主服务器崩溃了,备份服务器会自动将其中一个成员升级为新的主服务器。
本文介绍快速搭建三成员的副本集。
在mongodb官方网站上下载mongodb Windows版本,并安装。一般在产品级应用中,每个副本集成员单独在一个机器上。这里为了快速搭建,在同一台机器上起三个mongod进程,使用默认绑定的ip地址(127.0.0.1)。
本例子将mongodb安装在D:\MongoDB 目录下
1、首先创建三个目录存储数据,例如 D:\MongoDB\data\db, D:\MongoDB\data1\db, D:\MongoDB\data2\db
2、开启三个cmd窗口,分别启动三个服务器:
mongod.exe --port 27017 --dbpath "D:\MongoDB\data\db" --logpath "D:\MongoDB\data\MongoDB.log" --replSet rs0 --logappend
按照此方法启动另外两个服务器:
mongod.exe --port 27018 --dbpath "D:\MongoDB\data1\db" --logpath "D:\MongoDB\data1\MongoDB.log" --replSet rs0 --logappend
mongod.exe --port 27019 --dbpath "D:\MongoDB\data2\db" --logpath "D:\MongoDB\data2\MongoDB.log" --replSet rs0 --logappend
其中,--port 指定端口 --replSet 指定副本集的名称,三个服务的进程的副本集名称要一致
3、链接其中一个服务器并初始化副本集
三个服务启动后,cmd窗口不要关闭,另开一个cmd窗口,链接到27017端口的服务器(连接其他的端口也可以):
use test
定义副本集的配置
rs.initiate({"_id":"rs0","members":[{"_id":0,host:"127.0.0.1:27017"},{"_id":1,host:"127.0.0.1:27018"},{"_id":2,host:"127.0.0.1:27019"}]})
_id 的值是副本集名称,成员分别是三个服务器
执行完成后通过 rs.status() 查看副本集状态,其中可以看出副本集的primary节点和连个secondary节点
到此,最简单的副本集就搭建完成了,接下来链接primary 节点就可以插入数据进行验证了
链接primary节点,并插入验证数据:
在primary节点插入数据成功后,可以在任意的secondary节点查看数据。由于主备节点数据复制存在时间差,MongoDB为了防止用户在secondary节点读入脏数据,默认情况下禁止从secondary节点读入数据,可以通过执行 setSlaveOk 命令来允许在secondary节点读入数据:
副本集的复制功能也验证完了。
接下来介绍如何添加或去掉副本集节点成员,通过配置文件启动服务,配置文件中常用项的介绍。
- 点赞
- 收藏
- 关注作者
评论(0)