文档章节

mongodb replica set(副本集)

flyking
 flyking
发布于 2014/10/25 22:41
字数 657
阅读 20
收藏 0

建立配置文件

master.conf

#master.conf
dbpath=/mongodb/data/master
logpath=/mongodb/log/master.log
pidfilepath=/mongodb/master.pid
directoryperdb=true
logappend=true
replSet=testrs
bind_ip=10.10.148.130
port=27017
oplogSize=10000
fork=true
noprealloc=true

slaver.conf

#slaver.conf
dbpath=/mongodb/data/slaver
logpath=/mongodb/log/slaver.log
pidfilepath=/mongodb/slaver.pid
directoryperdb=true
logappend=true
replSet=testrs
bind_ip=10.10.148.131
port=27017
oplogSize=10000
fork=true
noprealloc=true

arbiter.conf

#arbiter.conf
dbpath=/mongodb/data/arbiter
logpath=/mongodb/log/arbiter.log
pidfilepath=/mongodb/arbiter.pid
directoryperdb=true
logappend=true
replSet=testrs
bind_ip=10.10.148.132
port=27017
oplogSize=10000
fork=true
noprealloc=true

参数解释:

dbpath:数据存放目录
logpath:日志存放路径
pidfilepath:进程文件,方便停止mongodb
directoryperdb:为每一个数据库按照数据库名建立文件夹存放
logappend:以追加的方式记录日志
replSet:replica set的名字
bind_ip:mongodb所绑定的ip地址
port:mongodb进程所使用的端口号,默认为27017
oplogSize:mongodb操作日志文件的最大大小。单位为Mb,默认为硬盘剩余空间的5%
fork:以后台方式运行进程
noprealloc:不预先分配存储

启动mongodb

./monood -f master.conf
./mongod -f slaver.conf
./mongod -f arbiter.conf

配置主、备、仲裁节点

可以通过客户端连接mongodb,也可以直接在三个节点中选择一个连接mongodb

./mongo 10.10.148.130:27017   #ip和port是某个节点的地址
>use admin
>cfg={ _id:"testrs", members:[ {_id:0,host:'10.10.148.130:27017',priority:2}, {_id:1,host:'10.10.148.131:27017',priority:1}, 
{_id:2,host:'10.10.148.132:27017',arbiterOnly:true}] };
>rs.initiate(cfg)             #使配置生效

优先级最高的即成为主节点,即这里的10.10.148.130:27017。特别注意的是,对于仲裁节点,需要有个特别的配置---arbiterOnly:true

查看配置是否生效

rs.status()

使用pymongo连接副本集

from gevent import monkey; monkey.patch_socket()
from pymongo import MongoReplicaSetClient
from pymongo.read_preferences import ReadPreference

rsc = MongoReplicaSetClient('mongodb://10.10.148.130:27017,10.10.148.131:27017,10.10.148.132:27017', replicaSet='testrs', read_preference=ReadPreference.SECONDARY_PREFERRED, use_greenlets=True)

pymongo.read_preferences.ReadPreference参数含义

primary(ReadPreference.PRIMARY) 主节点,默认模式,读操作只在主节点,如果主节点不可用,报错或者抛出异常
primaryPreferred(ReadPreference.PRIMARY_PREFERRED) 首选主节点,大多情况下读操作在主节点,如果主节点不可用,如故障转移,读操作在从节点
secondary(ReadPreference.SECONDARY) 从节点,读操作只在从节点, 如果从节点不可用,报错或者抛出异常
secondaryPreferred(ReadPreference.SECONDARY_PREFERRED) 首选从节点,大多情况下读操作在从节点,特殊情况(如单主节点架构)读操作在主节点
nearest((ReadPreference.NEAREST)) 最邻近节点,读操作在最邻近的成员,可能是主节点或者从节点


参考:

Mongodb集群搭建的三种方式 http://blog.csdn.net/luonanqin/article/details/8497860

MongoDB读写分离(Read Preference)的几种模式 http://blog.163.com/passc_lee/blog/static/2152541462013102711289420/

pymongo http://api.mongodb.org/python/current/api/pymongo/mongo_replica_set_client.html#pymongo.mongo_replica_set_client.MongoReplicaSetClient

http://api.mongodb.org/python/current/api/pymongo/index.html#pymongo.read_preferences.ReadPreference

http://api.mongodb.org/python/current/examples/gevent.html


© 著作权归作者所有

上一篇: 切片分组
flyking
粉丝 64
博文 218
码字总数 75579
作品 0
东城
程序员
私信 提问
Install MongoDB 3.4 with Replica Set on CentOS7.x

Install MongoDB 3.4 with Replica Set on CentOS7.x by Dennis 2017/09/25 <> CentOS7.x 安装 MongoDB 3.4.x, 三台机器 (至少需要 3 台机器)做 Replica Set Install MongoDB 在每一台机器......

丹尼斯
2017/10/25
0
0
mongodb Replica Set 部署

Replica Set 下面实验使用的是ubuntu1404-3.5.13 版本 在ubuntu1404上安装 Replica Set 集群节点: master 安装 使用supervisor管理mongodb slave 安装 使用supervisor管理mongodb arbiter 安...

lvnian2009
2018/06/26
0
0
使用Docker和Kubernetes将MongoDB作为微服务运行

原文:Running MongoDB as a Microservice with Docker and Kubernetes 作者:Andrew Morgan 译者:徐雷 MongoDB是NoSQL排名第一的数据库,Docker是最流行的容器引擎,Kubernetes是谷歌开源的...

徐雷frank
03/16
0
0
MongoDB Upgrade a Replica Set to 3.4

MongoDB 副本集升级 前言 Part1:写在最前 本文讲解MongoDB副本集的升级方法,以及注意事项。本文的环境为MongoDB3.2升级MongoDB3.4,低版本升级3.4的话需要优先升级到3.2版本才可以。如果发现...

dbapower
2018/07/04
0
0
搭建高可用mongodb集群(四)—— 分片

按照上一节中《搭建高可用mongodb集群(三)—— 深入副本集》搭建后还有两个问题没有解决: 从节点每个上面的数据都是对数据库全量拷贝,从节点压力会不会过大?数据压力大到机器支撑不了的...

观澜而索源
2014/03/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

写一个Mysql死锁的例子

创建表 CREATE TABLE `test1` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(10) NOT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=ut......

嘴角轻扬30
5分钟前
0
0
vue cle新建vue项目

1,首先安装上vue-cli 3.0以上的版本,在cmd里输入命令 npm install -g @vue/cli 安装vue_cli 2,命令里输入vue ui会弹出动画创建vue页面 3,点击创建输入创建项目的位置 4,输入项目名,点...

东方巨人
22分钟前
0
0
fastdfs-client-java 安装方法

因为远程无 fastdfs-client-java.jar包,只能去官方网站下载到本地,再用mvn clean install 命令打包到本地仓库 如果mvn出现错误,删除源码中的pom.xml 的<version>3.5.1</version>再编译...

lsjlgo
29分钟前
0
0
4.01、Linux异常

1、无法连接虚拟设备ide1:0,因为主机上没有响应的设备 解决方法:找到“虚拟机” —— 打开“虚拟机设置” —— 单击“CD/DVD(IDE)”,右侧选中“使用ISO映像文件”,然后选中自己的镜像,重启...

静以修身2025
43分钟前
1
0
不允许有匹配 "[xX][mM][lL]" 的处理指令目标

Bug解决方案:org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 8; 不允许有匹配 "[xX][mM][lL]" 的处理指令目标 Caused by: org.xml.sax.SAXParseException; lineNumber: 1; c......

我叫小糖主
46分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部