您的位置:首页 > 数据库 > Mongodb

mongodb-主从复制

2016-08-09 10:26 155 查看

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();

主从复制的几个问题,是无法解决的:

主节点挂了能否自动切换连接?目前需要手工切换。

主节点的写压力过大如何解决?

从节点每个上面的数据都是对数据库全量拷贝,从节点压力会不会过大?

就算对从节点路由实施路由访问策略能否做到自动扩展?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: