实验准备:
mongodb安装的4.03版本,虚拟机用的是VMware,三个端口分别是:
127.0.0.1:27017 主节点
127.0.0.1:27018 从节点
127.0.0.1:27019 仲裁节点 不存储数据,只是负责通过心跳包来确认集群中集合的数量,并在主服务器选举的时候作为仲裁决定结果
1.为不同节点创建不同的db文件夹
2.启动三个节点
我这边是使用xshell连接的虚拟机,并开启三个窗口
./mongod --port 27017 --dbpath=/data/db --replSet rs0 ./mongod --port 27018 --dbpath=/data/db2 --replSet rs0 ./mongod --port 27019 --dbpath=/data/db3 --replSet rs0
3.连接主节点,并启动副本集
我这边之前已经初始化一次了,所以提示already initialized
4.添加从节点,仲裁节点
输入 rs.status()可以看到添加成功
5.测试复制集secondary节点数据复制功能
在主节点创建一个user集合并插入一条数据
连接从节点看看是否复制成功
出现如下错误是正常的,因为SECONDARY是不允许读写的,输入下面语句即可解决
SECONDARY> rs.slaveOk();
开始测试如下
可以看到同步成功
6.测试复制集主从节点故障转移功能
关闭主节点
在从节点上查看可以发现27018从从节点变成了主节点
这时候如果重启127.0.0.1:27017,该节点就会变成27018的从节点
神龙|纯净稳定代理IP免费测试>>>>>>>>天启|企业级代理IP免费测试>>>>>>>>IPIPGO|全球住宅代理IP免费测试