mongodb-主从复制
2024-08-25 02:48:24
1 主从复制: 一个概念,在sqlserver或者说是mysql也有
2 主从复制解决了哪些问题???
- 读写压力:以前是一个mongodb去承载海量的读和写,这样的话终有瓶颈的。使用一主多从, 从服务器有效的缓解了读的压力,我们使用的web服务器,大多都是读大于写,
- 数据的热备份
我们做备份一般有两种策略
【热备份】 主从复制,那么从就是一套活生生的数据。如果主挂掉了,从的数据还是比较完善的。
【冷备份】 定时的copy从服务器的db
为什么要做冷备份??? 害怕用户的误操作。比如说用户执行了一个delete,那么主从都会没有数据,这个就相当于光盘或者磁带的概念了
这个冷备份,mongodb的主从复制实现了吗?
二:搭建主从备份的步骤
- 开启master服务器:
[administrator@localhost ~]$ cluster/master/mongod --dbpath=cluster/master/db --master -port 27017
--master 标记自己是master服务器。
--port 指定自己的端口,默认是27017
- 开启slave服务器:
[administrator@localhost ~]$ cluster/slave/mongod --dbpath=cluster/slave/db --slave --source=127.0.0.1:27017 --port 27018
--slave: 标记自己是slave服务器。。
--source: 标记我需要同步的服务器是谁??? 指定的ip。
--port: 开启自己的端口,千万不能和master重复。
- 观察一下日志:
3.1 master服务器吐出来的日志:
Sun Dec 20 08:05:06.210 [slaveTracking] build index local.slaves { _id: 1 }
也就是说在local这个数据库下面生成了一个slave表【集合】。
3.2 slave数据库吐出来的日志:
Sun Dec 20 08:05:05.196 [replslave] build index local.sources { _id: 1 }
Sun Dec 20 08:05:05.201 [replslave] build index local.me { _id: 1 }
说明在local数据下有两个表:【sources,me】
总得来说,master通过slaves表记录这从属服务器的信息。
slave 通过 sources表记录主服务器的信息。
- 常用的选项
--only
--slavedelay [单位是s]
发现问题
1.从服务器无法使用show dbs命令
解决这个问题需要执行一下命令
db.getMongo().setSlaveOk();
主从复制的几个问题,是无法解决的:
主节点挂了能否自动切换连接?目前需要手工切换。
主节点的写压力过大如何解决?
从节点每个上面的数据都是对数据库全量拷贝,从节点压力会不会过大?
就算对从节点路由实施路由访问策略能否做到自动扩展?
最新文章
- Android File存储
- JSP开发模式2_JSP/Servlet/JavaBean(简单注册功能)
- AC日记——与7无关的数 openjudge 1.5 39
- C++编程命名规则(转载)
- 深入掌握Java中的enum
- html 的table tr td的使用
- hadoop2-shell操作详解
- JavaScript要点 (二) 使用误区
- HashMap源码剖析
- 消息队列、OSS常用操作封装
- 掌握SQLServer锁的相关概念
- FTP下载文件
- ArrayList源码学习
- Python 3.5 in win10 pip install Orange3
- [转] 关于 Ceph PG
- Detour的简单使用
- flask的g对象
- Caused by: com.alibaba.dubbo.remoting.TimeoutException: Waiting server-side response timeout by scan timer. start time: 2016-07-20 16:27:34.873, end time: 2016-07-20 16:27:39.895, client elapsed: 0 ms
- ator自动生成mybatis配置和类信息
- sql的一些事件处理