MongoDB高级应用(一):主从复制

作者: 四冶读史 | 来源:发表于2017-08-29 15:45 被阅读71次

1.架构模型

Paste_Image.png

从架构上看,主从复制有什么好处:
数据备份
数据恢复
读写分离

一般的数据库都会有主从模式,为了平衡负载,主库写,从库读。
说的再多,实践下吧。

2.主从复制

拿2台数据库为例,10.11.1.58和10.11..1.66
10.11.1.58 主
10.11.1.66 从

创建数据库路径
主:mkdir -p /data/master
从:mkdir -p /data/slave

创建日志文件路径
主:mkdir -p /data/log
从:mkdir -p /data/log

创建配置文件路径
主:mkdir -p /data/conf
从:mkdir -p /data/conf

创建主数据启动配置文件

port=27017
logpath=/data/log/mongod.log
dbpath=/data/master
pidfilepath=/data/master/mongod.pid
fork=true
master=true
oplogSize=2048

命名为master.conf,存放在/data/conf/下
创建从数据启动配置文件

port=27017
logpath=/data/log/mongod.log
dbpath=/data/slave
pidfilepath=/data/slave/mongod.pid
fork=true
slave=true
source=10.11.1.58:27017   #主数据库的IP和端口
autoresync=true

命名为slave.conf,存放在/data/conf/下
这样就配置好了master-slave

干掉已存在的mongod进程

ps -ef|grep mongo
Paste_Image.png

有就干掉
kill pid

启动服务
master

/usr/local/mongodb/bin/mongod --config /data/conf/master.conf 
Paste_Image.png

显示启动成功!
slave

/usr/local/mongodb/bin/mongod --config /data/conf/slave.conf 
Paste_Image.png

显示启动成功!

3.验证部署

主从验证主要是验证主写入数据,从读取数据
master写数据
登录master

/usr/local/mongodb/bin/mongo
Paste_Image.png

写数据
创建数据库

> use testdb
switched to db testdb

写入数据

> db.col.save({a:1})
WriteResult({ "nInserted" : 1 })

查看数据

> db.col.find()
{ "_id" : ObjectId("58ddc0b2dcb436ef0cd97835"), "a" : 1 }
> 
Paste_Image.png

slave读数据
登录slave

/usr/local/mongodb/bin/mongo
Paste_Image.png

读数据
查看数据库

> show dbs
Paste_Image.png

怎么回事?"not master and slaveOk=false"
初始状态下,slave是没有读的权限?
为什么?
因为不知道用户需要将那个slave设置成读,故需要用户设置slave为可读

rs.slaveOk()
Paste_Image.png

可以看到数据库了

查看数据是否已同步


Paste_Image.png

可以看到数据已同步过来了
至此主从同步已完成!
大功告成!

顺便查看下slave能不能写


Paste_Image.png

果然,还是不能写!

4.存在不足

主从复制虽然可以承载一定的负载压力,但仍然存在一个很大的不足,如果主库挂了,那么写入就有危险。如果有这么一种模式,当主库挂了,在IP不变的模式下,从库充当主库,这样是不是就可以规避写入的风险?

当然可以,这就是MongoDB集群复制要干的事。

相关文章

  • MongoDB高级应用(一):主从复制

    1.架构模型 从架构上看,主从复制有什么好处:数据备份数据恢复读写分离 一般的数据库都会有主从模式,为了平衡负载,...

  • 2018-08-10mongodb聚合+group管道

    总论:高级操作 讲解关于mongodb的高级操作,包括聚合、主从复制、分片、备份与恢复、MR 完成python与m...

  • MongoDB副本集

    MongoDB有主从复制和副本集两种复制模式,主从复制最大的问题就是无法自动故障转移,MongoDB副本集则解决了...

  • MySQL-lesson10-MHA高可用技术

    MySQL-lesson10-MHA高可用技术 1. 主从复制架构演变介绍 1.1 基本结构 1.2 高级应用架构...

  • MySQL-MHA高可用技术

    1. 主从复制架构演变介绍 1.1 基本结构 1.2 高级应用架构演变 1.2.1 高性能架构 1.2.2 高可用...

  • MySQL-lesson10-MHA高可用技术

    1. 主从复制架构演变介绍 1.1 基本结构 1.2 高级应用架构演变 1.2.1 高性能架构 1.2.2 高可用...

  • 2019-04-19-主从复制架构演变-MHA高可用技术

    1. 主从复制架构演变介绍 1.1 基本结构 1.2 高级应用架构演变 1.2.1 高性能架构 (1)读写分离架构...

  • 2019-05-10MHA高可用技术

    1. 主从复制架构演变介绍 1.2 高级应用架构演变 1.2.1 高性能架构 1.2.2 高可用架构 3. 高...

  • MySQL-MHA高可用技术

    主从复制架构演变介绍 基本结构 MHA简介: MHA工作原理: 高级应用架构演变 高可用架构介绍 高可用MHA *...

  • mongodb复制集群

    Mongodb的复制功能: Mongodb的复制架构: Mongo的数据同步类型: 主从复制选项: 选举机制: m...

网友评论

    本文标题:MongoDB高级应用(一):主从复制

    本文链接:https://www.haomeiwen.com/subject/iggodxtx.html