MongoDB 副本模式

MongoDB有几种运行模式,我了解的是单机模式/主从模式和副本模式(如果理解有误请打脸,papapa).


下面写一下副本模式的环境配置:

两台服务器Centos6.5

      解压安装MongoDB3.0


编写启动配置文件mongodb.conf,内容如下:

	dbpath=/mnt/mongodb/data  #数据保存位置
	logpath=/mnt/mongodb/log/mongo.log #日志保存位置
	port=27017 #端口
	fork=true #后台运行
	#auth=true  #是否启用授权认证,就是用户名密码
	logappend=true #日志追加
	replSet=fithubDev #副本集名称,两台服务器上的名称要一样
然后在mongodb/bin使用命令./mongod -f mongodb.conf (我的conf写在bin下面了)

分别在两台服务器上启动./mongo的命令行

执行如下代码,用来配置服务器参数的,默认启动后是服务器之间是无法交流的。

命令好执行:

conf=
{
    "_id" : "xxxx",
    "members" : [
        { "_id" : 0,  "host" : "IP1:27017" },
        { "_id" : 1,  "host" : "IP2:27017"  }
    ]
}

回车,执行

rs.initiate(conf);

两台服务器都要执行,上面代表副本集xxx, 两个成员服务器。分别执行后查看状态:

rs.status();


此时双方还未完全初始化完毕,稍等一下再看就变成这样了:


两个几点会自动选出Primary主节点,另一个作为第二节点,一般负责数据备份,默认读写都在主节点上,然后数据会同步到第二节点上,如果多个服务器,会有一个Primary和多个Secondary。

如果在secondary节点上查询需要执行以下rs.slaveOK();不然是不能执行查询的。


如果要设置指定服务器为master可以设置优先级,优先级高的将成为master节点:

priority越大优先级越高

conf=
{
    "_id" : "fithubDev“,
    "members" : [
        { "_id" : 0,  "host" : "ip1:27017" ,"priority":5 },
        { "_id" : 1,  "host" : "ip2:27017" ,"priority":1 }
    ]
}



如果重新配置时提示:"replSetReconfig should only be run on PRIMARY, but my state is REMOVED; use the \"force\" argument to override",


只需要在rs.reconfig中增加一个参数如下:rs.reconfig(conf, {force:true});




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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值