mongodb不同版本实现主从复制

本文涉及的产品
云数据库 MongoDB,通用型 2核4GB
简介: mongoDB有一个主要特性就是复制,有多种复制形式,其中,主从复制是比较常用的一种。

mongoDB有一个主要特性就是复制,有多种复制形式,其中,主从复制是比较常用的一种。

主从复制的工作原理:首先要有两个或更多的服务器,其中一个是主节点,负责处理客户端的请求,其他的都是从节点,负责映射主节点的数据。主节点记录在其上执行的所有操作,从节点定期轮询主节点获得的这些操作,然后执行这些操作。由于从节点和主节点执行了相同的操作,从节点就能保持与主节点的数据同步。

实战讲解一下mongodb的搭建和主从复制,因为只有一台服务器,所以只能通过修改端口号实现mongodb的主从,而不是通过多台服务器实现。其实原理是一样的~,只是这样做实际意义不大~

之前已经装了一个版本的mongodb(2.6.11),既然现在mongodb已经更新到了3.0.6,那么从库就特意使用3.0.6,反正是测试用途,就不管那么多了~

安装

mongodb下载地址

下载mongodb3.0.6执行文件包,并解压,把二进制执行文件放在/usr/local/mongo3.0.6目录

配置

主库配置

# mongod.conf

#where to log
logpath=/var/log/mongodb/mongod-27017.log

logappend=true

# fork and run in background
fork=true

port=27017

#dbpath=/var/lib/mongo
dbpath=/data/mongodb/mongo-27017

# location of pidfile
pidfilepath=/var/run/mongodb/mongod-27017.pid

bind_ip=127.0.0.1,192.168.56.61

#noauth=true

# Ignore query hints
#nohints=true

# Disable the HTTP interface (Defaults to localhost:27017).
nohttpinterface = false
rest = true

master = true

从库配置

# mongod.conf

#where to log
logpath=/var/log/mongodb/mongod-27018.log

logappend=true

# fork and run in background
fork=true

port=27018

#dbpath=/var/lib/mongo
dbpath=/data/mongodb/mongo-27018

# location of pidfile
pidfilepath=/var/run/mongodb/mongod-27018.pid

# Listen to local interface only. Comment out to listen on all interfaces. 
bind_ip=127.0.0.1,192.168.56.61

#noauth=true

# Ignore query hints
#nohints=true

# Disable the HTTP interface (Defaults to localhost:27018).
nohttpinterface = false
rest = true

slave = true
source = 127.0.0.1:27017

启动

# 主库启动
/usr/local/mongo2.6.11/mongod -f /etc/mongod/mongod-27017.conf

# 从库启动
/usr/local/mongo3.0.6/mongod -f /etc/mongod/mongod-27018.conf

认证

不同版本的mongodb开始auth模式可以通过下面的方法来实现

  1. 先把所有主从mongodb设为unauth模式
  2. 在master添加一个账号,这样slave也就自动同步了该账号
  3. 把所有主从mongodb开启auth模式

文章转载自 开源中国社区[https://www.oschina.net]

相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。   相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
相关文章
|
4月前
|
存储 JSON 分布式计算
MongoDB【部署 01】mongodb最新版本6.0.5安装部署配置使用及mongodb-shell1.8.0安装使用(云盘分享安装文件)
MongoDB【部署 01】mongodb最新版本6.0.5安装部署配置使用及mongodb-shell1.8.0安装使用(云盘分享安装文件)
149 0
|
7月前
|
SQL 运维 NoSQL
MongoDB 6.0.3版本Balancer改动
Balancer不再执行自动分割,chunk无法作为数据均衡判断依据
|
运维 NoSQL Cloud Native
【活动】阿里云MongoDB版本升级实践及新特性介绍
本次线上研讨会将对MongoDB 4.4/5.0/6.0 新特性进行介绍,以及如何在阿里云上进行版本升级的最佳实践分享
【活动】阿里云MongoDB版本升级实践及新特性介绍
|
NoSQL Ubuntu Linux
Linux服务器安装部署最新稳定版本mongoDB社区版- Ubuntu-20.04版本
Linux服务器安装部署最新稳定版本mongoDB社区版- Ubuntu-20.04版本
994 0
Linux服务器安装部署最新稳定版本mongoDB社区版- Ubuntu-20.04版本
|
存储 缓存 NoSQL
分布式服务器框架之Servers.Core中 实现Log模块设计 写入MongoDB数据库
游戏服务器中都需要用到Log模块,log模块存在的意义第一个是将log输出到控制台又或者是写入到log文件中,出了BUG方便定位;第二是常用于将用户的数据(例如玩家登录、道具购买量)将这种log统计到数据库中,方便统计用户留存信息、数据分析等。
|
NoSQL MongoDB 数据库
分布式服务器框架之Server.Core库中实现YFUniqueEntity、YFUniqueIDBase 管理MongoDB 自定义Id的自增
YFUniqueEntity是数据库中的结构,GetUniqueID函数中会根据Type和自增步长去数据库中寻找该类型的当前ID是多少,然后会用当前的Id去加上步长,把更新后的新ID插入到MongoDB中记录着ID的那张表里。
|
NoSQL MongoDB
分布式服务器框架之Servers.Core库中实现 MongoEntityBase 实现阻塞 异步对MongoDB的增删改查
YFMongoDBModelBase类是个模板类,对模板参数进行了约束YFMongoEntityBase,必须要继承YFMongoEntityBase
|
JSON NoSQL MongoDB
分布式服务器框架之Servers.Core库中实现MongoDB的ObjectId和Json转换
分布式服务器框架之Servers.Core库中实现MongoDB的ObjectId和Json转换
|
SQL NoSQL MongoDB
分布式服务器框架之Servers.Core库中实现MongoDB对象实体类 管理对象ID
MongoDB中的ID是一个hash码,和传统的关系数据库相比MongoDB没有办法实现ID的自增,如果需要ID自增的话,所以要自己管理ID,并且把对应类型的ID写入到一个专门的Collection(其实就是Sql中的Table)里面去,每次创建新对象的时候,都要取到该类型当前的ID,然后在这个基础上+1,比如当前是角色的ID是1,又创建了一个新的角色,要在原来的基础上+1 ID=2。今天先把MongoDB的对象实体基类实现了。
|
JavaScript NoSQL MongoDB
Node(九)之Node配合MongoDB实现简单的注册登录
Node(九)之Node配合MongoDB实现简单的注册登录
77 0