主从复制是MongoDB最常用的复制方式。这种方式非常灵活,可用于备份、故障恢复、读扩展等。
最基本的设置方式就是建立一个主节点和一个或者多个从节点,每个从节点要知道主节点的地址。运行mongod --master就启动了主服务器。运行mongod --slave --source master_address 则启动了从服务器,其中master_address就是上面主节点的地址。
image.png
1.创建master主节点
创建一个端口号为8888的主节点
mongod --dbpath /Users/mrotaku/Desktop/master --port 8888 --master
2.创建slave从节点
创建一个端口号为9999的从节点
mongod --dbpath /Users/mrotaku/Desktop/slave --port 9999 --slave --source localhost:8888
注:--source 指明主节点的地址,实际应用中将地址和端口号替换成实际服务器ip和地址即可
3.创建测试
1.创建连接主节点的客户端
mongo localhost:8888
添加一条数据
db.col_1.insert({name:'zhangsan',age:18});
2.创建连接从节点的客户端
mongo localhost:9999
此时查看col_1的集合个数,发现多了一条数据
db.col_1.find({}).count();
到这里主从复制已经搭建完成,但是还存在一个问题,我们发现如果主节点挂掉之后,我们在从服务器进行插入语句是报错的:
WriteResult({ "writeError" : { "code" : 10107, "errmsg" : "not master" } })
这显然是不符合我们的实际生产环境的,因此这时候就要用到我们的副本集
网友评论