MongoDB副本集Primary-Secondary切换实验

来源:互联网 发布:淘宝抢购秒杀神器 编辑:程序博客网 时间:2024/05/17 22:06

1. 创建副本节目录

[root@bakdbserver ~]# mkdir -p/var/lib/mongo/dbs/node1

[root@bakdbserver~]# mkdir -p /var/lib/mongo/dbs/node2

[root@bakdbserver~]# mkdir -p /var/lib/mongo/dbs/node3


2. 启动副本集

节点1:

[root@bakdbserver ~]# mongod --dbpath /var/lib/mongo/dbs/node1 --port 10001--nojournal --replSet blort



节点2、3:

mongod --dbpath /var/lib/mongo/dbs/node2--port 10002 --nojournal --replSet blort

mongod --dbpath /var/lib/mongo/dbs/node3--port 10003 --nojournal --replSet blort


3. 初始化副本集

rs.initiate({"_id" :"blort","members" : [

{"_id" : 1,"host" :"bakdbserver:10001"},

{"_id" : 2,"host" :"bakdbserver:10002"},

{"_id" : 3,"host" :"bakdbserver:10003"},

]})




重新连接各节点,可以查看主从角色:



也可通过rs.status()命令查看主从角色状态



4. 测试数据复制

在主节点10001端口插入数据:



在副本节点查看



发现是不能在副本节点进行查看数据操作的,这一点区别于主从复制(Master-Slave)架构


5. 模拟主-副本切换

当前主节点是10001端口进程



杀死主节点进程,模拟主节点故障

[root@bakdbserver slave]# kill -9 15940


再登录一副本节点




可以看到,主节点已经转换为副本3上,即10003端口节点


登录副本三10003端口:



可以看到之前数据是已经同步过来。


5. 重新启动故障节点1

删除节点1之前数据



重新启动



查看节点1状态



原创粉丝点击