MongDB的主从复制和副本集

1  主从复制是一个简单的数据库同步备份的集群技术,有以下几点

    1.1在数据库集群中要明确知道谁是主服务器,主服务器只有一台

    1.2从服务器要知道自己的数据源也就是对于自己的主服务器是谁

    1.3--master用来确定主服务器,--salve和--source来控制从服务器

 

 

 

 

2主从服务器的配置

主服务器的9999.conf的配置:

dbpath=D:\MongoDBDATA\09\9999  #主数据库地址
port=9999     #主数据库端口号
bind_ip=127.0.0.1  #主数据库所在服务器
master=true  #确定我是主服务器

 

从服务器的7777.conf的配置:

dbpath=D:\MongoDBDATA\07\7777  #主数据库地址
port=7777     #主数据库端口号
bind_ip=127.0.0.1  #从数据库所在服务器
source=127.0.0.1:9999 #确定主服务器地址
slave=true  #确定我是从服务器

 

3 启动主从服务器

  启动主服务器(9999mongodb.bat):mongod --config 9999.conf

  启动从服务器(7777mongodb.bat):mongod --config 7777.conf

 

4 启动主从服务器shell客户端(9999shell.bat):mongo 127.0.0.1:9999/test

   启动从服务器shell客户端(7777shell.bat):mongo 127.0.0.1:7777/test

 

 

5 往主服务器数据库插入一条数据,可以在从服务器数据库里面找到

   主服务器数据插入一条数据,再查找

 

可以从从服务器数据库里面查找出主服务器插入的数据

 

动态添加或者删除从节点

主节点端口9999,从节点端口7777

1 查看从节点的sources集合中的值,sources集合在local数据库中,注意启动从节点的时候不要定义主节点的地址。

 

 

 

2 向从节点的source集合插入host字段数据

db.sources.insert({"host":"127.0.0.1:9999"})

 

3 主节点新增数据,会在从节点中查到

主节点新增数据:

从节点可以查询到:

 

 

动态删除源:

db.sources.remove({"host":"127.0.0.1:9999"});

 

副本集:

自动故障恢复功能的主从集群,主从集群和副本集最大区别就是副本集没有固定的主节点,且主从复制中的从节点是可以查询等操作,副本集的从节点不是可以的,以下是副本集工作的图解

 

 初始化副本集

 设置副本集配置:

 A.conf

dbpath=D:\MongoDBDATA\07\3333  #主数据库地址
port=3333     #主数据库端口号
bind_ip=127.0.0.1  #主数据库所在服务器
replSet=child/127.0.0.1:1111  #设定同伴

 

启动A(Amongodb.bat)

 mongod --config A.conf

 

启动shll客户端Ashell.bat

mongo 127.0.0.1:3333

 

在shell客户端初始化副本集

use admin

db.runCommand(

{"replSetInitiate":{
    "_id":"child",
    "members":[
    {
        "_id":1,
        "host":"127.0.0.1:1111",

        "priority":1
    },
   {
        "_id":2,
        "host":"127.0.0.1:2222",

        "priority":1
   },
  {
        "_id":3,
        "host":"127.0.0.1:3333",

        "priority":1
   }]}}

)

 

初始化以后,再打开几个shell客户端,如下图,会有standard,passive,arbiter,primary这几种。primary代表活跃节点,只能在活跃节点上面做查询操作

 

 

查询副本集状态

rs.status()

 

如果关闭一个活跃节点,会推选其他备份节点为活跃节点,我们先关闭1111的端口的节点。

再次打开shell,会发现2222为活跃节点。

 

新的活跃节点将是优先级最高的节点,优先级相同则数据较新的节点获胜。

 

  

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值