W
e
l
c
o
m
e
: )

mongoDB主从复制

mongoDB主从复制搭建

一般情况下,我们通常在机器上安装了一个数据库,这时我们的数据都是存在这个数据库中的,如果有一天,因为一些不可控因素导致数据库宕机或者数据库的文件丢失,此时损失就很大了。针对于这种问题,我们希望有一个数据库集,在我们其中一个数据库进行插入的时候,其他数据库也能插入数据,这样其中一台服务器宕机了,也能够使我们的数据正常存取。

在MongoDB中,是通过replaction复制集来实现此功能的。

在Windows下实现复制集的方法:

创建复制集之前,把所有的mongo服务器都关掉

1、创建三个存储数据库的文件夹,用来保存数据文件

2.创建三个存储日志的文件夹,用来存储日志

3.打开cmd命令窗口,分别启动三个mongo服务器,绑定在三个不同的端口上

# 第一个
mongod --dbpath D:\Application\mongoDB\data\db1 --logpath D:\Application\mongoDB\data\logs1\mongo1.log --port 27017 --replSet rs
# 第二个
mongod --dbpath D:\Application\mongoDB\data\db2 --logpath D:\Application\mongoDB\data\logs2\mongo2.log --port 27017 --replSet rs
# 第三个
mongod --dbpath D:\Application\mongoDB\data\db3 --logpath D:\Application\mongoDB\data\logs3\mongo3.log --port 27018 --replSet rs
# 需要注意的时 --dbpath 路径为你自己的实际路径 
# --logpath 同上
# --port  随你指定 但是 不要占用 常用的端口
# 启动 之后不要 关闭自己的 cmd命令框

其中的--replSet就表示创建的数据集的名称,必须指定相同的名称才可以。

  1. 配置:用客户端连接27017端口的服务器,在这个下面配置
    var rsconf = {
    	_id:'rs',
    	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'}
    			]
    }
    
    # 注意这边的ip和端口 以你实际情况为准
    
    打印rsconf:
     printjson(rsconf)
    
    如图所示:

5.配置初始化

rs.initiate(rsconf)

6.现在已经配置成功了,我们可以在主机插入一条数据测试一下:

7.连接从机

在从机进行操作可以看到这样的提醒

执行:

 rs.slaveOk()

接着我们就可以正常操作了

可以看到,主机上添加的数据,从机也已经有了。

ok,这样就搭建完成了,这样当我们的主机 挂掉之后,从机上拥有主机上的所有的数据,并且从机默认的顶替主机,不会造成其他的影响。

posted @ 2020-02-22 15:01  水一RAR  阅读(94)  评论(0编辑  收藏  举报