MongoDB有几种运行模式,我了解的是单机模式/主从模式和副本模式(如果理解有误请打脸,papapa).
下面写一下副本模式的环境配置:
两台服务器Centos6.5
解压安装MongoDB3.0
编写启动配置文件mongodb.conf,内容如下:
然后在mongodb/bin使用命令./mongod -f mongodb.conf (我的conf写在bin下面了)dbpath=/mnt/mongodb/data #数据保存位置 logpath=/mnt/mongodb/log/mongo.log #日志保存位置 port=27017 #端口 fork=true #后台运行 #auth=true #是否启用授权认证,就是用户名密码 logappend=true #日志追加 replSet=fithubDev #副本集名称,两台服务器上的名称要一样
分别在两台服务器上启动./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});
MongoDB 副本模式
最新推荐文章于 2024-02-23 10:56:41 发布